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

Disassembly:
push 0xffffffffffffffff
push 0x46efca
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x9c
push ebp
push esi
lea ecx, [esp + 0x70]
call fcn.00414510
mov esi, dword [esp + 0xb8]
xor ebp, ebp
push esi
lea ecx, [esp + 0x74]
mov dword [esp + 0xb0], ebp
call fcn.004146e0
test al, al
jne 0x416501
lea ecx, [esp + 0x70]
mov dword [esp + 0xac], 0xffffffff
call fcn.00414560
pop esi
xor al, al
pop ebp
mov ecx, dword [esp + 0x9c]
mov dword fs:[0], ecx
add esp, 0xa8
ret
mov ecx, 0x48efa8
call fcn.0040a840
test al, al
je 0x416515
mov dword [esp + 0xc], ebp
jmp 0x416562
mov al, byte [0x48f1fa]
test al, al
jne 0x41652b
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
jmp 0x416562
mov eax, dword [0x48f1f8]
test ah, ah
jne 0x41653b
and eax, 0xff
jne 0x416541
mov dword [esp + 0xc], ebp
jmp 0x416562
imul eax, dword [esp + 0xb4]
mov ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [esp + 0xc], edx
mov ecx, 0x48efa8
call fcn.0040a840
test al, al
je 0x416579
mov dword [esp + 0xc4], ebp
jmp 0x4165bf
mov al, byte [0x48f1fa]
test al, al
je 0x4165bf
mov eax, dword [0x48f1f8]
test ah, ah
jne 0x416592
and eax, 0xff
jne 0x41659b
mov dword [esp + 0xc4], ebp
jmp 0x4165bf
imul eax, dword [esp + 0xc4]
mov ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0xc4], edx
push ebx
mov ebx, dword [esp + 0xcc]
mov al, bl
push edi
and al, 1
mov ecx, 0x48f3c8
mov byte [esp + 0x13], al
call fcn.004182f0
mov dword [esp + 0x74], eax
mov eax, vtable.CRgn.0
mov dword [esp + 0x28], ebp
mov edi, 1
mov dword [esp + 0x38], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x7c]
mov edx, dword [esi]
mov dword [esp + 0x4c], ecx
mov ecx, esi
mov byte [esp + 0xb4], 3
call dword [edx + 0x50]
mov ebp, eax
mov eax, dword [esi]
mov ecx, esi
mov dword [esp + 0x64], ebp
call dword [eax + 0x4c]
mov ecx, dword [esp + 0xc4]
mov esi, eax
lea eax, [esp + 0x9c]
mov dword [esp + 0x68], esi
mov edx, dword [ecx]
push eax
call dword [edx + 0x40]
lea ecx, [esp + 0x3c]
push eax
push ecx
call dword [0x473510]
mov edx, dword [esp + 0x94]
sar ebx, 1
and ebx, 0x80000003
mov dword [esp + 0x54], edx
jns 0x41666c
dec ebx
or ebx, 0xfffffffc
inc ebx
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0xc8]
test al, al
mov dword [esp + 0xd0], ebx
je 0x416699
test ecx, ecx
je 0x4166b0
mov eax, ebp
cdq
idiv ecx
mov ebx, eax
mov eax, ebp
cdq
idiv ecx
test edx, edx
je 0x4166b5
inc ebx
jmp 0x4166b5
test ecx, ecx
je 0x4166b0
mov eax, esi
cdq
idiv ecx
mov ebx, eax
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x4166b5
inc ebx
jmp 0x4166b5
mov ebx, 1
mov ebp, dword [0x4730e0]
push 0
push 0
push 0
push 0
call ebp
push eax
lea ecx, [esp + 0x24]
call fcn.00467b6c
inc ebx
mov dword [esp + 0x6c], ebx
jmp 0x4166e0
mov ebx, dword [esp + 0x6c]
mov ebp, dword [0x4730e0]
mov ecx, 0x48f3c8
mov dword [esp + 0x50], 5
call fcn.004182f0
mov edx, dword [esp + 0x74]
mov byte [esp + 0x12], 1
sub eax, edx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x28]
cmp eax, ebx
jge 0x41693d
mov ecx, dword [esp + 0xcc]
mov esi, eax
imul eax, ecx
imul esi, dword [esp + 0xc8]
mov dword [esp + 0x34], eax
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
lea eax, [ecx + ecx*4]
shl edx, 2
lea eax, [eax + eax*4]
mov dword [esp + 0x58], edx
shl eax, 2
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x28]
sub ebx, eax
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x5c]
cmp ebx, eax
jae 0x41675f
mov byte [esp + 0x12], 0
jmp 0x416911
mov ebx, dword [esp + 0x14]
add ebx, eax
mov eax, dword [esp + 0x5c]
cmp eax, ebx
jae 0x4167c0
test ecx, ecx
je 0x4167b2
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
sub eax, edx
xor edx, edx
div dword [esp + 0x14]
mov ecx, eax
mov eax, 0x51eb851f
imul ecx, dword [esp + 0xc8]
mul ecx
mov eax, dword [esp + 0xd0]
mov edi, edx
shr edi, 5
cmp eax, 1
je 0x4167a9
cmp eax, 3
jne 0x4167b9
neg edi
mov byte [esp + 0x12], 0
jmp 0x4167f7
mov eax, dword [esp + 0xd0]
mov byte [esp + 0x12], 0
jmp 0x4167f7
test ecx, ecx
je 0x4167d6
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0xc8]
inc eax
mov dword [esp + 0x28], eax
jmp 0x4167f0
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0xc8]
cmp eax, ebx
jg 0x416911
mov edi, eax
mov byte [esp + 0x12], 0
mov eax, dword [esp + 0xd0]
mov cl, byte [esp + 0x13]
test cl, cl
je 0x416843
cmp eax, 3
ja case.default.0x416848
jmp dword [eax*4 + 0x416aec]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x3c]
lea ecx, [esi + edi]
sub eax, ebx
push ecx
push eax
push esi
push 0
jmp 0x416882
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x3c]
sub eax, edx
sub eax, esi
sub ecx, ebx
lea edx, [eax + edi]
push edx
push ecx
push eax
push 0
jmp 0x416882
cmp eax, 3
ja case.default.0x416848
jmp dword [eax*4 + 0x416afc]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
sub eax, ebx
lea ecx, [esi + edi]
push eax
push ecx
push 0
push esi
jmp 0x416882
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x3c]
sub ecx, eax
mov eax, dword [esp + 0x44]
push ecx
sub eax, ebx
sub eax, esi
mov edx, eax
sub edx, edi
push edx
push 0
push eax
call ebp
push eax
lea ecx, [esp + 0x1c]
call fcn.00467b6c
push 0
push 0
push 0
push 0
call ebp
push eax
lea ecx, [esp + 0x30]
call fcn.00467b6c
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x20]
mov ebx, dword [0x4730e4]
neg eax
sbb eax, eax
push 5
and eax, ecx
push 0
push eax
push edx
call ebx
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x2c]
neg eax
mov edx, dword [esp + 0x1c]
sbb eax, eax
and eax, ecx
lea ecx, [esp + 0x18]
neg ecx
sbb ecx, ecx
and ecx, edx
mov edx, dword [esp + 0x50]
push edx
push eax
mov eax, dword [esp + 0x2c]
push ecx
push eax
call ebx
lea ecx, [esp + 0x18]
call fcn.00467bc3
lea ecx, [esp + 0x2c]
call fcn.00467bc3
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x50], 2
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x70]
add ebx, ecx
add edx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x58], edx
add esi, ebx
dec eax
mov dword [esp + 0x60], eax
jne 0x416749
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 0x84]
lea esi, [esp + 0x80]
mov edx, dword [ecx]
neg esi
sbb esi, esi
and esi, ebx
call dword [edx + 0x60]
push eax
push esi
call dword [0x4730f0]
mov ecx, dword [esp + 0x4c]
mov esi, eax
lea eax, [esp + 0x20]
push 5
push eax
call fcn.004677aa
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
call dword [edx + 0x50]
mov ecx, dword [esp + 0x54]
mov ebp, eax
mov eax, dword [ecx]
call dword [eax + 0x4c]
mov edx, dword [esp + 0x84]
lea ecx, [esp + 0x80]
neg ecx
sbb ecx, ecx
xor ebx, ebx
push 0xcc0020
and ecx, edx
push ebx
push ebx
push ecx
mov ecx, dword [esp + 0x5c]
push ebp
push eax
mov edx, dword [ecx + 4]
push ebx
push ebx
push edx
call dword [0x4730f4]
mov edx, dword [esp + 0x84]
lea eax, [esp + 0x80]
neg eax
sbb eax, eax
push esi
and eax, edx
push eax
call dword [0x4730f0]
mov eax, dword [esp + 0x24]
push ebx
push ebx
push eax
call dword [0x4730e8]
lea ecx, [esp + 0x20]
push 5
push ecx
lea ecx, [esp + 0x88]
call fcn.004677aa
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
push eax
push ecx
push ebx
lea edx, [esp + 0xa8]
push ebx
push edx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xbc], eax
call dword [0x4734cc]
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x78]
inc edx
mov dword [esp + 0x38], edx
call fcn.004147c0
test al, al
jne 0x416a4f
mov al, byte [esp + 0x12]
test al, al
je 0x4166d6
mov esi, dword [esp + 0xc0]
push ebx
push ebx
push ebx
mov edi, dword [esi]
mov ecx, esi
call dword [edi + 0x50]
push eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x4c]
mov ecx, dword [esp + 0xd4]
push eax
push ebx
push ebx
push ecx
mov ecx, esi
call dword [edi + 0x10]
mov esi, vtable.CGdiObject.0
mov dword [esp + 0x20], esi
lea ecx, [esp + 0x20]
mov byte [esp + 0xb4], 4
call fcn.00467bc3
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x2c]
mov byte [esp + 0xb4], 5
call fcn.00467bc3
mov dword [esp + 0x18], esi
lea ecx, [esp + 0x18]
mov byte [esp + 0xb4], 6
call fcn.00467bc3
lea ecx, [esp + 0x78]
mov dword [esp + 0xb4], 0xffffffff
call fcn.00414560
mov ecx, dword [esp + 0xac]
pop edi
pop ebx
pop esi
mov al, 1
pop ebp
mov dword fs:[0], ecx
add esp, 0xa8
ret