Function at 0x401b5a
Capabilities:
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x4651ca
mov eax, dword fs:[0]
push eax
sub esp, 0x83c
mov eax, dword [0x487590]
xor eax, esp
mov dword [esp + 0x838], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x487590]
xor eax, esp
push eax
lea eax, [esp + 0x850]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x3c], ebx
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0xc
call edi
push eax
push 0xb
call edi
push ecx
mov ecx, esp
mov esi, 0x80
mov edx, eax
mov dword [ecx], esi
call fcn.00403a73
pop ecx
pop ecx
push eax
push 1
lea ebp, [ebx + 4]
push esi
push dword [ebp]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0x40], ebp
call esi
push 0x32
call edi
push eax
push 0x31
call edi
push ecx
mov ecx, esp
mov edi, 0x80
mov edx, eax
mov dword [ecx], edi
call fcn.00403a73
pop ecx
pop ecx
push eax
push 0
push edi
push dword [ebp]
call esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.004039fc
lea ecx, [ebx + 0x20]
push ecx
mov ecx, eax
call fcn.00403937
sub esp, 0xc
mov ecx, ebp
call fcn.00403908
mov ecx, dword [ebx + 0x24]
push 0x12c
push str.height
lea eax, [esp + 0x34]
push eax
call fcn.0041c623
mov ecx, eax
call fcn.0041c565
mov ecx, dword [ebx + 0x24]
push 0x190
mov esi, eax
push str.width
lea eax, [esp + 0x40]
push eax
call fcn.0041c623
mov ecx, eax
call fcn.0041c565
push 2
push esi
push eax
xor esi, esi
push esi
push esi
push esi
push dword [ebp]
call dword [sym.imp.USER32.dll_SetWindowPos]
call fcn.00402f0e
mov ecx, eax
call fcn.0040c2b8
mov ebx, eax
mov dword [esp + 0x38], ebx
mov edx, 0x47a784
mov ecx, ebx
call fcn.0041d7ab
push esi
or edx, 0xffffffff
mov ecx, ebx
call fcn.0041d44a
pop ecx
mov edx, eax
lea ecx, [esp + 0x40]
call fcn.0040384f
push 0xfffffffffffffffe
pop edx
mov ecx, ebx
mov dword [esp + 0x858], esi
call fcn.0041d09c
push ecx
lea edx, [esp + 0x44]
lea ecx, [esp + 0x38]
call fcn.00402caa
pop ecx
mov byte [esp + 0x858], 1
push dword [esp + 0x34]
push dword [ebp]
call dword [sym.imp.USER32.dll_SetWindowTextW]
push ecx
mov ecx, ebp
call fcn.0040368a
call fcn.00402ea8
mov edi, dword [esp + 0x3c]
mov esi, eax
mov ecx, dword [edi + 0x24]
push str.Container
lea eax, [esp + 0x30]
push eax
call fcn.0041c5e5
push eax
push dword [ebp]
mov ecx, esi
call fcn.00412c83
push str.Body
lea ecx, [esp + 0x1c]
mov dword [edi + 0x28], eax
call fcn.0040178b
lea eax, [esp + 0x18]
mov byte [esp + 0x858], 2
mov ecx, dword [edi + 0x28]
push eax
call fcn.00416ec2
mov byte [esp + 0x858], 1
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
mov edi, eax
call fcn.00401551
test edi, edi
je 0x4020d4
mov edx, 0x47a7c0
mov ecx, ebx
call fcn.0041d7ab
or edx, 0xffffffff
mov ecx, ebx
call fcn.0041d427
push 0xfffffffffffffffe
pop edx
mov ecx, ebx
mov ebp, eax
call fcn.0041d09c
mov edx, 0x47a7e0
call fcn.0041d7ab
or edx, 0xffffffff
mov ecx, ebx
call fcn.0041d427
push 0xfffffffffffffffe
pop edx
mov ecx, ebx
mov dword [esp + 0x20], eax
call fcn.0041d09c
push 0x47a7f8
lea ecx, [esp + 0x18]
call fcn.0040178b
push 0
push 0x488a20
push 0x4889f8
push 0
lea eax, [esp + 0x24]
push eax
mov ecx, edi
mov byte [esp + 0x86c], 3
call fcn.00416f28
push eax
call fcn.0043a37b
mov byte [esp + 0x86c], 1
mov ecx, dword [esp + 0x28]
add esp, 0x14
add ecx, 0xfffffff0
mov esi, eax
call fcn.00401551
test esi, esi
je 0x401df1
mov eax, dword [esi]
push ebp
mov ecx, esi
call dword [eax + 0x18]
push dword [esp + 0x20]
mov ecx, esi
call fcn.00416207
push str.Bind
lea ecx, [esp + 0x18]
call fcn.0040178b
lea eax, [esp + 0x14]
push eax
mov ecx, edi
mov byte [esp + 0x85c], 4
call fcn.00416ec2
mov byte [esp + 0x858], 1
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffff0
mov esi, eax
call fcn.00401551
test esi, esi
je 0x4020d0
push str.BindVertCon
lea ecx, [esp + 0x1c]
call fcn.0040178b
lea eax, [esp + 0x18]
push eax
mov ecx, esi
mov byte [esp + 0x85c], 5
call fcn.00416ec2
mov byte [esp + 0x858], 1
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
mov esi, eax
call fcn.00401551
test esi, esi
je 0x4020d0
mov ecx, esi
call fcn.00417383
mov ebp, dword [eax]
mov ebx, dword [ebp]
cmp ebx, ebp
je 0x4020d0
mov ecx, dword [ebx + 8]
call fcn.00417387
push eax
lea ecx, [esp + 0x28]
call fcn.00402d6b
mov byte [esp + 0x858], 6
cmp dword [esp + 0x28], 0
je 0x4020ae
mov eax, dword [esp + 0x24]
xor esi, esi
mov eax, dword [eax]
push esi
push 0x488a20
push 0x4889f8
push esi
push dword [eax + 8]
call fcn.0043a37b
add esp, 0x14
lea ecx, [esp + 0x1c]
push ecx
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.004162bd
push esi
push 0x24
lea ecx, [esp + 0x24]
mov byte [esp + 0x860], 7
call fcn.00402bf3
mov esi, eax
cmp esi, 0xffffffff
je 0x4020a2
lea eax, [esi + 1]
push eax
push 0x24
lea ecx, [esp + 0x24]
call fcn.00402bf3
mov edi, eax
cmp edi, 0xffffffff
je 0x4020a2
sub edi, esi
lea ecx, [esp + 0x1c]
lea eax, [edi + 1]
push eax
push esi
lea eax, [esp + 0x1c]
push eax
call fcn.00402c25
lea eax, [edi - 1]
push eax
push 1
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x864], 8
call fcn.00402c25
mov byte [esp + 0x858], 9
push dword [eax]
lea ecx, [esp + 0x24]
call fcn.00403649
mov byte [esp + 0x858], 0xb
mov ecx, dword [esp + 0x48]
lea ecx, [ecx - 0x10]
call fcn.00401551
mov esi, str.hwang
lea edi, [esp + 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x7f2
lea eax, [esp + 0x5e]
push 0
push eax
movsw word es:[edi], word [esi]
call fcn.00438850
add esp, 0xc
lea ecx, [esp + 0x44]
push dword [esp + 0x20]
call fcn.0040335f
push dword [eax]
lea eax, [esp + 0x5c]
push eax
call fcn.00437dbf
pop ecx
pop ecx
mov ecx, dword [esp + 0x44]
lea ecx, [ecx - 0x10]
call fcn.00401551
lea eax, [esp + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
mov ecx, esi
call fcn.0041d7ab
push 0
or edx, 0xffffffff
mov ecx, esi
call fcn.0041d44a
pop ecx
mov edx, eax
lea ecx, [esp + 0x18]
call fcn.0040384f
push 0xfffffffffffffffe
pop edx
mov ecx, esi
mov byte [esp + 0x858], 0xc
call fcn.0041d09c
mov esi, str.hwang
lea edi, [esp + 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x7f2
movsw word es:[edi], word [esi]
push 0
lea eax, [esp + 0x62]
push eax
call fcn.00438850
add esp, 0xc
lea eax, [esp + 0x58]
push dword [esp + 0x18]
push eax
call fcn.00437dbf
pop ecx
pop ecx
lea eax, [esp + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], 0
jne 0x40205b
lea ecx, [eax - 0x10]
call fcn.00401551
mov ecx, dword [esp + 0x20]
lea ecx, [ecx - 0x10]
call fcn.00401551
mov ecx, dword [esp + 0x14]
lea ecx, [ecx - 0x10]
jmp 0x40209d
mov esi, dword [esp + 0x14]
push eax
push esi
lea ecx, [esp + 0x24]
call fcn.00402a35
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x1c]
push eax
call fcn.004162b5
mov ecx, dword [ebx + 8]
push 1
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [esp + 0x18]
lea ecx, [ecx - 0x10]
call fcn.00401551
mov ecx, dword [esp + 0x20]
lea ecx, [ecx - 0x10]
call fcn.00401551
lea ecx, [esi - 0x10]
call fcn.00401551
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00401551
lea ecx, [esp + 0x24]
mov byte [esp + 0x858], 1
call fcn.00402ee5
push dword [esp + 0x24]
call fcn.0041b305
mov ebx, dword [ebx]
pop ecx
jmp 0x401e7d
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
call fcn.004024c7
push 0
push 0x42
push 0x2b0f
push dword [ebp]
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [esp + 0x34]
add ecx, 0xfffffff0
call fcn.00401551
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.00401551
xor eax, eax
inc eax
mov ecx, dword [esp + 0x850]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x838]
xor ecx, esp
call fcn.00437bed
add esp, 0x848
ret 0x10