Function at 0x459104
Capabilities:
Check for time delay via queryperformancecounter
Create thread
Get memory capacity
Hide graphical window
Print debug messages
Resolve function by parsing pe exports

Disassembly:
push ebx
push esi
push edi
push ebp
push eax
mov eax, 8
add esp, 0xfffff004
push eax
dec eax
jne 0x45910e
mov eax, dword [esp + 0x8000]
add esp, 0xfffff3f4
mov ebx, 0x610578
mov eax, dword [ebx + 0xa9b8]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0xa9bc]
mov dword [esp + 0x14], eax
mov esi, dword [ebx + 0xa3c]
mov edi, dword [ebx + 0xa9b4]
mov eax, dword [ebx + 0x550]
mov dword [esp + 0x18], eax
mov edx, dword [ebx + 0xd44]
mov dword [esp + 0x1c], edx
mov ecx, dword [ebx + 0xd48]
mov dword [esp + 0x20], ecx
mov eax, dword [ebx + 0x5e24]
mov dword [esp + 0x24], eax
mov edx, dword [ebx + 0x558]
mov dword [esp + 0x28], edx
mov ecx, dword [ebx + 0x55c]
mov dword [esp + 0x2c], ecx
mov eax, dword [ebx + 0x560]
mov dword [esp + 0x30], eax
mov edx, dword [ebx + 0x5e30]
mov dword [esp + 0x34], edx
mov ecx, dword [ebx + 0x5e34]
mov dword [esp + 0x38], ecx
mov eax, dword [ebx + 0x5e38]
mov dword [esp + 0x3c], eax
mov edx, dword [ebx + 0x5e40]
mov dword [esp + 0x40], edx
mov ecx, dword [ebx + 0x5e44]
mov dword [esp + 0x44], ecx
mov eax, dword [ebx + 0x5e48]
mov dword [esp + 0x48], eax
mov edx, dword [ebx + 0x5e50]
mov dword [esp + 0x4c], edx
mov ecx, dword [ebx + 0x52c]
mov dword [esp + 0x50], ecx
mov eax, dword [ebx + 0x528]
mov dword [esp + 0x54], eax
mov edx, dword [ebx + 0x5e28]
mov dword [esp + 0x58], edx
mov ecx, dword [ebx + 0xa9a8]
mov dword [esp + 0x5c], ecx
mov eax, dword [ebx + 0xa9ac]
mov dword [esp + 0x60], eax
mov edx, dword [ebx + 0x5c4]
mov dword [esp + 0x64], edx
mov ecx, dword [ebx + 0x5c8]
mov dword [esp + 0x68], ecx
mov eax, dword [ebx + 0xa9c4]
mov dword [esp + 0x6c], eax
mov edx, dword [ebx + 0xa9c0]
mov dword [esp + 0x70], edx
mov ecx, dword [ebx + 0xab5c]
mov dword [esp + 0x74], ecx
mov ecx, dword [ebx + 0xab60]
mov dword [esp + 0x78], ecx
mov eax, dword [ebx + 0xab64]
mov dword [esp + 0x7c], eax
mov edx, dword [ebx + 0xab68]
mov dword [esp + 0x80], edx
mov ecx, dword [ebx + 0xab6c]
mov dword [esp + 0x84], ecx
mov eax, dword [ebx + 0xab70]
mov dword [esp + 0x88], eax
mov edx, dword [ebx + 0xab74]
mov dword [esp + 0x8c], edx
mov ecx, dword [ebx + 0x5d4]
mov dword [esp + 0x90], ecx
mov eax, dword [ebx + 0xbb6c]
mov dword [esp + 0x94], eax
mov edx, dword [ebx + 0xbb70]
mov dword [esp + 0x98], edx
mov ecx, dword [ebx + 0xbb74]
mov dword [esp + 0x9c], ecx
mov ax, word [ebx + 0xbb68]
mov word [esp + 0xa0], ax
mov edx, dword [ebx + 0xbb80]
mov dword [esp + 0xa4], edx
push esi
push edi
lea esi, [ebx + 0xbb24]
lea edi, [esp + 0x564]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
lea esi, [ebx + 0xbb44]
lea edi, [esp + 0x584]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebx + 0xbb64]
mov dword [esp + 0xa8], eax
mov edx, dword [ebx + 0xbb78]
mov dword [esp + 0xac], edx
mov ecx, dword [ebx + 0xbb7c]
mov dword [esp + 0xb0], ecx
mov eax, dword [ebx + 0xa870]
mov dword [esp + 0xb4], eax
mov edx, dword [ebx + 0xa878]
mov dword [esp + 0xb8], edx
mov edx, dword [ebx + 0xa87c]
mov dword [esp + 0xbc], edx
mov ecx, dword [ebx + 0xa884]
mov dword [esp + 0xc0], ecx
mov eax, dword [ebx + 0x588]
mov dword [esp + 0xc4], eax
mov edx, dword [ebx + 0x58c]
mov dword [esp + 0xc8], edx
mov ecx, dword [ebx + 0x518]
mov dword [esp + 0xcc], ecx
mov eax, dword [ebx + 0x530]
mov dword [esp + 0xd0], eax
mov edx, dword [ebx + 0x534]
mov dword [esp + 0xd4], edx
mov ecx, dword [ebx + 0xbb88]
mov dword [esp + 0xd8], ecx
mov eax, dword [ebx + 0xbb8c]
mov dword [esp + 0xdc], eax
mov edx, dword [ebx + 0xbb90]
mov dword [esp + 0xe0], edx
mov ecx, dword [ebx + 0x13b94]
mov dword [esp + 0xe4], ecx
mov eax, dword [ebx + 0x13b98]
mov dword [esp + 0xe8], eax
push esi
push edi
lea esi, [ebx + 0x13b9c]
lea edi, [esp + 0x85a4]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push 0x8000
lea eax, [ebx + 0xbb94]
push eax
lea edx, [esp + 0x5a4]
push edx
call fcn.0045eac4
add esp, 0xc
mov ecx, 0x145
push esi
push edi
lea edi, [esp + 0x85bc]
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebx + 0xa9b0]
mov dword [esp + 0xec], eax
mov edx, dword [ebx + 0xa24]
mov dword [esp + 0xf0], edx
mov ecx, dword [ebx + 0xa28]
mov dword [esp + 0xf4], ecx
lea ecx, [ebx + 0xa40]
mov eax, dword [ebx + 0xa2c]
mov dword [esp + 0xf8], eax
mov edx, dword [ebx + 0xa20]
mov dword [esp + 0xfc], edx
push ecx
lea eax, [esp + 0x158]
push eax
call fcn.0045e850
add esp, 8
lea edx, [ebx + 0xb44]
push edx
lea ecx, [esp + 0x25c]
push ecx
call fcn.0045e850
add esp, 8
lea eax, [ebx + 0xd4c]
push eax
lea edx, [esp + 0x360]
push edx
call fcn.0045e850
add esp, 8
lea ecx, [ebx + 0xc44]
push ecx
lea eax, [esp + 0x460]
push eax
call fcn.0045e850
add esp, 8
push 0x13bb8
push 0
push ebx
call fcn.0045ea68
add esp, 0xc
lea edx, [esp + 0x154]
push edx
lea ecx, [ebx + 0xa40]
push ecx
call fcn.0045e850
add esp, 8
lea eax, [esp + 0x258]
push eax
lea edx, [ebx + 0xb44]
push edx
call fcn.0045e850
add esp, 8
lea ecx, [esp + 0x35c]
push ecx
lea eax, [ebx + 0xd4c]
push eax
call fcn.0045e850
add esp, 8
lea edx, [esp + 0x45c]
push edx
lea ecx, [ebx + 0xc44]
push ecx
call fcn.0045e850
add esp, 8
mov dword [ebx + 0xa3c], esi
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x55c]
mov dword [ebx + 0xa9b8], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xa9bc], eax
mov dword [ebx + 0xa9b4], edi
mov edx, dword [esp + 0xec]
lea edi, [ebx + 0xbb24]
mov dword [ebx + 0xa9b0], edx
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0x550], ecx
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0xd44], eax
mov edx, dword [esp + 0x20]
mov dword [ebx + 0xd48], edx
mov ecx, dword [esp + 0x28]
mov dword [ebx + 0x558], ecx
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x55c], eax
mov edx, dword [esp + 0x30]
mov dword [ebx + 0x560], edx
mov ecx, dword [esp + 0x34]
mov dword [ebx + 0x5e30], ecx
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x5e34], eax
mov edx, dword [esp + 0x3c]
mov dword [ebx + 0x5e38], edx
mov ecx, dword [esp + 0x40]
mov dword [ebx + 0x5e40], ecx
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x52c], eax
mov edx, dword [esp + 0x54]
mov dword [ebx + 0x528], edx
mov ecx, dword [esp + 0x58]
mov dword [ebx + 0x5e28], ecx
mov eax, dword [esp + 0x5c]
mov dword [ebx + 0xa9a8], eax
mov edx, dword [esp + 0x60]
mov dword [ebx + 0xa9ac], edx
mov ecx, dword [esp + 0x24]
mov dword [ebx + 0x5e24], ecx
mov eax, dword [esp + 0x64]
mov dword [ebx + 0x5c4], eax
mov edx, dword [esp + 0x68]
mov dword [ebx + 0x5c8], edx
mov ecx, dword [esp + 0x6c]
mov dword [ebx + 0xa9c4], ecx
mov eax, dword [esp + 0x70]
mov dword [ebx + 0xa9c0], eax
mov edx, dword [esp + 0x74]
mov dword [ebx + 0xab5c], edx
mov edx, dword [esp + 0x78]
mov dword [ebx + 0xab60], edx
mov ecx, dword [esp + 0x7c]
mov dword [ebx + 0xab64], ecx
mov eax, dword [esp + 0x80]
mov dword [ebx + 0xab68], eax
mov edx, dword [esp + 0x84]
mov dword [ebx + 0xab6c], edx
mov ecx, dword [esp + 0x88]
mov dword [ebx + 0xab70], ecx
mov eax, dword [esp + 0x8c]
mov dword [ebx + 0xab74], eax
mov edx, dword [esp + 0x90]
mov dword [ebx + 0x5d4], edx
mov ecx, dword [esp + 0x94]
mov dword [ebx + 0xbb6c], ecx
mov eax, dword [esp + 0x98]
mov dword [ebx + 0xbb70], eax
mov edx, dword [esp + 0x9c]
mov dword [ebx + 0xbb74], edx
mov cx, word [esp + 0xa0]
mov word [ebx + 0xbb68], cx
mov ecx, 8
mov eax, dword [esp + 0xa4]
mov dword [ebx + 0xbb80], eax
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x57c]
lea edi, [ebx + 0xbb44]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xa8]
lea esi, [esp + 0x859c]
mov dword [ebx + 0xbb64], eax
lea edi, [ebx + 0x13b9c]
mov edx, dword [esp + 0xac]
mov dword [ebx + 0xbb78], edx
mov ecx, dword [esp + 0xb0]
mov dword [ebx + 0xbb7c], ecx
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x5e44], eax
mov edx, dword [esp + 0x48]
mov dword [ebx + 0x5e48], edx
mov ecx, dword [esp + 0x4c]
mov dword [ebx + 0x5e50], ecx
mov eax, dword [esp + 0xb4]
mov dword [ebx + 0xa870], eax
mov edx, dword [esp + 0xb8]
mov dword [ebx + 0xa878], edx
mov edx, dword [esp + 0xbc]
mov dword [ebx + 0xa87c], edx
mov ecx, dword [esp + 0xc0]
mov dword [ebx + 0xa884], ecx
mov eax, dword [esp + 0xc4]
mov dword [ebx + 0x588], eax
mov edx, dword [esp + 0xc8]
mov dword [ebx + 0x58c], edx
mov ecx, dword [esp + 0xcc]
mov dword [ebx + 0x518], ecx
mov eax, dword [esp + 0xd0]
mov dword [ebx + 0x530], eax
mov edx, dword [esp + 0xd4]
mov dword [ebx + 0x534], edx
mov ecx, dword [esp + 0xd8]
mov dword [ebx + 0xbb88], ecx
mov eax, dword [esp + 0xdc]
mov dword [ebx + 0xbb8c], eax
mov edx, dword [esp + 0xe0]
mov dword [ebx + 0xbb90], edx
lea edx, [ebx + 0xbb94]
mov ecx, dword [esp + 0xe4]
mov dword [ebx + 0x13b94], ecx
mov ecx, 6
mov eax, dword [esp + 0xe8]
mov dword [ebx + 0x13b98], eax
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x57c], 0xffffffff
push 0x8000
lea eax, [esp + 0x5a0]
push eax
push edx
call fcn.0045eac4
add esp, 0xc
mov edi, ebx
mov ecx, 0x145
lea esi, [esp + 0x85b4]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xf0]
mov dword [ebx + 0xa24], eax
mov edx, dword [esp + 0xf4]
mov dword [ebx + 0xa28], edx
mov ecx, dword [esp + 0xf8]
mov dword [ebx + 0xa2c], ecx
mov eax, dword [esp + 0xfc]
mov dword [ebx + 0xa20], eax
cmp byte [ebx + 0xc44], 0
jne 0x4598a6
cmp byte [ebx + 0xb44], 0
je 0x459892
lea edx, [ebx + 0xb44]
push edx
lea ecx, [ebx + 0xc44]
push ecx
call fcn.0045e850
add esp, 8
jmp 0x4598a6
push str.D123987X
lea eax, [ebx + 0xc44]
push eax
call fcn.0045e850
add esp, 8
push 0
call sub.KERNEL32.DLL_GetModuleHandleA
mov dword [ebx + 0x514], eax
call sub.KERNEL32.DLL_GetCurrentThreadId
mov dword [ebx + 0x53c], eax
lea edx, [esp + 0x8ac8]
push edx
call sub.KERNEL32.DLL_GlobalMemoryStatus
mov ecx, dword [esp + 0x8ad4]
xor eax, eax
mov dword [esp + 0x8bf8], ecx
mov dword [esp + 0x8bfc], eax
fild qword [esp + 0x8bf8]
fmul dword [0x45a178]
add esp, 0xfffffff8
xor ecx, ecx
fstp qword [esp]
mov edx, dword [esp + 0x8ad8]
mov dword [esp + 0x8c08], edx
mov dword [esp + 0x8c0c], ecx
fild qword [esp + 0x8c08]
fmul dword [0x45a178]
add esp, 0xfffffff8
fstp qword [esp]
push 0x5f0792
call fcn.0045e1bc
add esp, 0x14
xor edx, edx
mov eax, dword [esp + 0x8ad4]
mov dword [esp + 0x8c08], eax
mov dword [esp + 0x8c0c], edx
fild qword [esp + 0x8c08]
fmul dword [0x45a178]
add esp, 0xfffffff8
fstp qword [esp]
push str._.2fMB_n
lea ecx, [esp + 0x8af4]
push ecx
call fcn.00457a9c
add esp, 0x10
lea eax, [esp + 0x8ae8]
push eax
call sub.KERNEL32.DLL_OutputDebugStringA
mov edx, dword [esp + 0x8ad4]
mov dword [ebx + 0x304], edx
mov ecx, dword [esp + 0x8ad0]
mov dword [ebx + 0x308], ecx
push 0
call sub.USER32.DLL_GetSystemMetrics
mov dword [ebx + 0x5b0], eax
push 1
call sub.USER32.DLL_GetSystemMetrics
mov dword [ebx + 0x5b4], eax
push 0
call sub.USER32.DLL_GetDC
mov esi, eax
push 0xe
push esi
call sub.GDI32.DLL_GetDeviceCaps
mov edi, eax
push 0xc
push esi
call sub.GDI32.DLL_GetDeviceCaps
imul edi, eax
mov dword [ebx + 0x5b8], edi
push esi
push 0
call sub.USER32.DLL_ReleaseDC
lea eax, [esp + 4]
push eax
lea edx, [esp + 4]
push edx
call fcn.00475d74
add esp, 8
lea ecx, [ebx + 0x5a8]
push ecx
call sub.KERNEL32.DLL_QueryPerformanceFrequency
cmp dword [ebx + 0x5ac], 0
jne 0x459a06
cmp dword [ebx + 0x5a8], 0
setne al
and eax, 1
mov dword [ebx + 0x5a4], eax
push 8
lea edx, [esp + 0xc]
push edx
call sub.WINMM.DLL_timeGetDevCaps
mov ecx, dword [esp + 8]
push ecx
call sub.WINMM.DLL_timeBeginPeriod
cmp dword [ebx + 0x5a4], 0
je 0x459b58
push 0x5f07c4
call fcn.0045df78
pop ecx
xor edi, edi
xor esi, esi
call sub.WINMM.DLL_timeGetTime
mov ebp, eax
lea eax, [esp + 0x110]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter
call sub.WINMM.DLL_timeGetTime
mov dword [esp + 0x10c], eax
jmp 0x459ac8
lea edx, [esp + 0x118]
push edx
call sub.KERNEL32.DLL_QueryPerformanceCounter
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
cmp edx, dword [esp + 0x114]
jne 0x459a91
cmp eax, dword [esp + 0x110]
je 0x459ab0
inc esi
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x110], ecx
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x114], ecx
call sub.WINMM.DLL_timeGetTime
mov dword [esp + 0x108], eax
cmp ebp, eax
je 0x459ac8
inc edi
mov ebp, dword [esp + 0x108]
call fcn.0045ef68
test eax, eax
jne 0x459af2
cmp edi, 0x3c
je 0x459af2
cmp esi, 0x3c
je 0x459af2
call sub.WINMM.DLL_timeGetTime
sub eax, dword [esp + 0x10c]
cmp eax, 0x3e8
jb 0x459a66
push esi
push edi
push 0x5f07e0
call fcn.0045e1bc
add esp, 0xc
push 0x5f082b
call fcn.0045df78
pop ecx
cmp esi, edi
jge 0x459b2c
mov eax, dword [esp + 8]
push eax
push 0x5f082d
call fcn.0045e1bc
add esp, 8
xor edx, edx
mov dword [ebx + 0x5a4], edx
jmp 0x459b4d
fild qword [ebx + 0x5a8]
fld xword [0x45a17c]
fmulp st(1)
add esp, 0xfffffff8
fstp qword [esp]
push 0x5f086b
call fcn.0045e1bc
add esp, 0xc
push 0x5f08aa
call fcn.0045df78
pop ecx
push 0
call fcn.00460538
pop ecx
push eax
call fcn.00457630
pop ecx
push 2
push 0
push 0
push 0x11
call sub.USER32.DLL_SystemParametersInfoA
cmp dword [ebx + 0xab68], 0
jne 0x45a137
push 0x5f08ac
call fcn.0045df78
pop ecx
push 0
lea ecx, [ebx + 0xc44]
push ecx
call sub.USER32.DLL_FindWindowA
test eax, eax
je 0x459bd1
cmp dword [ebx + 0x5c4], 0
jne 0x459bc4
push 0x5f08c5
call fcn.0045df78
pop ecx
mov dword [ebx + 0x564], 1
or eax, 0xffffffff
jmp 0x45a16c
push 0x5f08ef
call fcn.0045df78
pop ecx
jmp 0x459bdc
push 0x5f0911
call fcn.0045df78
pop ecx
cmp dword [ebx + 0x5e38], 0
je 0x459c03
cmp dword [ebx + 0xab68], 0
jne 0x459c03
xor edx, edx
mov dword [ebx + 0xa35c], edx
mov ecx, dword [ebx + 0x5e34]
push ecx
call fcn.0045b994
pop ecx
cmp dword [ebx + 0x530], 1
jne 0x459c25
push 0xfffffffffffffffc
mov eax, dword [ebx + 0x518]
push eax
call sub.USER32.DLL_GetWindowLongA
mov dword [ebx + 0x538], eax
jmp 0x45a01a
mov dword [ebx + 0x5c0], 1
push 0x30
push 0
lea edx, [esp + 0x12c]
push edx
call fcn.0045ea68
add esp, 0xc
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x128], 3
mov dword [esp + 0x12c], 0x45aa00
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], eax
mov edx, dword [ebx + 0x514]
mov dword [esp + 0x138], edx
cmp dword [ebx + 0x5e28], 0
jne 0x459c88
mov ecx, 0x7f00
jmp 0x459c8f
movzx ecx, word [ebx + 0x5e28]
push ecx
mov eax, dword [ebx + 0x514]
push eax
call sub.USER32.DLL_LoadIconA
mov dword [esp + 0x13c], eax
push 0x7f00
push 0
call sub.USER32.DLL_LoadCursorA
mov dword [esp + 0x140], eax
push 5
call sub.GDI32.DLL_GetStockObject
mov dword [esp + 0x144], eax
xor edx, edx
mov dword [esp + 0x148], edx
lea eax, [ebx + 0xc44]
mov dword [esp + 0x14c], eax
xor edx, edx
mov dword [esp + 0x124], 0x30
mov dword [esp + 0x150], edx
push 0x5f0931
call fcn.0045df78
pop ecx
lea ecx, [esp + 0x124]
push ecx
call sub.USER32.DLL_RegisterClassExA
test ax, ax
jne 0x459d25
mov dword [ebx + 0x564], 1
push 0x5f0952
call fcn.0045df78
pop ecx
jmp 0x45a16c
push 0x5f0978
call fcn.0045df78
cmp byte [ebx + 0xb44], 0
pop ecx
jne 0x459d4d
push str.DxLib
lea eax, [ebx + 0xb44]
push eax
call fcn.0045e850
add esp, 8
cmp dword [ebx + 0x550], 0
je 0x459f61
push 0x5f0992
call fcn.0045df78
pop ecx
xor edx, edx
mov dword [esp + 0x120], edx
cmp dword [ebx + 0xa884], 1
jne 0x459d82
mov dword [esp + 0x120], 0x20
xor esi, esi
cmp dword [ebx + 0x558], 1
jne 0x459d93
or esi, 0x10000
cmp dword [ebx + 0xa880], 1
jne 0x459da2
or esi, 0x10000000
cmp dword [ebx + 0xa870], 1
jne 0x459db1
or esi, 0x40000
mov dword [ebx + 0x598], 1
call fcn.0045f3fc
fstp qword [esp + 0x100]
fild dword [esp]
fmul qword [esp + 0x100]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [esp], eax
fild dword [esp + 4]
fmul qword [esp + 0x100]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
push eax
mov edx, dword [esp + 4]
push edx
push 0
push 0
lea ecx, [esp + 0x8bf8]
push ecx
call sub.USER32.DLL_SetRect
mov eax, dword [ebx + 0x52c]
mov edx, dword [eax*4 + 0x5f05f0]
add edx, dword [esp + 0x120]
push edx
push 0
mov ecx, dword [ebx + 0x52c]
mov eax, dword [ecx*4 + 0x5f05d4]
add eax, esi
push eax
lea edx, [esp + 0x8bf4]
push edx
call sub.USER32.DLL_AdjustWindowRectEx
mov ecx, dword [esp + 0x8bf0]
sub ecx, dword [esp + 0x8be8]
mov dword [esp], ecx
mov eax, dword [esp + 0x8bf4]
sub eax, dword [esp + 0x8bec]
mov dword [esp + 4], eax
push 0
call sub.USER32.DLL_GetSystemMetrics
sub eax, dword [esp]
sar eax, 1
jns 0x459e82
adc eax, 0
add dword [esp + 0x8be8], eax
push 1
call sub.USER32.DLL_GetSystemMetrics
sub eax, dword [esp + 4]
sar eax, 1
jns 0x459e9b
adc eax, 0
add dword [esp + 0x8bec], eax
push 0
call sub.USER32.DLL_GetSystemMetrics
sub eax, dword [esp]
sar eax, 1
jns 0x459eb3
adc eax, 0
add dword [esp + 0x8bf0], eax
push 1
call sub.USER32.DLL_GetSystemMetrics
sub eax, dword [esp + 4]
sar eax, 1
jns 0x459ecc
adc eax, 0
add dword [esp + 0x8bf4], eax
push 0
mov edx, dword [ebx + 0x514]
push edx
mov ecx, dword [ebx + 0x5e34]
push ecx
push 0
mov eax, dword [esp + 0x14]
push eax
mov edx, dword [esp + 0x14]
push edx
cmp dword [ebx + 0xab64], 1
jne 0x459f00
mov ecx, dword [ebx + 0xab60]
jmp 0x459f07
mov ecx, dword [esp + 0x8c04]
push ecx
cmp dword [ebx + 0xab64], 1
jne 0x459f19
mov eax, dword [ebx + 0xab5c]
jmp 0x459f20
mov eax, dword [esp + 0x8c04]
push eax
lea eax, [ebx + 0xb44]
mov edx, dword [ebx + 0x52c]
mov ecx, dword [edx*4 + 0x5f05d4]
lea edx, [ebx + 0xc44]
add ecx, esi
push ecx
push eax
push edx
mov ecx, dword [ebx + 0x52c]
mov eax, dword [ecx*4 + 0x5f05f0]
add eax, dword [esp + 0x14c]
push eax
call sub.USER32.DLL_CreateWindowExA
mov dword [ebx + 0x518], eax
jmp 0x459fc4
push 0x5f09c2
call fcn.0045df78
pop ecx
xor edx, edx
mov dword [ebx + 0x598], edx
push 0
mov ecx, dword [ebx + 0x514]
push ecx
push 0
push 0
mov eax, dword [esp + 0x14]
push eax
mov edx, dword [esp + 0x14]
push edx
push 0
push 0
lea edx, [ebx + 0xb44]
mov ecx, dword [ebx + 0x52c]
mov eax, dword [ecx*4 + 0x5f060c]
lea ecx, [ebx + 0xc44]
push eax
push edx
push ecx
mov eax, dword [ebx + 0x52c]
mov edx, dword [eax*4 + str._b_b_b_b_b]
push edx
call sub.USER32.DLL_CreateWindowExA
mov dword [ebx + 0x518], eax
cmp dword [ebx + 0x518], 0
jne 0x459fe7
mov dword [ebx + 0x564], 1
push 0x5f09f2
call fcn.0045df78
pop ecx
jmp 0x45a16c
cmp dword [ebx + 0xa884], 0
jne 0x45a00c
push 5
mov ecx, dword [ebx + 0x518]
push ecx
call sub.USER32.DLL_ShowWindow
mov eax, dword [ebx + 0x518]
push eax
call sub.USER32.DLL_UpdateWindow
jmp 0x45a01a
push 0
mov edx, dword [ebx + 0x518]
push edx
call sub.USER32.DLL_ShowWindow
xor ecx, ecx
xor eax, eax
mov dword [ebx + 0x568], ecx
mov dword [ebx + 0x56c], eax
mov dword [ebx + 0x574], 1
cmp dword [ebx + 0x550], 0
jne 0x45a04f
push 0x5f0a12
call fcn.0045df78
pop ecx
push 0
call sub.USER32.DLL_SetCursor
push 0x5f0a2e
call fcn.0045df78
pop ecx
push 0
mov edx, dword [ebx + 0x518]
push edx
call sub.USER32.DLL_WINNLSEnableIME
cmp dword [ebx + 0x550], 0
je 0x45a0aa
lea ecx, [ebx + 0x540]
push ecx
mov eax, dword [ebx + 0x518]
push eax
call sub.USER32.DLL_GetClientRect
lea edx, [ebx + 0x540]
push edx
mov ecx, dword [ebx + 0x518]
push ecx
call sub.USER32.DLL_ClientToScreen
lea eax, [ebx + 0x548]
push eax
mov edx, dword [ebx + 0x518]
push edx
call sub.USER32.DLL_ClientToScreen
call sub.KERNEL32.DLL_GetOEMCP
cmp eax, 0x3b5
jne 0x45a0c2
mov dword [ebx + 0xbb84], 2
jmp 0x45a0cc
mov dword [ebx + 0xbb84], 1
mov ecx, dword [ebx + 0x598]
push ecx
call fcn.004603c4
pop ecx
xor eax, eax
mov dword [ebx + 0x590], eax
cmp dword [ebx + 0x530], 0
jne 0x45a137
cmp dword [ebx + 0xa884], 0
jne 0x45a0ff
mov edx, dword [ebx + 0x518]
push edx
call sub.USER32.DLL_BringWindowToTop
push 0
call fcn.00460538
pop ecx
mov esi, eax
jmp 0x45a110
call fcn.0045ef68
push 0
call fcn.00460538
pop ecx
sub eax, esi
cmp eax, 0xc8
jl 0x45a10b
cmp dword [ebx + 0xa884], 0
jne 0x45a12f
call fcn.0046336c
xor eax, eax
mov dword [ebx + 0x5c0], eax
lea edx, [ebx + 0x520]
push edx
push 0
push 0
push 0x45f9f4
push 0
push 0
call sub.KERNEL32.DLL_CreateThread
mov dword [ebx + 0x51c], eax
cmp dword [ebx + 0x51c], 0
jne 0x45a16a
push str.ProcessMessage
call fcn.0045df78
pop ecx
xor eax, eax
add esp, 0x8c10
pop ebp
pop edi
pop esi
pop ebx
ret