Function at 0x45d935
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], 0x4e39a0
mov dword [ebp - 0x150], 0x4e44ac
lea eax, [ebp - 0x14c]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x45eaf9
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x16c]
mov dword [esp], eax
call fcn.00476230
call fcn.00475c80
mov dword [ebp - 0x168], 1
call fcn.00401706
mov eax, dword [0x631e3c]
test eax, eax
je 0x45d9b1
mov dword [0x4e604c], 0
mov eax, dword [0x631e38]
test eax, eax
je 0x45d9c4
mov eax, dword [0x631e38]
mov dword [0x631e18], eax
mov dword [esp], 8
call fcn.0040aa6e
mov dword [0x63237c], eax
mov dword [esp], 0x14
call fcn.0040aa6e
mov dword [0x632380], eax
mov dword [esp], 0x14
call fcn.0040aa6e
mov dword [0xa88bb4], eax
call fcn.004372b7
mov dword [esp + 8], 0x514
mov dword [esp + 4], 0
mov dword [esp], 0x631e60
call sub.msvcrt.dll_memset
mov eax, dword [0x62fb64]
test eax, eax
je 0x45da2b
mov dword [0x632404], 1
mov eax, dword [0x62fb60]
test eax, eax
je 0x45da79
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 0x45da79
mov dword [0x632400], 1
mov eax, dword [0x62fb8c]
add eax, 0x28
mov dword [eax + 0x14], 0x3b00
mov eax, dword [0x62fb8c]
add eax, 0x50
mov dword [eax + 0x14], 0x3c00
mov eax, dword [0x62fb8c]
add eax, 0x78
mov dword [eax + 0x14], 0x3d00
mov eax, dword [0x62fb8c]
add eax, 0xa0
mov dword [eax + 0x14], 0x3e00
mov eax, dword [0x62fb8c]
add eax, 0xc8
mov dword [eax + 0x14], 0x3f00
mov eax, dword [0x62fb8c]
add eax, 0xf0
mov dword [eax + 0x14], 0x4000
mov eax, dword [0x62fb8c]
add eax, 0x118
mov dword [eax + 0x14], 0x4100
mov eax, dword [0x62fb8c]
add eax, 0x140
mov dword [eax + 0x14], 0x4200
mov eax, dword [0x62fb8c]
add eax, 0x168
mov dword [eax + 0x14], 0x4300
mov eax, dword [0x62fb8c]
add eax, 0x190
mov dword [eax + 0x14], 0x4400
mov eax, dword [0x62fb8c]
add eax, 0x1b8
mov dword [eax + 0x14], 0x4800
mov eax, dword [0x62fb8c]
add eax, 0x1b8
mov dword [eax + 0x18], 0x187a8
mov eax, dword [0x62fb8c]
add eax, 0x1e0
mov dword [eax + 0x14], 0x4b00
mov eax, dword [0x62fb8c]
add eax, 0x1e0
mov dword [eax + 0x18], 0x187a4
mov eax, dword [0x62fb8c]
add eax, 0x208
mov dword [eax + 0x14], 0x4d00
mov eax, dword [0x62fb8c]
add eax, 0x208
mov dword [eax + 0x18], 0x187a6
mov eax, dword [0x62fb8c]
add eax, 0x230
mov dword [eax + 0x14], 0x5000
mov eax, dword [0x62fb8c]
add eax, 0x230
mov dword [eax + 0x18], 0x187a2
mov eax, dword [0x62fb8c]
add eax, 0x4b0
mov dword [eax + 0x14], 0x8500
mov eax, dword [0x62fb8c]
add eax, 0x4d8
mov dword [eax + 0x14], 0x8600
mov eax, dword [0x62fb9c]
mov byte [eax], 1
mov eax, dword [0x62fb9c]
mov dword [eax + 4], 0
mov eax, dword [0x62fb9c]
mov byte [eax + 0x11], 0
mov eax, dword [0x62fb9c]
mov byte [eax + 0x10], 0
mov eax, 0xa892a0
movzx eax, byte [eax]
test al, al
jne 0x45dc2b
mov dword [esp], 0xa892a0
call fcn.004e3560
test eax, eax
setne al
test al, al
je 0x45dc2b
mov dword [esp], 0x10000
call sub.msvcrt.dll_malloc
mov dword [0xa898c0], eax
mov dword [esp], 0xa892a0
call fcn.004e3700
mov eax, dword [0xa898c0]
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 [0xa898c0]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [0xa898c4], eax
mov eax, dword [0xa898c4]
sub eax, 1
mov dword [0xa898c8], eax
jmp 0x45dcec
mov edx, dword [0xa898c0]
mov eax, dword [0xa898c8]
add eax, edx
movzx eax, byte [eax]
movsx eax, al
mov dword [0xa898cc], eax
mov eax, dword [0xa898cc]
cmp eax, 0x5c
je 0x45dcae
mov eax, dword [0xa898cc]
cmp eax, 0x2f
je 0x45dcae
mov eax, dword [0xa898cc]
cmp eax, 0x3a
jne 0x45dcdf
mov eax, dword [0xa898cc]
cmp eax, 0x3a
jne 0x45dccd
mov eax, dword [0xa898c0]
mov edx, dword [0xa898c8]
add edx, 1
add eax, edx
mov byte [eax], 0
jmp 0x45dcfe
mov edx, dword [0xa898c0]
mov eax, dword [0xa898c8]
add eax, edx
mov byte [eax], 0
jmp 0x45dcfe
mov eax, dword [0xa898c8]
sub eax, 1
mov dword [0xa898c8], eax
mov eax, dword [0xa898c8]
not eax
shr eax, 0x1f
test al, al
jne 0x45dc78
mov eax, dword [0xa898c0]
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 0x45dd1f
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 [0xa88a14], eax
mov eax, dword [0x632414]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x632414]
add eax, 0x38
mov dword [eax], 8
mov eax, dword [0x632414]
add eax, 0x40
mov dword [eax], 8
mov eax, dword [0x632410]
add eax, 0x20
mov dword [eax], 8
mov eax, dword [0x632410]
add eax, 0x38
mov dword [eax], 0xe
mov eax, dword [0x632410]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x632418]
add eax, 0x20
mov dword [eax], 0x10
mov eax, dword [0x632418]
add eax, 0x38
mov dword [eax], 0x10
mov eax, dword [0x632418]
add eax, 0x40
mov dword [eax], 0x10
mov eax, dword [0x632414]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x632414]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x632414]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x632410]
add eax, 0x24
mov dword [eax], 8
mov eax, dword [0x632410]
add eax, 0x3c
mov dword [eax], 0xe
mov eax, dword [0x632410]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x632418]
add eax, 0x24
mov dword [eax], 0x10
mov eax, dword [0x632418]
add eax, 0x3c
mov dword [eax], 0x10
mov eax, dword [0x632418]
add eax, 0x44
mov dword [eax], 0x10
mov eax, dword [0x642dc4]
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.0040c08e
mov dword [0xa898cc], eax
mov edx, dword [0x642dc4]
mov eax, dword [0xa898cc]
imul eax, eax, 0xb0
add eax, edx
mov byte [eax + 0x10], 0
call fcn.0040c08e
mov dword [0xa898cc], eax
mov edx, dword [0x642dc4]
mov eax, dword [0xa898cc]
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], 0x70cac0
call sub.msvcrt.dll_memset
mov dword [0x70cb20], 0x70cac0
mov dword [0x70cb24], 0x70cac8
mov dword [0x70cb28], 0x70cacc
mov dword [0x70cb2c], 0x70cac4
mov dword [0x70cb30], 0x70cac1
mov dword [0x70cb34], 0x70cac9
mov dword [0x70cb38], 0x70cacd
mov dword [0x70cb3c], 0x70cac5
mov dword [0x70cb40], 0x70cac0
mov dword [0x70cb44], 0x70cac8
mov dword [0x70cb48], 0x70cacc
mov dword [0x70cb4c], 0x70cac4
mov dword [0x70cb50], 0x70cadc
mov dword [0x70cb54], 0x70cad8
mov dword [0x70cb58], 0x70cad0
mov dword [0x70cb5c], 0x70cad4
mov dword [0x70cb60], 0x70cac0
mov dword [0x70cb64], 0x70cac8
mov dword [0x70cb68], 0x70cacc
mov dword [0x70cb6c], 0x70cac4
mov dword [0x70cb70], 0x70cadc
mov dword [0x70cb74], 0x70cad8
mov dword [0x70cb78], 0x70cad0
mov dword [0x70cb7c], 0x70cad4
mov dword [0x70cb80], 0x70cae6
mov dword [0x70cb84], 0x70cae0
mov dword [0x70cb88], 0x70cae2
mov dword [0x70cb8c], 0x70cae4
mov dword [0x70cb90], 0x70cae8
mov dword [0x70cb94], 0x70caea
mov dword [0xa898c4], 0
jmp 0x45e01b
mov eax, dword [0xa898c4]
mov byte [eax + 0xa88060], 0x20
mov eax, dword [0xa898c4]
add eax, 1
mov dword [0xa898c4], eax
mov eax, dword [0xa898c4]
cmp eax, 0x1f
setle al
test al, al
jne 0x45e002
mov byte [0xa89140], 0x81
mov dword [0x70d018], 0x100000
mov eax, dword [0x70d018]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x62f274], eax
mov eax, dword [0x62f274]
mov dword [0x62f278], eax
mov edx, dword [0x62f274]
mov eax, dword [0x70d018]
add eax, edx
mov dword [0x62f27c], eax
mov dword [esp + 8], 0x10fff3
mov dword [esp + 4], 0
mov dword [esp], 0x51f280
call sub.msvcrt.dll_memset
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0
mov dword [esp], 0xa6b240
call sub.msvcrt.dll_memset
mov eax, 0x51f280
add eax, 0x500
mov dword [0x51f244], eax
mov eax, dword [0x4e600c]
sub eax, 8
mov dword [0x4e600c], eax
mov eax, dword [0x51f244]
mov edx, eax
mov eax, dword [0x4e600c]
add eax, edx
mov dword [0x51f254], eax
mov eax, dword [0x51f254]
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.00416009
mov dword [0x51f270], eax
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.00416009
mov dword [0xa7b240], eax
mov eax, dword [0xa7b240]
mov eax, dword [eax]
mov byte [eax], 0x20
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004163b3
mov dword [0x64247c], eax
mov dword [esp + 4], 0x14
mov dword [esp], str.Unknown_Opcode_____
call fcn.00416230
mov edx, eax
mov eax, dword [0x64247c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0041651a
mov ecx, dword [ebp - 0x178]
mov eax, dword [ecx]
mov dword [0xa898c4], eax
mov eax, dword [0xa898c4]
cmp eax, 1
jle 0x45e31a
mov dword [0xa898c8], 0
mov dword [0xa898c4], 1
jmp 0x45e1eb
mov eax, dword [0xa898c4]
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 [0xa898c8]
add eax, edx
mov dword [0xa898c8], eax
mov eax, dword [0xa898c4]
cmp eax, 1
je 0x45e1de
mov eax, dword [0xa898c8]
add eax, 1
mov dword [0xa898c8], eax
mov eax, dword [0xa898c4]
add eax, 1
mov dword [0xa898c4], eax
mov edx, dword [0xa898c4]
mov ecx, dword [ebp - 0x178]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x45e199
mov eax, dword [0xa898c8]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x168], 1
call fcn.004163b3
mov dword [0xa881d4], eax
mov dword [0xa898d0], 0
mov dword [0xa898c4], 1
jmp 0x45e2fd
mov eax, dword [0xa898c4]
cmp eax, 1
je 0x45e267
mov eax, dword [0xa881d4]
mov edx, dword [eax]
mov eax, dword [0xa898d0]
add eax, edx
mov byte [eax], 0x20
mov eax, dword [0xa898d0]
add eax, 1
mov dword [0xa898d0], eax
mov eax, dword [0xa898c4]
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 [0xa898c4]
lea ecx, [edx*4]
mov ebx, dword [ebp - 0x178]
mov edx, dword [ebx + 4]
add edx, ecx
mov edx, dword [edx]
mov ecx, dword [0xa881d4]
mov ebx, dword [ecx]
mov ecx, dword [0xa898d0]
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 [0xa898c4]
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 [0xa898d0]
add eax, edx
mov dword [0xa898d0], eax
mov eax, dword [0xa898c4]
add eax, 1
mov dword [0xa898c4], eax
mov edx, dword [0xa898c4]
mov ecx, dword [ebp - 0x178]
mov eax, dword [ecx]
cmp edx, eax
setl al
test al, al
jne 0x45e23f
jmp 0x45e33d
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x168], 1
call fcn.004163b3
mov dword [0xa881d4], eax
lea eax, [ebp - 0x34]
mov dword [esp], eax
call fcn.00477530
mov eax, dword [ebp - 0x34]
cmp eax, 0xffffffff
je 0x45e36c
lea eax, [ebp - 0x30]
mov dword [esp], eax
call fcn.00477530
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
cmp edx, eax
sete al
test al, al
jne 0x45e350
jmp 0x45e373
mov dword [ebp - 0x30], 0
call fcn.0040aeea
mov dword [0x70cffc], eax
lea eax, [ebp - 0x30]
mov dword [esp], eax
call fcn.00477540
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x45e3d1
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 [0x70cff8], eax
mov eax, dword [0x70cff8]
imul eax, eax, 0x3e8
mov dword [0x70cff8], eax
jmp 0x45e3db
mov dword [0x70cff8], 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 0x45e40f
mov dword [esp], 0x30d4b
call fcn.0040b340
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 0x45e448
mov dword [0x642428], 0x12e
mov dword [esp], 0x187ce
call fcn.0040b64f
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 0x45e481
mov dword [0x642428], 0x130
mov dword [esp], 0x187d0
call fcn.0040b64f
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 0x45e4ba
mov dword [0x642428], 0x12f
mov dword [esp], 0x187cf
call fcn.0040b64f
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 0x45e4f3
mov dword [0x642428], 0x132
mov dword [esp], 0x187d2
call fcn.0040b64f
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 0x45e52c
mov dword [0x642428], 0x131
mov dword [esp], 0x187d1
call fcn.0040b64f
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 0x45e565
mov dword [0x642428], 0x134
mov dword [esp], 0x187d4
call fcn.0040b64f
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 0x45e59e
mov dword [0x642428], 0x133
mov dword [esp], 0x187d3
call fcn.0040b64f
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 0x45e5dc
mov dword [0x642428], 0x12d
mov dword [esp], 0x187cd
call fcn.0040b64f
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 0x45e61a
mov dword [0x642428], 0x12c
mov dword [esp], 0x187cc
call fcn.0040b64f
mov dword [ebp - 0x168], 1
call fcn.00460cb5
mov eax, dword [0x642420]
mov dword [0x642424], eax
mov byte [0x51f69a], 0x1e
mov byte [0x51f69b], 0
mov byte [0x51f69c], 0x1e
mov byte [0x51f69d], 0
mov eax, dword [ebp - 0x28]
mov word [0x64caa0], ax
mov eax, dword [ebp - 0x2c]
mov word [0x64caa2], ax
mov dword [0x64caa4], 0
mov word [0x64caa8], 0
mov word [0x64caaa], 0
lea eax, [ebp - 0x130]
mov ecx, eax
call fcn.004c9f60
mov eax, dword [0x4e64e4]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x502600
mov dword [esp], 0x6428c0
call sub.msvcrt.dll_memcpy
mov dword [0xa898c4], 0
jmp 0x45e6df
mov eax, dword [0xa898c4]
mov edx, dword [0xa898c4]
mov edx, dword [edx*4 + 0x6428c0]
or edx, 0xff000000
mov dword [eax*4 + 0x6428c0], edx
mov eax, dword [0xa898c4]
add eax, 1
mov dword [0xa898c4], eax
mov eax, dword [0xa898c4]
cmp eax, 0xff
setle al
test al, al
jne 0x45e6b3
mov eax, dword [0x4e64e8]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x502a00
mov dword [esp], 0x642cc0
call sub.msvcrt.dll_memcpy
mov dword [0xa898c4], 0
jmp 0x45e745
mov eax, dword [0xa898c4]
mov edx, dword [0xa898c4]
mov edx, dword [edx*4 + 0x642cc0]
or edx, 0xff000000
mov dword [eax*4 + 0x642cc0], edx
mov eax, dword [0xa898c4]
add eax, 1
mov dword [0xa898c4], eax
mov eax, dword [0xa898c4]
cmp eax, 0x3f
setle al
test al, al
jne 0x45e719
mov dword [0xa7b780], 0
mov dword [0xa7b784], 0
mov dword [0xa7b788], 0
mov dword [0xa7b78c], 0x808080
mov dword [0xa7b790], 0x808080
mov dword [0xa7b794], 0x808080
mov dword [0xa7b798], 0xffffff
mov dword [0xa7b79c], 0xffffff
mov dword [0xa7b7a0], 0xffffff
mov dword [0xa7b7a4], 0
mov dword [0xa7b7a8], 0x808080
mov dword [0xa7b7ac], 0xffffff
mov dword [0xa7b7b0], 0
mov dword [0xa7b7b4], 0x808080
mov dword [0xa7b7b8], 0xffffff
mov dword [0xa7b7bc], 0
mov dword [0xa7b7c0], 0x808080
mov dword [0xa7b7c4], 0xffffff
mov eax, dword [0x4e64dc]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4f6600
mov dword [esp], 0xa7b7e0
call sub.msvcrt.dll_memcpy
mov eax, dword [0x4e64e0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4fa600
mov dword [esp], 0xa7f7e0
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.0041ab49
mov dword [0x4e64f0], 1
mov eax, dword [0x62fb60]
test eax, eax
je 0x45e8df
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x19
mov dword [esp], 0x50
call fcn.0043c100
mov dword [0x4e62a0], eax
mov eax, dword [0x4e62a0]
neg eax
mov dword [0xa898c4], eax
mov edx, dword [0x642dc4]
mov eax, dword [0xa898c4]
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], 0x405a62
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], 0x404131
mov eax, dword [sym.imp.msvcrt.dll__beginthread]
call eax
mov dword [0x70cff0], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x45eb47
mov eax, dword [sym.imp.msvcrt.dll__beginthread]
call eax
mov eax, dword [0x632404]
test eax, eax
jne 0x45e97f
mov dword [0x631e0c], 1
jmp 0x45e97f
mov dword [esp], 0x64
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp - 0x168], 2
call eax
sub esp, 4
jmp 0x45e980
nop
mov eax, dword [0x631e0c]
test eax, eax
sete al
test al, al
jne 0x45e962
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.0040a9d0
mov dword [esp], 0x12
call fcn.00463cd0
mov dword [esp + 4], 0x228
mov dword [esp], 0x400
call fcn.00463ca0
mov eax, dword [0x631e10]
test eax, eax
jne 0x45e9ea
mov dword [esp], str.Untitled
call fcn.0040a9f2
jmp 0x45ea03
mov eax, dword [0x631e10]
mov eax, dword [eax]
mov dword [esp], eax
mov dword [ebp - 0x168], 2
call fcn.0040a9f2
mov dword [0x631e08], 1
mov dword [esp], 0x45a910
mov dword [ebp - 0x168], 2
call fcn.004673f0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x45a883
mov dword [esp], 8
call fcn.00467540
mov dword [esp], 0x45a61b
call fcn.00467490
mov dword [esp], 0x45a63d
call fcn.00467610
mov dword [esp], 0x45a84d
call fcn.004674d0
mov dword [esp], 0x45a868
call fcn.00467650
mov dword [esp], 0x45cc88
call fcn.00467750
mov dword [esp], fcn.0045ccce
call fcn.004677d0
mov dword [esp], 0x45d773
call fcn.00467810
mov dword [esp], 0x45a8ac
call fcn.00467450
mov dword [esp], 0x45d78d
call fcn.00467790
call fcn.004693c0
lea eax, [ebp - 0x130]
mov dword [ebp - 0x168], 1
mov ecx, eax
call fcn.004ca660
mov eax, 0
mov dword [ebp - 0x170], eax
jmp 0x45eb27
lea eax, [ebp - 0x16c]
mov dword [esp], eax
call fcn.004762f0
mov eax, dword [ebp - 0x170]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret