Function at 0x45c165
Capabilities:
Create thread
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x188
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0x154], 0x4e21d0
mov dword [ebp - 0x150], 0x4e2cdc
lea eax, [ebp - 0x14c]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x45d329
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x16c]
mov dword [esp], eax
call fcn.00474a60
call fcn.004744b0
mov dword [ebp - 0x168], 1
call fcn.00401706
mov eax, dword [0x630e7c]
test eax, eax
je 0x45c1e1
mov dword [0x4e504c], 0
mov eax, dword [0x630e78]
test eax, eax
je 0x45c1f4
mov eax, dword [0x630e78]
mov dword [0x630e58], eax
mov dword [esp], 8
call fcn.0040929e
mov dword [0x6313bc], eax
mov dword [esp], 0x14
call fcn.0040929e
mov dword [0x6313c0], eax
mov dword [esp], 0x14
call fcn.0040929e
mov dword [0xa87bf4], eax
call fcn.00435ae7
mov dword [esp + 8], 0x514
mov dword [esp + 4], 0
mov dword [esp], 0x630ea0
call sub.msvcrt.dll_memset
mov eax, dword [0x62eb5c]
test eax, eax
je 0x45c25b
mov dword [0x631444], 1
mov eax, dword [0x62eb58]
test eax, eax
je 0x45c2a9
mov dword [esp], 0x3e8
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x20], eax
mov dword [esp + 4], 0x100
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetConsoleProcessList]
mov dword [ebp - 0x168], 1
call eax
sub esp, 8
cmp eax, 1
sete al
test al, al
je 0x45c2a9
mov dword [0x631440], 1
mov eax, dword [0x62eb84]
add eax, 0x28
mov dword [eax + 0x14], 0x3b00
mov eax, dword [0x62eb84]
add eax, 0x50
mov dword [eax + 0x14], 0x3c00
mov eax, dword [0x62eb84]
add eax, 0x78
mov dword [eax + 0x14], 0x3d00
mov eax, dword [0x62eb84]
add eax, 0xa0
mov dword [eax + 0x14], 0x3e00
mov eax, dword [0x62eb84]
add eax, 0xc8
mov dword [eax + 0x14], 0x3f00
mov eax, dword [0x62eb84]
add eax, 0xf0
mov dword [eax + 0x14], 0x4000
mov eax, dword [0x62eb84]
add eax, 0x118
mov dword [eax + 0x14], 0x4100
mov eax, dword [0x62eb84]
add eax, 0x140
mov dword [eax + 0x14], 0x4200
mov eax, dword [0x62eb84]
add eax, 0x168
mov dword [eax + 0x14], 0x4300
mov eax, dword [0x62eb84]
add eax, 0x190
mov dword [eax + 0x14], 0x4400
mov eax, dword [0x62eb84]
add eax, 0x1b8
mov dword [eax + 0x14], 0x4800
mov eax, dword [0x62eb84]
add eax, 0x1b8
mov dword [eax + 0x18], 0x187a8
mov eax, dword [0x62eb84]
add eax, 0x1e0
mov dword [eax + 0x14], 0x4b00
mov eax, dword [0x62eb84]
add eax, 0x1e0
mov dword [eax + 0x18], 0x187a4
mov eax, dword [0x62eb84]
add eax, 0x208
mov dword [eax + 0x14], 0x4d00
mov eax, dword [0x62eb84]
add eax, 0x208
mov dword [eax + 0x18], 0x187a6
mov eax, dword [0x62eb84]
add eax, 0x230
mov dword [eax + 0x14], 0x5000
mov eax, dword [0x62eb84]
add eax, 0x230
mov dword [eax + 0x18], 0x187a2
mov eax, dword [0x62eb84]
add eax, 0x4b0
mov dword [eax + 0x14], 0x8500
mov eax, dword [0x62eb84]
add eax, 0x4d8
mov dword [eax + 0x14], 0x8600
mov eax, dword [0x62eb94]
mov byte [eax], 1
mov eax, dword [0x62eb94]
mov dword [eax + 4], 0
mov eax, dword [0x62eb94]
mov byte [eax + 0x11], 0
mov eax, dword [0x62eb94]
mov byte [eax + 0x10], 0
mov eax, 0xa882e0
movzx eax, byte [eax]
test al, al
jne 0x45c45b
mov dword [esp], 0xa882e0
call fcn.004e1d90
test eax, eax
setne al
test al, al
je 0x45c45b
mov dword [esp], 0x10000
call sub.msvcrt.dll_malloc
mov dword [0xa88900], eax
mov dword [esp], 0xa882e0
call fcn.004e1f30
mov eax, dword [0xa88900]
mov dword [esp + 8], 0x10000
mov dword [esp + 4], eax
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 0x168], 1
call eax
sub esp, 0xc
mov eax, dword [0xa88900]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [0xa88904], eax
mov eax, dword [0xa88904]
sub eax, 1
mov dword [0xa88908], eax
jmp 0x45c51c
mov edx, dword [0xa88900]
mov eax, dword [0xa88908]
add eax, edx
movzx eax, byte [eax]
movsx eax, al
mov dword [0xa8890c], eax
mov eax, dword [0xa8890c]
cmp eax, 0x5c
je 0x45c4de
mov eax, dword [0xa8890c]
cmp eax, 0x2f
je 0x45c4de
mov eax, dword [0xa8890c]
cmp eax, 0x3a
jne 0x45c50f
mov eax, dword [0xa8890c]
cmp eax, 0x3a
jne 0x45c4fd
mov eax, dword [0xa88900]
mov edx, dword [0xa88908]
add edx, 1
add eax, edx
mov byte [eax], 0
jmp 0x45c52e
mov edx, dword [0xa88900]
mov eax, dword [0xa88908]
add eax, edx
mov byte [eax], 0
jmp 0x45c52e
mov eax, dword [0xa88908]
sub eax, 1
mov dword [0xa88908], eax
mov eax, dword [0xa88908]
not eax
shr eax, 0x1f
test al, al
jne 0x45c4a8
mov eax, dword [0xa88900]
mov dword [esp], eax
mov dword [ebp - 0x168], 1
call sub.msvcrt.dll__chdir
mov eax, dword [sym.imp.msvcrt.dll__environ]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
test eax, eax
setne al
add dword [ebp - 0x1c], 4
test al, al
jne 0x45c54f
mov edx, dword [ebp - 0x1c]
mov eax, dword [sym.imp.msvcrt.dll__environ]
mov eax, dword [eax]
mov ecx, edx
sub ecx, eax
mov eax, ecx
sar eax, 2
mov dword [0xa87a54], eax
mov eax, dword [0x631454]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x631454]
add eax, 0x38
mov dword [eax], 8
mov eax, dword [0x631454]
add eax, 0x40
mov dword [eax], 8
mov eax, dword [0x631450]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x631450]
add eax, 0x38
mov dword [eax], 0xe
mov eax, dword [0x631450]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x631458]
add eax, 0x20
mov dword [eax], 0x10
mov eax, dword [0x631458]
add eax, 0x38
mov dword [eax], 0x10
mov eax, dword [0x631458]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x631454]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x631454]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x631454]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x631450]
add eax, 0x24
mov dword [eax], 8
mov eax, dword [0x631450]
add eax, 0x3c
mov dword [eax], 0xe
mov eax, dword [0x631450]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x631458]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x631458]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x631458]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x641e04]
mov dword [esp + 8], 0xb0000
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov dword [ebp - 0x168], 1
call fcn.0040a8be
mov dword [0xa8890c], eax
mov edx, dword [0x641e04]
mov eax, dword [0xa8890c]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x10], 0
call fcn.0040a8be
mov dword [0xa8890c], eax
mov edx, dword [0x641e04]
mov eax, dword [0xa8890c]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x10], 0
mov dword [esp + 8], 0x3c
mov dword [esp + 4], 0
mov dword [esp], 0x70bb00
call sub.msvcrt.dll_memset
mov dword [0x70bb60], 0x70bb00
mov dword [0x70bb64], 0x70bb08
mov dword [0x70bb68], 0x70bb0c
mov dword [0x70bb6c], 0x70bb04
mov dword [0x70bb70], 0x70bb01
mov dword [0x70bb74], 0x70bb09
mov dword [0x70bb78], 0x70bb0d
mov dword [0x70bb7c], 0x70bb05
mov dword [0x70bb80], 0x70bb00
mov dword [0x70bb84], 0x70bb08
mov dword [0x70bb88], 0x70bb0c
mov dword [0x70bb8c], 0x70bb04
mov dword [0x70bb90], 0x70bb1c
mov dword [0x70bb94], 0x70bb18
mov dword [0x70bb98], 0x70bb10
mov dword [0x70bb9c], 0x70bb14
mov dword [0x70bba0], 0x70bb00
mov dword [0x70bba4], 0x70bb08
mov dword [0x70bba8], 0x70bb0c
mov dword [0x70bbac], 0x70bb04
mov dword [0x70bbb0], 0x70bb1c
mov dword [0x70bbb4], 0x70bb18
mov dword [0x70bbb8], 0x70bb10
mov dword [0x70bbbc], 0x70bb14
mov dword [0x70bbc0], 0x70bb26
mov dword [0x70bbc4], 0x70bb20
mov dword [0x70bbc8], 0x70bb22
mov dword [0x70bbcc], 0x70bb24
mov dword [0x70bbd0], 0x70bb28
mov dword [0x70bbd4], 0x70bb2a
mov dword [0xa88904], 0
jmp 0x45c84b
mov eax, dword [0xa88904]
mov byte [eax + 0xa870a0], 0x20
mov eax, dword [0xa88904]
add eax, 1
mov dword [0xa88904], eax
mov eax, dword [0xa88904]
cmp eax, 0x1f
setle al
test al, al
jne 0x45c832
mov byte [0xa88180], 0x81
mov dword [0x70c058], 0x100000
mov eax, dword [0x70c058]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x62e274], eax
mov eax, dword [0x62e274]
mov dword [0x62e278], eax
mov edx, dword [0x62e274]
mov eax, dword [0x70c058]
add eax, edx
mov dword [0x62e27c], eax
mov dword [esp + 8], 0x10fff3
mov dword [esp + 4], 0
mov dword [esp], 0x51e280
call sub.msvcrt.dll_memset
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0
mov dword [esp], 0xa6a280
call sub.msvcrt.dll_memset
mov eax, 0x51e280
add eax, 0x500
mov dword [0x51e244], eax
mov eax, dword [0x4e500c]
sub eax, 8
mov dword [0x4e500c], eax
mov eax, dword [0x51e244]
mov edx, eax
mov eax, dword [0x4e500c]
add eax, edx
mov dword [0x51e254], eax
mov eax, dword [0x51e254]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x168], 1
call fcn.00414839
mov dword [0x51e270], eax
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.00414839
mov dword [0xa7a280], eax
mov eax, dword [0xa7a280]
mov eax, dword [eax]
mov byte [eax], 0x20
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00414be3
mov dword [0x6414bc], eax
mov dword [esp + 4], 0x14
mov dword [esp], str.Unknown_Opcode_____
call fcn.00414a60
mov edx, eax
mov eax, dword [0x6414bc]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00414d4a
mov ecx, dword [ebp - 0x178]
mov eax, dword [ecx]
mov dword [0xa88904], eax
mov eax, dword [0xa88904]
cmp eax, 1
jle 0x45cb4a
mov dword [0xa88908], 0
mov dword [0xa88904], 1
jmp 0x45ca1b
mov eax, dword [0xa88904]
lea edx, [eax*4]
mov ecx, dword [ebp - 0x178]
mov eax, dword [ecx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, dword [0xa88908]
add eax, edx
mov dword [0xa88908], eax
mov eax, dword [0xa88904]
cmp eax, 1
je 0x45ca0e
mov eax, dword [0xa88908]
add eax, 1
mov dword [0xa88908], eax
mov eax, dword [0xa88904]
add eax, 1
mov dword [0xa88904], eax
mov edx, dword [0xa88904]
mov ecx, dword [ebp - 0x178]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x45c9c9
mov eax, dword [0xa88908]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x168], 1
call fcn.00414be3
mov dword [0xa87214], eax
mov dword [0xa88910], 0
mov dword [0xa88904], 1
jmp 0x45cb2d
mov eax, dword [0xa88904]
cmp eax, 1
je 0x45ca97
mov eax, dword [0xa87214]
mov edx, dword [eax]
mov eax, dword [0xa88910]
add eax, edx
mov byte [eax], 0x20
mov eax, dword [0xa88910]
add eax, 1
mov dword [0xa88910], eax
mov eax, dword [0xa88904]
lea edx, [eax*4]
mov ecx, dword [ebp - 0x178]
mov eax, dword [ecx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, dword [0xa88904]
lea ecx, [edx*4]
mov ebx, dword [ebp - 0x178]
mov edx, dword [ebx + 4]
add edx, ecx
mov edx, dword [edx]
mov ecx, dword [0xa87214]
mov ebx, dword [ecx]
mov ecx, dword [0xa88910]
add ecx, ebx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa88904]
lea edx, [eax*4]
mov ecx, dword [ebp - 0x178]
mov eax, dword [ecx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, dword [0xa88910]
add eax, edx
mov dword [0xa88910], eax
mov eax, dword [0xa88904]
add eax, 1
mov dword [0xa88904], eax
mov edx, dword [0xa88904]
mov ecx, dword [ebp - 0x178]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x45ca6f
jmp 0x45cb6d
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x168], 1
call fcn.00414be3
mov dword [0xa87214], eax
lea eax, [ebp - 0x34]
mov dword [esp], eax
call fcn.00475d60
mov eax, dword [ebp - 0x34]
cmp eax, 0xffffffff
je 0x45cb9c
lea eax, [ebp - 0x30]
mov dword [esp], eax
call fcn.00475d60
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
cmp edx, eax
sete al
test al, al
jne 0x45cb80
jmp 0x45cba3
mov dword [ebp - 0x30], 0
call fcn.0040971a
mov dword [0x70c03c], eax
lea eax, [ebp - 0x30]
mov dword [esp], eax
call fcn.00475d70
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x45cc01
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
imul edx, eax, 0xe10
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
shl eax, 2
mov ecx, eax
shl ecx, 4
mov ebx, ecx
sub ebx, eax
mov eax, ebx
add edx, eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
add eax, edx
mov dword [0x70c038], eax
mov eax, dword [0x70c038]
imul eax, eax, 0x3e8
mov dword [0x70c038], eax
jmp 0x45cc0b
mov dword [0x70c038], 0
mov dword [esp], 0x91
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x168], 1
call eax
sub esp, 4
cwde
and eax, 1
test eax, eax
setne al
test al, al
je 0x45cc3f
mov dword [esp], 0x30d4b
call fcn.00409b70
mov dword [esp], 0x91
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x168], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x45cc78
mov dword [0x641468], 0x12e
mov dword [esp], 0x187ce
call fcn.00409e7f
mov dword [esp], 0xa0
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x168], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x45ccb1
mov dword [0x641468], 0x130
mov dword [esp], 0x187d0
call fcn.00409e7f
mov dword [esp], 0xa1
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x168], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x45ccea
mov dword [0x641468], 0x12f
mov dword [esp], 0x187cf
call fcn.00409e7f
mov dword [esp], 0xa2
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x168], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x45cd23
mov dword [0x641468], 0x132
mov dword [esp], 0x187d2
call fcn.00409e7f
mov dword [esp], 0xa3
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x168], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x45cd5c
mov dword [0x641468], 0x131
mov dword [esp], 0x187d1
call fcn.00409e7f
mov dword [esp], 0xa4
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x168], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x45cd95
mov dword [0x641468], 0x134
mov dword [esp], 0x187d4
call fcn.00409e7f
mov dword [esp], 0xa5
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x168], 1
call eax
sub esp, 4
shr ax, 0xf
test al, al
je 0x45cdce
mov dword [0x641468], 0x133
mov dword [esp], 0x187d3
call fcn.00409e7f
mov dword [esp], 0x14
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x168], 1
call eax
sub esp, 4
cwde
and eax, 1
test eax, eax
setne al
test al, al
je 0x45ce0c
mov dword [0x641468], 0x12d
mov dword [esp], 0x187cd
call fcn.00409e7f
mov dword [esp], 0x90
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [ebp - 0x168], 1
call eax
sub esp, 4
cwde
and eax, 1
test eax, eax
setne al
test al, al
je 0x45ce4a
mov dword [0x641468], 0x12c
mov dword [esp], 0x187cc
call fcn.00409e7f
mov dword [ebp - 0x168], 1
call fcn.0045f4e5
mov eax, dword [0x641460]
mov dword [0x641464], eax
mov byte [0x51e69a], 0x1e
mov byte [0x51e69b], 0
mov byte [0x51e69c], 0x1e
mov byte [0x51e69d], 0
mov eax, dword [ebp - 0x28]
mov word [0x64bae0], ax
mov eax, dword [ebp - 0x2c]
mov word [0x64bae2], ax
mov dword [0x64bae4], 0
mov word [0x64bae8], 0
mov word [0x64baea], 0
lea eax, [ebp - 0x130]
mov ecx, eax
call fcn.004c8790
mov eax, dword [0x4e54e4]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x501260
mov dword [esp], 0x641900
call sub.msvcrt.dll_memcpy
mov dword [0xa88904], 0
jmp 0x45cf0f
mov eax, dword [0xa88904]
mov edx, dword [0xa88904]
mov edx, dword [edx*4 + 0x641900]
or edx, 0xff000000
mov dword [eax*4 + 0x641900], edx
mov eax, dword [0xa88904]
add eax, 1
mov dword [0xa88904], eax
mov eax, dword [0xa88904]
cmp eax, 0xff
setle al
test al, al
jne 0x45cee3
mov eax, dword [0x4e54e8]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x501660
mov dword [esp], 0x641d00
call sub.msvcrt.dll_memcpy
mov dword [0xa88904], 0
jmp 0x45cf75
mov eax, dword [0xa88904]
mov edx, dword [0xa88904]
mov edx, dword [edx*4 + 0x641d00]
or edx, 0xff000000
mov dword [eax*4 + 0x641d00], edx
mov eax, dword [0xa88904]
add eax, 1
mov dword [0xa88904], eax
mov eax, dword [0xa88904]
cmp eax, 0x3f
setle al
test al, al
jne 0x45cf49
mov dword [0xa7a7c0], 0
mov dword [0xa7a7c4], 0
mov dword [0xa7a7c8], 0
mov dword [0xa7a7cc], 0x808080
mov dword [0xa7a7d0], 0x808080
mov dword [0xa7a7d4], 0x808080
mov dword [0xa7a7d8], 0xffffff
mov dword [0xa7a7dc], 0xffffff
mov dword [0xa7a7e0], 0xffffff
mov dword [0xa7a7e4], 0
mov dword [0xa7a7e8], 0x808080
mov dword [0xa7a7ec], 0xffffff
mov dword [0xa7a7f0], 0
mov dword [0xa7a7f4], 0x808080
mov dword [0xa7a7f8], 0xffffff
mov dword [0xa7a7fc], 0
mov dword [0xa7a800], 0x808080
mov dword [0xa7a804], 0xffffff
mov eax, dword [0x4e54dc]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4f5260
mov dword [esp], 0xa7a820
call sub.msvcrt.dll_memcpy
mov eax, dword [0x4e54e0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4f9260
mov dword [esp], 0xa7e820
call sub.msvcrt.dll_memcpy
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x168], 2
call fcn.00419379
mov dword [0x4e54f0], 1
mov eax, dword [0x62eb58]
test eax, eax
je 0x45d10f
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x19
mov dword [esp], 0x50
call fcn.0043a930
mov dword [0x4e52a0], eax
mov eax, dword [0x4e52a0]
neg eax
mov dword [0xa88904], eax
mov edx, dword [0x641e04]
mov eax, dword [0xa88904]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x12], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x405a4e
mov eax, dword [sym.imp.msvcrt.dll__beginthread]
mov dword [ebp - 0x168], 2
call eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x40411d
mov eax, dword [sym.imp.msvcrt.dll__beginthread]
call eax
mov dword [0x70c030], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x45d377
mov eax, dword [sym.imp.msvcrt.dll__beginthread]
call eax
mov eax, dword [0x631444]
test eax, eax
jne 0x45d1af
mov dword [0x630e4c], 1
jmp 0x45d1af
mov dword [esp], 0x64
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp - 0x168], 2
call eax
sub esp, 4
jmp 0x45d1b0
nop
mov eax, dword [0x630e4c]
test eax, eax
sete al
test al, al
jne 0x45d192
mov ecx, dword [ebp - 0x178]
mov eax, dword [ecx + 4]
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x178]
mov dword [esp], ecx
mov dword [ebp - 0x168], 2
call fcn.00409200
mov dword [esp], 0x12
call fcn.00462500
mov dword [esp + 4], 0x228
mov dword [esp], 0x400
call fcn.004624d0
mov eax, dword [0x630e50]
test eax, eax
jne 0x45d21a
mov dword [esp], str.Untitled
call fcn.00409222
jmp 0x45d233
mov eax, dword [0x630e50]
mov eax, dword [eax]
mov dword [esp], eax
mov dword [ebp - 0x168], 2
call fcn.00409222
mov dword [0x630e48], 1
mov dword [esp], 0x459140
mov dword [ebp - 0x168], 2
call fcn.00465c20
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4590b3
mov dword [esp], 8
call fcn.00465d70
mov dword [esp], 0x458e4b
call fcn.00465cc0
mov dword [esp], 0x458e6d
call fcn.00465e40
mov dword [esp], 0x45907d
call fcn.00465d00
mov dword [esp], 0x459098
call fcn.00465e80
mov dword [esp], 0x45b4b8
call fcn.00465f80
mov dword [esp], fcn.0045b4fe
call fcn.00466000
mov dword [esp], 0x45bfa3
call fcn.00466040
mov dword [esp], 0x4590dc
call fcn.00465c80
mov dword [esp], 0x45bfbd
call fcn.00465fc0
call fcn.00467bf0
lea eax, [ebp - 0x130]
mov dword [ebp - 0x168], 1
mov ecx, eax
call fcn.004c8e90
mov eax, 0
mov dword [ebp - 0x170], eax
jmp 0x45d357
lea eax, [ebp - 0x16c]
mov dword [esp], eax
call fcn.00474b20
mov eax, dword [ebp - 0x170]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret