Function at 0x408992
Capabilities:
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x4656d2
mov eax, dword fs:[0]
push eax
sub esp, 0x854
mov eax, dword [0x487590]
xor eax, esp
mov dword [esp + 0x850], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x487590]
xor eax, esp
push eax
lea eax, [esp + 0x868]
mov dword fs:[0], eax
mov ebp, ecx
mov dword [esp + 0x44], ebp
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
push esi
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
lea ebx, [ebp + 4]
push dword [ebx]
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 [ebx]
call esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.004039fc
lea ecx, [ebp + 0x20]
push ecx
mov ecx, eax
call fcn.00403937
sub esp, 0xc
mov ecx, ebx
call fcn.00403908
mov ecx, dword [ebp + 0x24]
push 0x12c
push str.height
lea eax, [esp + 0x34]
push eax
call fcn.0041c623
mov ecx, eax
call fcn.0041c565
mov ecx, dword [ebp + 0x24]
push 0x190
mov esi, eax
push str.width
lea eax, [esp + 0x38]
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 [ebx]
call dword [sym.imp.USER32.dll_SetWindowPos]
call fcn.00402f0e
mov ecx, eax
call fcn.0040c2b8
mov ebx, eax
mov dword [esp + 0x3c], 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 + 0x34]
call fcn.0040384f
push 0xfffffffffffffffe
pop edx
mov ecx, ebx
mov dword [esp + 0x870], esi
call fcn.0041d09c
push ecx
lea edx, [esp + 0x38]
lea ecx, [esp + 0x44]
call fcn.00402caa
pop ecx
mov byte [esp + 0x870], 1
push dword [esp + 0x40]
lea edi, [ebp + 4]
push dword [edi]
call dword [sym.imp.USER32.dll_SetWindowTextW]
push ecx
mov ecx, edi
call fcn.0040368a
call fcn.00402ea8
mov ecx, dword [ebp + 0x24]
mov esi, eax
push str.Container
lea eax, [esp + 0x30]
push eax
call fcn.0041c5e5
push eax
push dword [edi]
mov ecx, esi
call fcn.00412c83
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp + 0x50], eax
test ecx, ecx
jne 0x408b49
push 0x80004005
call fcn.00401697
push str.Body
lea ecx, [esp + 0x24]
call fcn.0040178b
lea eax, [esp + 0x20]
mov byte [esp + 0x870], 2
mov ecx, dword [ebp + 0x50]
push eax
call fcn.00416ec2
mov byte [esp + 0x870], 1
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
mov edi, eax
call fcn.00401551
test edi, edi
je 0x4091ef
push 0x47b444
lea ecx, [esp + 0x20]
call fcn.0040178b
lea eax, [esp + 0x1c]
push eax
mov ecx, edi
mov byte [esp + 0x874], 3
call fcn.00416ec2
mov byte [esp + 0x870], 1
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff0
mov esi, eax
call fcn.00401551
test esi, esi
je 0x408c7c
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 dword [esp + 0x28], 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 + 0x24], eax
call fcn.0041d09c
push 0x47a7f8
lea ecx, [esp + 0x1c]
call fcn.0040178b
push 0
mov ebx, 0x488a20
push ebx
push 0x4889f8
push 0
lea eax, [esp + 0x28]
push eax
mov ecx, esi
mov byte [esp + 0x884], 4
call fcn.00416f28
push eax
call fcn.0043a37b
mov byte [esp + 0x884], 1
mov ecx, dword [esp + 0x2c]
add esp, 0x14
add ecx, 0xfffffff0
mov esi, eax
call fcn.00401551
test esi, esi
je 0x408c81
mov eax, dword [esi]
push dword [esp + 0x28]
mov ecx, esi
call dword [eax + 0x18]
push dword [esp + 0x24]
mov ecx, esi
call fcn.00416207
jmp 0x408c81
mov ebx, 0x488a20
push str.LicenceChk
lea ecx, [esp + 0x1c]
call fcn.0040178b
push 0
push ebx
push 0x4889f8
push 0
lea eax, [esp + 0x28]
push eax
mov ecx, edi
mov byte [esp + 0x884], 5
call fcn.00416f28
push eax
call fcn.0043a37b
mov byte [esp + 0x884], 1
mov ecx, dword [esp + 0x2c]
add esp, 0x14
add ecx, 0xfffffff0
mov esi, eax
call fcn.00401551
test esi, esi
je 0x408d16
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
call fcn.004162bd
mov byte [esp + 0x870], 6
push dword [esp + 0x34]
lea ecx, [esp + 0x20]
push str._global_product_name_
call fcn.00402a35
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
call fcn.004162b5
mov byte [esp + 0x870], 1
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00401551
push 0x48a0a8
mov ecx, ebx
call fcn.00437c60
push eax
lea ecx, [esp + 0x24]
call fcn.004029e6
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x5c]
mov byte [esp + 0x874], 7
mov ecx, dword [ebp + 0x50]
push eax
call fcn.00416f70
mov byte [esp + 0x870], 9
mov ecx, dword [esp + 0x20]
lea ecx, [ecx - 0x10]
call fcn.00401551
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x5c]
jmp 0x408f6a
push 0
push 0x488a20
push 0x4889f8
push 0
push dword [ebx]
call fcn.0043a37b
add esp, 0x14
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.004162bd
mov byte [esp + 0x870], 0xa
mov esi, str.hwang
lea edi, [esp + 0x64]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x7f2
lea eax, [esp + 0x76]
push 0
push eax
movsw word es:[edi], word [esi]
call fcn.00438850
mov esi, dword [esp + 0x24]
add esp, 0xc
lea eax, [esp + 0x70]
push esi
push eax
call fcn.00437dbf
pop ecx
pop ecx
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0
push 0x24
lea ecx, [esp + 0x20]
call fcn.00402bf3
mov edi, eax
cmp edi, 0xffffffff
jne 0x408df1
lea ecx, [esi - 0x10]
jmp 0x408f5a
lea eax, [edi + 1]
push eax
push 0x24
lea ecx, [esp + 0x20]
call fcn.00402bf3
cmp eax, 0xffffffff
je 0x408de9
sub eax, edi
mov dword [esp + 0x30], eax
inc eax
push eax
push edi
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x24]
call fcn.00402c25
mov byte [esp + 0x870], 0xb
mov eax, dword [esp + 0x30]
dec eax
push eax
push 1
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x54]
call fcn.00402c25
mov byte [esp + 0x870], 0xc
push dword [eax]
lea ecx, [esp + 0x20]
call fcn.00403649
mov byte [esp + 0x870], 0xe
mov ecx, dword [esp + 0x38]
lea ecx, [ecx - 0x10]
call fcn.00401551
mov esi, str.hwang
lea edi, [esp + 0x64]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x7f2
lea eax, [esp + 0x76]
push 0
push eax
movsw word es:[edi], word [esi]
call fcn.00438850
add esp, 0xc
lea ecx, [esp + 0x2c]
push dword [esp + 0x1c]
call fcn.0040335f
push dword [eax]
lea eax, [esp + 0x74]
push eax
call fcn.00437dbf
pop ecx
pop ecx
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx - 0x10]
call fcn.00401551
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
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 + 0x28]
call fcn.0040384f
push 0xfffffffffffffffe
pop edx
mov ecx, esi
mov byte [esp + 0x870], 0xf
call fcn.0041d09c
push dword [esp + 0x28]
mov esi, dword [esp + 0x4c]
push esi
lea ecx, [esp + 0x20]
call fcn.00402a35
mov edi, dword [esp + 0x18]
cmp dword [edi - 0xc], 0
je 0x408f2c
push 0x47a8b4
lea ecx, [esp + 0x1c]
call fcn.004045e9
test eax, eax
je 0x408f2c
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x18]
push eax
call fcn.004162b5
jmp 0x408f37
mov ecx, dword [esp + 0x24]
push 0
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [esp + 0x28]
lea ecx, [ecx - 0x10]
call fcn.00401551
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00401551
lea ecx, [esi - 0x10]
call fcn.00401551
lea ecx, [edi - 0x10]
mov byte [esp + 0x870], 9
call fcn.00401551
add ebx, 4
cmp ebx, ebp
jne 0x408d67
push 0x48a0a8
mov ecx, 0x489028
call fcn.00437c60
push eax
lea ecx, [esp + 0x2c]
call fcn.004029e6
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x50]
mov byte [esp + 0x874], 0x10
mov ecx, dword [ecx + 0x50]
push eax
call fcn.00416f70
mov byte [esp + 0x870], 0x12
mov ecx, dword [esp + 0x28]
lea ecx, [ecx - 0x10]
call fcn.00401551
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x50]
jmp 0x4091c9
push 0
push 0x489028
push 0x4889f8
push 0
push dword [ebx]
call fcn.0043a37b
add esp, 0x14
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
mov dword [esp + 0x34], eax
call fcn.0041a7ad
mov byte [esp + 0x870], 0x13
mov esi, str.hwang
lea edi, [esp + 0x64]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x7f2
lea eax, [esp + 0x76]
push 0
push eax
movsw word es:[edi], word [esi]
call fcn.00438850
add esp, 0xc
lea eax, [esp + 0x70]
push dword [esp + 0x18]
push eax
call fcn.00437dbf
pop ecx
pop ecx
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0
push 0x24
lea ecx, [esp + 0x20]
call fcn.00402bf3
mov esi, eax
cmp esi, 0xffffffff
je 0x4091b2
lea eax, [esi + 1]
push eax
push 0x24
lea ecx, [esp + 0x20]
call fcn.00402bf3
mov edi, eax
cmp edi, 0xffffffff
je 0x4091b2
sub edi, esi
lea ecx, [esp + 0x18]
lea eax, [edi + 1]
push eax
push esi
lea eax, [esp + 0x28]
push eax
call fcn.00402c25
lea eax, [edi - 1]
push eax
push 1
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x87c], 0x14
call fcn.00402c25
mov byte [esp + 0x870], 0x15
push dword [eax]
lea ecx, [esp + 0x20]
call fcn.00403649
mov byte [esp + 0x870], 0x17
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx - 0x10]
call fcn.00401551
mov esi, str.hwang
lea edi, [esp + 0x64]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x7f2
lea eax, [esp + 0x76]
push 0
push eax
movsw word es:[edi], word [esi]
call fcn.00438850
add esp, 0xc
lea ecx, [esp + 0x38]
push dword [esp + 0x1c]
call fcn.0040335f
push dword [eax]
lea eax, [esp + 0x74]
push eax
call fcn.00437dbf
pop ecx
pop ecx
mov ecx, dword [esp + 0x38]
lea ecx, [ecx - 0x10]
call fcn.00401551
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
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 + 0x24]
call fcn.0040384f
push 0xfffffffffffffffe
pop edx
mov ecx, esi
mov byte [esp + 0x870], 0x18
call fcn.0041d09c
mov eax, dword [esp + 0x24]
cmp dword [eax - 0xc], 0
jne 0x409175
lea ecx, [eax - 0x10]
call fcn.00401551
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00401551
mov ecx, dword [esp + 0x20]
lea ecx, [ecx - 0x10]
jmp 0x4091ad
mov esi, dword [esp + 0x20]
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.00402a35
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x18]
push eax
call fcn.0041a5fa
mov ecx, dword [esp + 0x24]
lea ecx, [ecx - 0x10]
call fcn.00401551
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00401551
lea ecx, [esi - 0x10]
call fcn.00401551
mov byte [esp + 0x870], 0x12
mov ecx, dword [esp + 0x18]
lea ecx, [ecx - 0x10]
call fcn.00401551
add ebx, 4
cmp ebx, ebp
jne 0x408fca
lea ecx, [esp + 0x4c]
call fcn.00402dd6
lea ecx, [esp + 0x58]
mov byte [esp + 0x870], 1
call fcn.00402dd6
mov ebp, dword [esp + 0x44]
mov ecx, ebp
call fcn.0040a421
push 0
push 0x42
push 0x2b0f
push dword [ebp + 4]
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [esp + 0x40]
add ecx, 0xfffffff0
call fcn.00401551
mov ecx, dword [esp + 0x34]
add ecx, 0xfffffff0
call fcn.00401551
xor eax, eax
inc eax
mov ecx, dword [esp + 0x868]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x850]
xor ecx, esp
call fcn.00437bed
add esp, 0x860
ret 0x10