Function at 0x406bd0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x487093
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
mov eax, dword [0x49e7c0]
xor eax, esp
mov dword [esp + 0x88], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x49e7c0]
xor eax, esp
push eax
lea eax, [esp + 0xa0]
mov dword fs:[0], eax
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
xor esi, esi
cmp eax, esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], esi
je 0x406c42
mov dword [eax + 0x90], esi
mov dword [eax + 0x94], esi
push 0x48
mov dword [ecx], esi
call fcn.00477736
mov ebx, eax
add esp, 4
cmp ebx, esi
je 0x406cb2
mov eax, 7
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x14], esi
mov word [ebx + 4], si
lea ebp, [ebx + 0x1c]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x14], esi
mov eax, edi
mov word [ebp + 4], si
mov dword [ebx + 0x40], esi
lea edx, [eax + 2]
jmp 0x406c80
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x406c80
sub eax, edx
sar eax, 1
push eax
push edi
mov ecx, ebx
call fcn.00402680
push ebx
call fcn.00442350
add esp, 4
test al, al
je 0x406d04
cmp dword [ebx + 0x18], 8
lea edi, [ebx + 4]
jb 0x406cba
mov eax, dword [edi]
jmp 0x406cbc
or eax, 0xffffffff
jmp 0x40742a
mov eax, edi
push eax
call fcn.00442030
mov esi, eax
add esp, 4
test esi, esi
jle 0x406d04
cmp dword [ebx + 0x18], 8
jb 0x406cd5
mov eax, dword [edi]
jmp 0x406cd7
mov eax, edi
lea eax, [eax + esi*2]
push eax
mov ecx, ebp
call fcn.00402a20
mov ecx, dword [ebx + 0x14]
lea eax, [esi - 1]
cmp eax, ecx
ja 0x406cf8
push 0xffffffffffffffff
push eax
mov ecx, ebx
call fcn.00401aa0
jmp 0x406d04
sub eax, ecx
push 0
push eax
mov ecx, ebx
call fcn.004022b0
push ebx
call fcn.00442310
add esp, 4
test al, al
jne 0x406d1c
push 0x5c
push 1
mov ecx, ebx
call fcn.004022b0
xor esi, esi
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], esi
mov word [esp + 0x4c], si
cmp dword [ebx + 0x18], 8
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0xa8], esi
jb 0x406d44
mov eax, dword [ebx + 4]
jmp 0x406d47
lea eax, [ebx + 4]
add ecx, 0xffffffff
push ecx
push eax
lea ecx, [esp + 0x50]
call fcn.00402680
cmp dword [esp + 0x14], esi
mov dword [ebx + 0x3c], esi
mov dword [ebx + 0x44], esi
je 0x406ed7
mov esi, dword [esp + 0x14]
xor edi, edi
add esi, 0x2c
xor ebp, ebp
mov eax, dword [esi + 4]
test eax, eax
je 0x406d8d
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jge 0x406de8
mov eax, dword [esi + 4]
test eax, eax
je 0x406db2
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x406db7
call fcn.0047770d
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x4c]
add ecx, ebp
cmp dword [esp + 0x60], 8
jae 0x406dcb
lea eax, [esp + 0x4c]
mov edx, dword [esp + 0x5c]
push edx
push eax
mov eax, dword [ecx + 0x14]
push eax
push 0
call fcn.004015f0
test eax, eax
je 0x406de8
add edi, 1
add ebp, 0x58
jmp 0x406d70
mov eax, dword [esi + 4]
test eax, eax
je 0x406e05
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jge 0x406ed7
cmp dword [esp + 0x60], 8
mov eax, dword [esp + 0x4c]
jae 0x406e1c
lea eax, [esp + 0x4c]
push eax
call fcn.004010b0
mov dword [ebx + 0x38], eax
mov eax, dword [esi + 4]
xor ebp, ebp
add esp, 4
cmp eax, ebp
je 0x406e4b
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x406e50
call fcn.0047770d
imul edi, edi, 0x58
add edi, dword [esi + 4]
push 1
push ebp
push ebp
lea eax, [ebx + 0x40]
push eax
push edi
call fcn.00405840
mov edi, eax
add esp, 0x14
cmp edi, ebp
je 0x406e82
mov ecx, ebx
call fcn.00401f30
push ebx
call fcn.004775de
add esp, 4
jmp 0x407414
sub esp, 0x58
mov eax, esp
mov dword [esp + 0x84], esp
mov dword [eax + 0x18], 7
mov dword [eax + 0x14], ebp
push ebp
mov ecx, esi
mov word [eax + 4], bp
call fcn.00404e40
mov ecx, dword [ebx + 0x14]
lea eax, [ecx - 1]
cmp eax, ecx
ja 0x406eba
push 0xffffffffffffffff
push eax
mov ecx, ebx
call fcn.00401aa0
jmp 0x406ec5
sub eax, ecx
push ebp
push eax
mov ecx, ebx
call fcn.004022b0
push 0x5f
push 1
mov ecx, ebx
call fcn.004022b0
mov ebp, 8
jmp 0x406f4e
mov eax, dword [esp + 0x4c]
mov ebp, 8
cmp dword [esp + 0x60], ebp
jae 0x406eea
lea eax, [esp + 0x4c]
push eax
call fcn.004011b0
add esp, 4
test eax, eax
mov dword [ebx + 0x38], eax
je 0x406f4a
cmp dword [esp + 0x60], ebp
mov eax, dword [esp + 0x4c]
jae 0x406f08
lea eax, [esp + 0x4c]
lea esi, [ebx + 0x40]
push esi
push 1
push 1
push 0
push 0
push 0
push eax
call fcn.00408e30
add esp, 0x1c
cmp dword [esi], 0
mov edi, eax
jne 0x406f4e
mov ecx, ebx
call fcn.00401f30
push ebx
call fcn.004775de
add esp, 4
cmp dword [esp + 0x60], ebp
jb 0x407428
mov edx, dword [esp + 0x4c]
push edx
jmp 0x407420
mov edi, dword [esp + 0x2c]
mov eax, dword [ebx + 0x38]
cmp eax, 7
jne 0x406f83
mov ecx, ebx
call fcn.00401f30
push ebx
call fcn.004775de
add esp, 4
cmp dword [esp + 0x60], ebp
jb 0x406f79
mov eax, dword [esp + 0x4c]
push eax
call fcn.004775de
add esp, 4
mov eax, 0xfffffffe
jmp 0x40742a
push eax
call fcn.00404400
add esp, 4
test eax, eax
je 0x406fbd
mov ecx, ebx
call fcn.00401f30
push ebx
call fcn.004775de
add esp, 4
cmp dword [esp + 0x60], ebp
jb 0x406fb3
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.004775de
add esp, 4
mov eax, 0xfffffffd
jmp 0x40742a
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x40740e
sub eax, 3
je 0x407203
sub eax, 1
je 0x40708e
sub eax, 2
je 0x406ff7
mov ecx, ebx
or edi, 0xffffffff
call fcn.00401f30
push ebx
call fcn.004775de
add esp, 4
jmp 0x40740e
mov eax, dword [esp + 0x4c]
mov ebp, 8
cmp dword [esp + 0x60], ebp
jae 0x40700a
lea eax, [esp + 0x4c]
push eax
call fcn.004420f0
add esp, 4
cmp dword [esp + 0x60], ebp
mov esi, eax
mov eax, dword [esp + 0x4c]
jae 0x407023
lea eax, [esp + 0x4c]
push eax
call fcn.00442070
add esp, 4
cmp esi, dword [esp + 0x5c]
je 0x407036
cmp eax, ebp
jge 0x407054
lea edx, [esp + 0x48]
push edx
call fcn.00442350
add esp, 4
test al, al
jne 0x407054
push 0x2f
push 1
lea ecx, [esp + 0x50]
call fcn.004022b0
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x50]
push eax
mov ecx, ebx
call fcn.00402360
cmp dword [esp + 0x14], 0
je 0x40740e
mov ecx, dword [ebx + 0x40]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
call eax
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x98], eax
mov dword [ecx + 0x9c], edx
jmp 0x40740e
xor ebp, ebp
mov dword [esp + 0x7c], 7
mov dword [esp + 0x78], ebp
mov word [esp + 0x68], bp
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x68]
mov byte [esp + 0xac], 3
call fcn.00402a20
mov eax, 0xc8
push 1
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], ebp
call fcn.0043c0b0
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x4071b1
mov eax, dword [esi + 8]
lea edx, [esp + 0x1c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esi + 0x30c]
mov edi, 1
cmp eax, edi
je 0x40712f
cmp eax, 3
je 0x40712f
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
sub ecx, dword [esp + 0x1c]
sub eax, dword [esp + 0x20]
mov dword [esp + 0x88], eax
jmp 0x407146
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
sub ecx, dword [esp + 0x20]
sub edx, dword [esp + 0x1c]
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], ecx
cmp dword [esi + 0x118], edi
jne 0x407176
cmp byte [0x4a0624], 0
je 0x407176
push 2
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [esp + 0x84]
sub ecx, eax
mov dword [esp + 0x84], ecx
cmp dword [esi + 0x184], 2
je 0x407187
cmp dword [esi + 0x180], edi
jne 0x407195
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x84], eax
mov esi, dword [esp + 0x14]
cmp esi, ebp
je 0x4071ba
mov dword [esp + 0x90], fcn.00401250
mov dword [esp + 0x94], esi
jmp 0x4071ba
mov esi, dword [esp + 0x14]
mov edi, 1
lea eax, [esp + 0x64]
push eax
mov eax, dword [ebx + 0x40]
cmp eax, ebp
push ecx
mov dword [esp + 0x20], esp
mov ecx, esp
je 0x4071d0
add dword [eax + 4], edi
mov dword [ecx], eax
call fcn.0046e250
mov edi, eax
cmp edi, ebp
jl 0x4071f5
cmp esi, ebp
je 0x4071f5
mov eax, dword [esp + 0x8c]
cdq
mov dword [esi + 0x98], eax
mov dword [esi + 0x9c], edx
lea ecx, [esp + 0x64]
call fcn.00401f00
jmp 0x40740e
mov eax, dword [ebx + 0x40]
lea ecx, [esp + 0x34]
xor esi, esi
cmp eax, esi
push ecx
lea ebp, [ebx + 0x40]
push ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x20], esp
mov ecx, esp
je 0x40722b
add dword [eax + 4], 1
mov dword [ecx], eax
call dword [0x49fc0c]
mov edi, eax
cmp edi, 0xfffffff8
jne 0x4073ec
cmp dword [esp + 0x14], esi
je 0x40740e
xor esi, esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0xac], 1
call fcn.004055b0
add esp, 4
lea ecx, [esp + 0x1c]
call fcn.00401370
test eax, eax
jle 0x4072fb
lea esp, [esp]
push esi
lea ecx, [esp + 0x20]
call fcn.004013a0
cmp dword [eax + 0x18], 8
jb 0x407295
mov eax, dword [eax + 4]
jmp 0x407298
add eax, 4
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], eax
mov eax, dword [ebp]
test eax, eax
push ecx
mov dword [esp + 0x20], esp
mov ecx, esp
je 0x4072b3
add dword [eax + 4], 1
mov dword [ecx], eax
call dword [0x49fc0c]
mov edi, eax
test edi, edi
lea ecx, [esp + 0x1c]
je 0x4072d3
add esi, 1
call fcn.00401370
cmp esi, eax
jl 0x407280
jmp 0x4072fb
push esi
call fcn.004013a0
cmp dword [eax + 0x18], 8
jb 0x4072e4
mov eax, dword [eax + 4]
jmp 0x4072e7
add eax, 4
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.0040b690
call dword [0x49fbf8]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40731c
mov ecx, dword [esp + 0x24]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jne 0x4073d9
xor esi, esi
mov dword [esp + 0x7c], 7
mov dword [esp + 0x78], esi
mov word [esp + 0x68], si
mov eax, dword [0x4a06a4]
mov ecx, dword [0x4a1388]
lea edx, [esp + 0x64]
push edx
push 0x401810
push eax
push 0x1fd
push ecx
mov byte [esp + 0xbc], 2
call dword [sym.imp.USER32.dll_DialogBoxParamW]
cmp eax, 1
jne 0x4073c0
cmp dword [esp + 0x7c], 8
jb 0x407377
mov edx, dword [esp + 0x68]
mov dword [esp + 0x34], edx
jmp 0x40737f
lea eax, [esp + 0x68]
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x34]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.0040b690
call dword [0x49fc0c]
mov edi, eax
cmp edi, esi
jne 0x4073c0
cmp dword [esp + 0x7c], 8
mov eax, dword [esp + 0x68]
jae 0x4073ac
lea eax, [esp + 0x68]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ebp
call fcn.0040b690
call dword [0x49fbf8]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x64]
mov dword [edx + 0x84], eax
call fcn.00401f00
lea ecx, [esp + 0x1c]
mov byte [esp + 0xa8], 0
call fcn.00403bf0
xor esi, esi
cmp edi, esi
jl 0x40740e
mov esi, dword [esp + 0x14]
test esi, esi
je 0x40740e
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 0x28]
call edx
mov dword [esi + 0x98], eax
mov dword [esi + 0x9c], edx
mov eax, dword [esp + 0x30]
mov dword [eax], ebx
cmp dword [esp + 0x60], 8
jb 0x407428
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.004775de
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.004777ea
add esp, 0x98
ret