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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x430388
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
mov ebx, ecx
mov eax, dword [ebx + 4]
test eax, eax
jne 0x407a46
xor al, al
pop ebx
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
add esp, 0x6c
ret 0x18
mov edx, dword [esp + 0x78]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
push ebp
push esi
push edi
mov edi, dword [esp + 0x8c]
lea esi, [edx + edi]
cmp esi, eax
jle 0x407a65
sub eax, edx
mov edi, eax
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x90]
lea eax, [esi + ebp]
cmp eax, ecx
jle 0x407a7e
sub ecx, ebp
mov esi, ecx
lea ecx, [esp + 0x18]
call fcn.00428ea2
push 0
mov dword [esp + 0x7c], 0
call dword [0x4310e4]
push eax
lea ecx, [esp + 0x1c]
call fcn.00429276
push 0
push 0
push 0
push 0
call dword [0x4310b0]
mov ecx, dword [esp + 0x80]
push eax
call fcn.00429573
lea ecx, [esp + 0x40]
call fcn.00401270
push 0
push 0
push 0
push 0x20
push esi
push edi
lea ecx, [esp + 0x58]
call fcn.00401740
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x28]
push ecx
push 0x18
push edx
call dword [0x4310d8]
mov eax, dword [esp + 0x34]
mov ecx, eax
and ecx, 0x80000003
jns 0x407afd
dec ecx
or ecx, 0xfffffffc
inc ecx
je 0x407b16
nop
inc eax
mov edx, eax
and edx, 0x80000003
jns 0x407b10
dec edx
or edx, 0xfffffffc
inc edx
jne 0x407b00
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
inc ecx
test eax, eax
mov dword [esp + 0x68], ecx
jne 0x407b45
mov ecx, 0x443b0c
call fcn.00401200
mov ecx, dword [esp + 0x44]
push ecx
push eax
mov dword [esp + 0x6c], eax
call dword [0x4310dc]
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x64]
push 0xcc0020
push ebp
push edx
push esi
push edi
push 0
push 0
push eax
mov ecx, ebx
call fcn.00406020
dec dword [esp + 0x68]
jne 0x407b92
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
push ecx
push edx
call dword [0x4310dc]
mov eax, dword [esp + 0x64]
push eax
mov ecx, 0x443b0c
call fcn.00401230
mov dword [esp + 0x64], 0
mov ebx, dword [esp + 0x94]
mov edx, dword [esp + 0x3c]
mov eax, ebx
shr eax, 0x10
mov byte [esp + 0x84], al
mov eax, dword [esp + 0x30]
lea ebp, [eax - 1]
imul ebp, dword [esp + 0x34]
add ebp, edx
xor edi, edi
test eax, eax
jle 0x407c86
mov edx, dword [esp + 0x2c]
xor esi, esi
test edx, edx
jle 0x407c79
nop
mov ecx, esi
mov eax, dword [ebp + esi*4]
cmp bl, al
jne 0x407bf3
cmp bh, ah
jne 0x407bf3
mov bl, byte [esp + 0x84]
shr eax, 0x10
cmp bl, al
mov ebx, dword [esp + 0x94]
je 0x407bf8
inc esi
cmp esi, edx
jl 0x407bd2
mov eax, esi
sub eax, ecx
test eax, eax
jle 0x407c6c
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], vtable.CRgn.0
lea edx, [edi + 1]
push edx
push esi
push edi
push ecx
mov byte [esp + 0x88], 2
call dword [0x4310b0]
push eax
lea ecx, [esp + 0x14]
call fcn.00429573
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x407c3e
xor ecx, ecx
jmp 0x407c43
mov eax, dword [eax + 4]
mov ecx, eax
push 2
push eax
mov eax, dword [esp + 0x1c]
push eax
push ecx
call dword [0x4310a4]
lea ecx, [esp + 0x10]
mov byte [esp + 0x78], 1
mov dword [esp + 0x10], vtable.CGdiObject.0
call fcn.004295ca
mov edx, dword [esp + 0x2c]
inc esi
cmp esi, edx
jl 0x407bd0
mov eax, dword [esp + 0x30]
sub ebp, dword [esp + 0x34]
inc edi
cmp edi, eax
jl 0x407bc5
lea ecx, [esp + 0x40]
call fcn.004016b0
lea ecx, [esp + 0x18]
mov dword [esp + 0x78], 0xffffffff
call fcn.004292f4
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x6c
ret 0x18