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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14c
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor ebx, ebx
mov edi, ecx
push ebx
push eax
lea ecx, [esp + 0xcc]
mov dword [esp + 0x20], edi
call fcn.0042d88d
push ebx
push 0x1000
lea ecx, [esp + 0xcc]
push 1
push ecx
lea ecx, [esp + 0x90]
call fcn.004328ff
push 0x46946c
lea ecx, [esp + 0x10]
call fcn.0042ec29
mov edx, dword [esp + 0xc]
push str.Data
push edx
call fcn.00414d7d
add esp, 8
test eax, eax
je 0x408c3f
lea eax, [esp + 0xc]
lea ecx, [esp + 0x80]
push eax
call fcn.00432e00
mov ecx, dword [esp + 0xc]
push str.Data
push ecx
call fcn.00414d7d
add esp, 8
test eax, eax
jne 0x408c18
lea edx, [esp + 0xc]
lea ecx, [esp + 0x80]
push edx
call fcn.00432e00
lea eax, [esp + 0xc]
lea ecx, [esp + 0x80]
push eax
call fcn.00432e00
test eax, eax
je 0x409245
push 0x45c174
lea ecx, [esp + 0x10]
call fcn.00426e9d
mov esi, eax
lea ecx, [esp + 0x6c]
push esi
push ecx
lea ecx, [esp + 0x14]
call fcn.00426e03
add edi, 0x64
push eax
mov ecx, edi
call fcn.0042ecf4
lea ecx, [esp + 0x6c]
call fcn.0042ebbb
mov eax, dword [edi]
push str.Point
push eax
call fcn.00414d7d
add esp, 8
test eax, eax
jne 0x408d63
lea edx, [esi + 1]
lea ecx, [esp + 0xc]
push edx
push 0x45c174
call fcn.00426eab
mov edi, eax
sub eax, esi
push eax
lea ecx, [esp + 0x60]
push esi
push ecx
lea ecx, [esp + 0x18]
call fcn.00426cf1
lea edx, [esp + 0x68]
push edi
push edx
lea ecx, [esp + 0x14]
call fcn.00426cce
push 0x24
call fcn.00429115
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x408d1e
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x5c]
push eax
call fcn.00414d26
push ecx
fstp qword [esp]
push edi
call fcn.00414d26
push ecx
mov ecx, esi
fstp qword [esp]
call fcn.00404610
jmp 0x408d20
xor eax, eax
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x14]
add ecx, 0x50
mov dword [esp + 0x14], eax
push edx
push 1
mov eax, dword [ecx + 8]
push eax
call fcn.0040bf50
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x84]
call fcn.00432e00
lea ecx, [esp + 0x68]
call fcn.0042ebbb
lea ecx, [esp + 0x5c]
call fcn.0042ebbb
jmp 0x409228
mov eax, dword [edi]
push str.Pline
push eax
call fcn.00414d7d
add esp, 8
test eax, eax
jne 0x408ee5
lea edx, [esp + 0x74]
push esi
push edx
lea ecx, [esp + 0x14]
call fcn.00426cce
mov eax, dword [eax]
push eax
call fcn.00414d1b
add esp, 4
lea ecx, [esp + 0x74]
mov edi, eax
call fcn.0042ebbb
mov al, byte [esp + 0x13]
cmp edi, ebx
mov byte [esp + 0x3c], al
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
jle 0x408e60
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x84]
call fcn.00432e00
push 0x45c174
lea ecx, [esp + 0x10]
call fcn.00426e9d
mov esi, eax
lea edx, [esp + 0x60]
push esi
push edx
lea ecx, [esp + 0x14]
call fcn.00426e03
lea eax, [esp + 0x58]
push esi
push eax
lea ecx, [esp + 0x14]
call fcn.00426cce
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x60]
push ecx
call fcn.00414d26
push ecx
fstp qword [esp]
push esi
call fcn.00414d26
push ecx
lea ecx, [esp + 0x144]
fstp qword [esp]
call fcn.00404610
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x134]
push edx
push 1
push eax
lea ecx, [esp + 0x48]
call fcn.00409930
lea ecx, [esp + 0x134]
call fcn.00404bf0
lea ecx, [esp + 0x58]
call fcn.0042ebbb
lea ecx, [esp + 0x60]
call fcn.0042ebbb
dec edi
jne 0x408dbc
push 0x3c
call fcn.00429115
add esp, 4
cmp eax, ebx
je 0x408e80
lea ecx, [esp + 0x3c]
push ecx
mov ecx, eax
call fcn.00402e60
mov dword [esp + 0x4c], eax
jmp 0x408e84
mov dword [esp + 0x4c], ebx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x4c]
push eax
push 1
lea ecx, [edx + 0x50]
mov edx, dword [edx + 0x58]
push edx
call fcn.0040bf50
lea eax, [esp + 0xc]
lea ecx, [esp + 0x80]
push eax
call fcn.00432e00
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
cmp esi, edi
je 0x408ecb
mov edx, dword [esi]
push ebx
mov ecx, esi
call dword [edx + 4]
add esi, 0x24
cmp esi, edi
jne 0x408eb8
mov esi, dword [esp + 0x40]
push esi
call fcn.0042913e
add esp, 4
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
jmp 0x409228
mov eax, dword [edi]
push str.Region
push eax
call fcn.00414d7d
add esp, 8
test eax, eax
jne 0x409218
lea eax, [esp + 0x70]
push esi
push eax
lea ecx, [esp + 0x14]
call fcn.00426cce
mov eax, dword [eax]
push eax
call fcn.00414d1b
add esp, 4
lea ecx, [esp + 0x70]
mov esi, eax
call fcn.0042ebbb
mov cl, byte [esp + 0x13]
cmp esi, ebx
mov byte [esp + 0x1c], cl
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
jle 0x4090e9
mov dword [esp + 0x14], esi
lea edx, [esp + 0xc]
lea ecx, [esp + 0x80]
push edx
call fcn.00432e00
lea ecx, [esp + 0xc]
call fcn.00427236
mov eax, dword [esp + 0xc]
push eax
call fcn.00414d1b
mov cl, byte [esp + 0x17]
add esp, 4
cmp eax, ebx
mov byte [esp + 0x2c], cl
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
jle 0x40902b
mov edi, eax
lea edx, [esp + 0xc]
lea ecx, [esp + 0x80]
push edx
call fcn.00432e00
push 0x45c174
lea ecx, [esp + 0x10]
call fcn.00426e9d
mov esi, eax
lea eax, [esp + 0x64]
push esi
push eax
lea ecx, [esp + 0x14]
call fcn.00426e03
lea ecx, [esp + 0x54]
push esi
push ecx
lea ecx, [esp + 0x14]
call fcn.00426cce
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x64]
push edx
call fcn.00414d26
push ecx
fstp qword [esp]
push esi
call fcn.00414d26
push ecx
lea ecx, [esp + 0x120]
fstp qword [esp]
call fcn.00404610
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x110]
push eax
push 1
push ecx
lea ecx, [esp + 0x38]
call fcn.00409930
lea ecx, [esp + 0x110]
call fcn.00404bf0
lea ecx, [esp + 0x54]
call fcn.0042ebbb
lea ecx, [esp + 0x64]
call fcn.0042ebbb
dec edi
jne 0x408f87
lea edx, [esp + 0x2c]
lea ecx, [esp + 0xd4]
push edx
call fcn.00402e60
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0xd4]
push eax
push 1
push ecx
lea ecx, [esp + 0x28]
call fcn.004062a0
mov edi, dword [esp + 0xf8]
mov esi, dword [esp + 0xf4]
cmp esi, edi
je 0x40907c
mov edx, dword [esi]
push ebx
mov ecx, esi
call dword [edx + 4]
add esi, 0x24
cmp esi, edi
jne 0x409066
mov esi, dword [esp + 0xf4]
push esi
call fcn.0042913e
add esp, 4
lea ecx, [esp + 0xd4]
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], ebx
call fcn.004029c0
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
cmp esi, edi
je 0x4090c5
mov eax, dword [esi]
push ebx
mov ecx, esi
call dword [eax + 4]
add esi, 0x24
cmp esi, edi
jne 0x4090b2
mov esi, dword [esp + 0x30]
push esi
call fcn.0042913e
mov eax, dword [esp + 0x18]
add esp, 4
dec eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x14], eax
jne 0x408f42
push 0x40
call fcn.00429115
add esp, 4
cmp eax, ebx
mov dword [esp + 0x7c], eax
je 0x409194
mov cl, byte [esp + 0x1c]
sub esp, 0x10
mov esi, esp
mov dword [esp + 0x24], esi
mov byte [esi], cl
mov eax, dword [esp + 0x30]
cmp eax, ebx
jne 0x40911a
xor edx, edx
jmp 0x409133
mov ecx, dword [esp + 0x34]
sub ecx, eax
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, ebx
mov eax, edx
jge 0x40913b
xor eax, eax
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
shl ecx, 2
push ecx
call fcn.00429115
mov dword [esi + 4], eax
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
add esp, 4
cmp edi, ecx
mov ebx, ecx
mov esi, eax
je 0x409176
test esi, esi
je 0x40916c
push edi
mov ecx, esi
call fcn.00402be0
add edi, 0x3c
add esi, 0x3c
cmp edi, ebx
jne 0x409160
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x8c]
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
call fcn.004052e0
mov dword [esp + 0x50], eax
xor ebx, ebx
jmp 0x409198
mov dword [esp + 0x50], ebx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x50]
push eax
push 1
lea ecx, [edx + 0x50]
mov edx, dword [edx + 0x58]
push edx
call fcn.0040bf50
lea eax, [esp + 0xc]
lea ecx, [esp + 0x80]
push eax
call fcn.00432e00
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x84]
call fcn.00432e00
lea edx, [esp + 0xc]
lea ecx, [esp + 0x80]
push edx
call fcn.00432e00
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
je 0x409201
mov eax, dword [esi]
push ebx
mov ecx, esi
call dword [eax + 4]
add esi, 0x3c
cmp esi, edi
jne 0x4091ee
mov esi, dword [esp + 0x20]
push esi
call fcn.0042913e
add esp, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
jmp 0x409228
mov ecx, dword [edi]
push ebx
push str.Cant_transfer_it_
push ecx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea edx, [esp + 0xc]
lea ecx, [esp + 0x80]
push edx
call fcn.00432e00
mov edi, dword [esp + 0x18]
test eax, eax
jne 0x408c69
mov eax, dword [edi]
mov ecx, edi
mov byte [edi + 0x60], 0
call dword [eax + 0x60]
mov edx, dword [edi]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x78]
mov ecx, edi
push eax
call dword [edx + 0x64]
mov ecx, dword [eax + 0x1c]
push 1
push ebx
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
lea ecx, [esp + 0xc]
call fcn.0042ebbb
lea ecx, [esp + 0x80]
call fcn.004329db
lea ecx, [esp + 0xc4]
call fcn.0042d92d
lea ecx, [ebp + 8]
call fcn.0042ebbb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4