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

Disassembly:
push ecx
push esi
push edi
mov esi, edx
mov edi, ecx
mov ecx, esi
call fcn.004dbea0
test eax, eax
je 0x453635
mov ecx, dword [esi]
call fcn.005366c0
test eax, eax
mov dword [esp + 8], eax
je 0x453635
mov eax, dword [esi + 0x14]
test eax, eax
push ebp
mov ebp, dword [esi + 0x440]
je 0x453404
test al, 1
je 0x4533c4
mov edx, esi
xor ecx, ecx
call fcn.004525a0
test byte [esi + 0x14], 2
je 0x4533d1
mov ecx, esi
call fcn.00510190
test byte [esi + 0x14], 4
je 0x4533de
mov ecx, esi
call fcn.005101e0
test byte [esi + 0x14], 8
je 0x4533fd
mov eax, dword [0x589b54]
test eax, eax
je 0x4533fd
mov eax, dword [0x589b64]
test eax, eax
je 0x4533fd
mov ecx, esi
call fcn.005105a0
mov dword [esi + 0x14], 0
test edi, edi
jne 0x45343a
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x453416
mov ecx, esi
call fcn.005105a0
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
test ah, ah
jns 0x45342b
mov ecx, esi
call fcn.00510190
push 0x10
call edi
test ah, ah
js 0x45343a
mov ecx, esi
call fcn.005101e0
mov edx, esi
xor ecx, ecx
call fcn.00452910
mov al, byte [esi + 0xd34]
test al, al
je 0x4535fa
mov al, byte [esi + 0xd98]
test al, al
je 0x4535fa
mov al, byte [esi + 0xdfc]
test al, al
je 0x4535fa
mov al, byte [esi + 0xf30]
test al, al
lea edi, [esi + 0xf30]
je 0x4535fa
mov ax, word [esi + 0x10c0]
test ax, ax
jbe 0x4535fa
test ebp, ebp
je 0x4534de
mov edx, dword [esi + 0x438]
mov ecx, 2
cmp edx, ecx
mov dword [esi + 0x43c], 1
jge 0x4534b4
mov dword [esi + 0x438], ecx
mov ecx, dword [esi + 0x438]
movzx eax, ax
push eax
dec ecx
push edi
push ecx
xor edx, edx
mov ecx, 0x5e0
call fcn.0041c9e0
push eax
push 0x5990e0
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
jmp 0x453541
movzx edx, ax
mov ecx, 1
push edx
mov dword [esi + 0x438], ecx
mov dword [esi + 0x43c], ecx
push edi
xor edx, edx
mov ecx, 0x5df
call fcn.0041c9e0
push eax
push 0x5990e0
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esi + 0xd20]
add esp, 0x10
test eax, eax
je 0x453528
push 0x2e
push edi
call fcn.00563730
add esp, 8
test eax, eax
jne 0x453541
mov eax, dword [0x589b54]
test eax, eax
je 0x453541
mov eax, dword [0x589b64]
test eax, eax
je 0x453541
mov ecx, esi
call fcn.005105a0
lea ebp, [esi + 0x10c2]
push edi
mov edx, 0x64
mov ecx, ebp
call fcn.0041e120
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x6c8]
test ecx, ecx
je 0x45356f
mov edx, dword [0x594094]
mov ecx, dword [esi]
call fcn.004fb620
mov ecx, dword [0x594094]
mov dword [0x589b90], 0
mov dword [0x59c69c], 1
push ecx
mov ecx, dword [esi]
mov edx, 0x5990e0
call fcn.004fb730
mov edx, dword [0x594094]
mov ecx, dword [esi]
call fcn.004fb620
mov ecx, esi
call fcn.004bbbd0
mov ecx, esi
call fcn.004968f0
mov ecx, 1
call fcn.004dc3a0
mov eax, dword [0x589b4c]
test eax, eax
je 0x4535cd
mov edx, esi
mov ecx, ebp
call fcn.005108d0
mov eax, dword [esi + 0x908]
test eax, eax
jne 0x4535ed
mov eax, dword [0x589b48]
test eax, eax
jne 0x4535ed
pop ebp
pop edi
mov ecx, esi
pop esi
add esp, 4
jmp 0x53e670
pop ebp
pop edi
mov ecx, esi
pop esi
add esp, 4
jmp fcn.0053f780
push esi
mov edx, 1
mov ecx, 0x574b10
call fcn.00452800
xor ecx, ecx
call fcn.0041c8e0
mov edx, dword [0x5a1b00]
push 0
push 0x9f
push 0x111
push edx
mov dword [0x59bd18], 1
call dword [sym.imp.USER32.dll_PostMessageA]
pop ebp
pop edi
pop esi
pop ecx
ret
sub esp, 0x104
push ebp
push esi
mov esi, ecx
push edi
lea ebp, [esi + 0x840]
push ebp
mov edx, 0x104
lea ecx, [esp + 0x10]
mov dword [esi + 0x424], 1
call fcn.0041e120
mov eax, dword [0x589b40]
test eax, eax
jne 0x53e6c3
cmp byte [ebp], 0
je 0x53e6c3
xor edx, edx
mov ecx, 0x1772
call fcn.0041c9e0
push eax
push ebp
call fcn.00572b46
add esp, 8
test eax, eax
jne 0x53e6ea
push 0x64
push ebp
call dword [sym.imp.WSOCK32.dll_gethostname]
test eax, eax
je 0x53e6ea
xor edx, edx
mov ecx, 0x1772
call fcn.0041c9e0
mov edx, ebp
mov edi, edi
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x53e6e0
mov eax, dword [0x589b44]
test eax, eax
jne 0x53e734
mov eax, dword [esi + 0x908]
test eax, eax
je 0x53e734
lea edi, [esp + 0xc]
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x53e727
test cl, cl
je 0x53e723
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x53e727
add eax, 2
add edi, 2
test cl, cl
jne 0x53e703
xor eax, eax
jmp 0x53e72c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x53e7b2
xor edx, edx
mov ecx, 0x1772
call fcn.0041c9e0
push eax
push ebp
call fcn.00572b46
add esp, 8
test eax, eax
jne 0x53e7be
xor edx, edx
mov ecx, 0x1772
call fcn.0041c9e0
lea edx, [esi + 0x8a4]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x53e760
mov eax, dword [esi + 0x420]
test eax, eax
mov dword [esi + 0x908], 0
je 0x53e7b2
lea edi, [esi + 0x444]
mov edx, edi
mov ecx, 0x1777
mov dword [esi + 0x830], 1
call fcn.0041c9e0
mov ecx, esi
call fcn.0053e0b0
test eax, eax
mov ecx, edi
je 0x53e83d
mov edx, esi
call fcn.0053df20
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x104
ret
lea edi, [esi + 0x1c]
mov edx, 0x400
mov ecx, edi
call fcn.0041e210
mov eax, dword [0x5a1b00]
push 0x400
push edi
push ebp
push 0x800a
push eax
call dword [sym.imp.WSOCK32.dll_WSAAsyncGetHostByName]
test eax, eax
mov dword [esi + 0x18], eax
jne 0x53e7b2
mov dword [esi + 0x424], eax
mov eax, dword [esi + 0x41c]
test eax, eax
jne 0x53e7b2
mov eax, dword [esi + 0x420]
test eax, eax
mov dword [esi + 0x908], 0
je 0x53e7b2
lea edi, [esi + 0x444]
mov edx, edi
mov ecx, 0x1778
mov dword [esi + 0x830], 2
call fcn.0041c9e0
mov ecx, esi
call fcn.0053e0b0
test eax, eax
mov ecx, edi
jne 0x53e7ab
push esi
mov edx, 7
call fcn.00452800
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x104
ret