Function at 0x459750
Capabilities:
Get hostname
Log keystrokes via polling
Set socket configuration

Disassembly:
sub esp, 8
push esi
push edi
mov esi, edx
mov edi, ecx
mov ecx, esi
call fcn.004f0af0
test eax, eax
je 0x459aba
mov ecx, dword [esi]
call fcn.00561000
test eax, eax
mov dword [esp + 0xc], eax
je 0x459aba
mov eax, dword [esi + 0x440]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4597db
test al, 1
je 0x459799
mov edx, esi
xor ecx, ecx
call fcn.00458840
test byte [esi + 0x14], 2
je 0x4597a6
mov ecx, esi
call fcn.0052a1d0
test byte [esi + 0x14], 4
je 0x4597b5
xor edx, edx
mov ecx, esi
call fcn.00528fd0
test byte [esi + 0x14], 8
je 0x4597d4
mov eax, dword [0x5bfd20]
test eax, eax
je 0x4597d4
mov eax, dword [0x5bfd30]
test eax, eax
je 0x4597d4
mov ecx, esi
call fcn.00529730
mov dword [esi + 0x14], 0
test edi, edi
jne 0x459813
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x4597ed
mov ecx, esi
call fcn.00529730
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
test ah, ah
jns 0x459802
mov ecx, esi
call fcn.0052a1d0
push 0x10
call edi
test ah, ah
js 0x459813
xor edx, edx
mov ecx, esi
call fcn.00528fd0
push ebx
push ebp
mov edx, esi
xor ecx, ecx
call fcn.00458c00
mov al, byte [esi + 0xd38]
test al, al
je 0x459a7f
mov al, byte [esi + 0xd9c]
test al, al
je 0x459a7f
mov al, byte [esi + 0xe00]
test al, al
lea ebp, [esi + 0xe00]
je 0x459a7f
mov al, byte [esi + 0xf34]
test al, al
lea edi, [esi + 0xf34]
je 0x459a7f
mov al, byte [esi + 0x10c4]
test al, al
lea ebx, [esi + 0x10c4]
je 0x459a7f
mov eax, dword [0x5f18e0]
test eax, eax
je 0x4598b5
push ebp
lea ecx, [esi + 0xec8]
mov edx, 0x64
mov dword [esi + 0xf2c], 2
call fcn.00420d70
mov ecx, dword [esi + 0xf2c]
imul ecx, ecx, 0x64
push ebp
lea ecx, [ecx + esi + 0x1254]
mov edx, 0x64
call fcn.00420d70
mov eax, dword [esp + 0x10]
test eax, eax
je 0x459905
mov ecx, dword [esi + 0x438]
mov eax, 2
cmp ecx, eax
mov dword [esi + 0x43c], 1
jge 0x4598dc
mov dword [esi + 0x438], eax
mov edx, dword [esi + 0x438]
push ebx
dec edx
push edi
push edx
xor edx, edx
mov ecx, 0x5e0
call fcn.0041f1a0
push eax
push 0x5eef00
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
xor ebp, ebp
jmp 0x459965
mov eax, 1
push ebx
push edi
xor edx, edx
mov ecx, 0x5df
mov dword [esi + 0x438], eax
mov dword [esi + 0x43c], eax
call fcn.0041f1a0
push eax
push 0x5eef00
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esi + 0xd20]
xor ebp, ebp
add esp, 0x10
cmp eax, ebp
je 0x45994e
push 0x2e
push edi
call fcn.005912e0
add esp, 8
test eax, eax
jne 0x459965
cmp dword [0x5bfd20], ebp
je 0x459965
cmp dword [0x5bfd30], ebp
je 0x459965
mov ecx, esi
call fcn.00529730
push edi
lea ecx, [esi + 0x1128]
mov edx, 0x64
call fcn.00420d70
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x6cc], ebp
je 0x45998f
mov edx, dword [0x5c9d44]
mov ecx, dword [esi]
call fcn.00513bc0
mov ecx, dword [0x5c9d44]
mov edi, 1
mov dword [0x5bfd5c], ebp
mov dword [0x5f31fc], edi
push ecx
mov ecx, dword [esi]
mov edx, 0x5eef00
call fcn.00513d20
mov edx, dword [0x5c9d44]
mov ecx, dword [esi]
call fcn.00513bc0
cmp byte [ebx], 0x2b
jne 0x4599cd
mov dword [esi + 0x24f8], edi
jmp 0x4599d3
mov dword [esi + 0x24f8], ebp
cmp dword [esi + 0x24f8], ebp
je 0x459a2f
cmp dword [0x5f67b8], ebp
jne 0x459a2f
mov edx, dword [0x5c9d44]
push edx
xor edx, edx
mov ecx, 0x1425
mov dword [0x5bfd5c], ebp
mov dword [0x5f31fc], edi
call fcn.0041f1a0
mov ecx, dword [esi]
mov edx, eax
call fcn.00514ad0
mov edx, 0x5eef00
mov ecx, 0x5e2
call fcn.0041f1a0
push esi
mov edx, edi
mov ecx, 0x5eef00
call fcn.00458ae0
pop ebp
pop ebx
pop edi
pop esi
add esp, 8
ret
mov ecx, esi
call fcn.004cc800
mov ecx, esi
call fcn.0049f070
mov ecx, edi
call fcn.004f0ff0
cmp dword [0x5bfd18], ebp
je 0x459a53
mov ecx, esi
call fcn.00529a10
cmp dword [esi + 0x908], ebp
jne 0x459a71
cmp dword [0x5bfd14], ebp
jne 0x459a71
pop ebp
pop ebx
pop edi
mov ecx, esi
pop esi
add esp, 8
jmp 0x569670
pop ebp
pop ebx
pop edi
mov ecx, esi
pop esi
add esp, 8
jmp fcn.0056a8f0
push esi
mov edx, 1
mov ecx, 0x5a4bec
call fcn.00458ae0
xor ecx, ecx
call fcn.0041f0a0
mov eax, dword [0x5f92ec]
push 2
push 0x9f
push 0x111
push eax
mov dword [0x5f21a0], 1
call dword [sym.imp.USER32.dll_PostMessageA]
pop ebp
pop ebx
pop edi
pop esi
add esp, 8
ret
sub esp, 0x104
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ebp, [esi + 0x840]
push ebp
mov edx, 0x104
lea ecx, [esp + 0x14]
mov dword [esi + 0x424], 1
call fcn.00420d70
mov eax, dword [0x5bfd0c]
xor ebx, ebx
cmp eax, ebx
jne 0x5696c5
cmp byte [ebp], bl
je 0x5696c5
xor edx, edx
mov ecx, 0x1772
call fcn.0041f1a0
push eax
push ebp
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x5696f0
push 0x5a
push ebp
call dword [sym.imp.WSOCK32.dll_gethostname]
test eax, eax
je 0x5696ea
xor edx, edx
mov ecx, 0x1772
call fcn.0041f1a0
mov edx, ebp
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
cmp cl, bl
jne 0x5696e0
mov byte [esi + 0x89a], bl
cmp dword [0x5bfd10], ebx
jne 0x569733
cmp dword [esi + 0x908], ebx
je 0x569733
lea edi, [esp + 0x10]
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x56972a
cmp cl, bl
je 0x569726
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x56972a
add eax, 2
add edi, 2
cmp cl, bl
jne 0x569706
xor eax, eax
jmp 0x56972f
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x5697ac
xor edx, edx
mov ecx, 0x1772
call fcn.0041f1a0
push eax
push ebp
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x5697b9
xor edx, edx
mov ecx, 0x1772
call fcn.0041f1a0
lea edx, [esi + 0x8a4]
nop
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
cmp cl, bl
jne 0x569760
cmp dword [esi + 0x420], ebx
mov dword [esi + 0x908], ebx
je 0x5697ac
lea edi, [esi + 0x444]
mov edx, edi
mov ecx, 0x1777
mov dword [esi + 0x830], 1
call fcn.0041f1a0
mov ecx, esi
call fcn.005690a0
test eax, eax
mov ecx, edi
je 0x569830
mov edx, esi
call fcn.00568f00
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x104
ret
lea edi, [esi + 0x1c]
mov edx, 0x400
mov ecx, edi
call fcn.00420e60
mov eax, dword [0x5f92ec]
push 0x400
push edi
push ebp
push 0x800a
push eax
call dword [sym.imp.WSOCK32.dll_WSAAsyncGetHostByName]
cmp eax, ebx
mov dword [esi + 0x18], eax
jne 0x5697ac
cmp dword [esi + 0x41c], ebx
mov dword [esi + 0x424], ebx
jne 0x5697ac
cmp dword [esi + 0x420], ebx
mov dword [esi + 0x908], ebx
je 0x5697ac
lea edi, [esi + 0x444]
mov edx, edi
mov ecx, 0x1778
mov dword [esi + 0x830], 2
call fcn.0041f1a0
mov ecx, esi
call fcn.005690a0
test eax, eax
mov ecx, edi
jne 0x5697a5
push esi
mov edx, 7
call fcn.00458ae0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x104
ret