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

Disassembly:
push 0xffffffffffffffff
push 0x653129
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4fc
push ebx
push ebp
push esi
mov esi, dword [esp + 0x518]
push edi
mov edi, ecx
lea eax, [esp + 0xfc]
mov ecx, esi
push eax
mov dword [esp + 0x38], edi
call fcn.004a2b10
lea ecx, [esp + 0xdc]
push ecx
lea ecx, [esp + 0x100]
call fcn.004a30d0
mov eax, dword [esp + 0xe8]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x524]
test eax, eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], edx
je 0x4d6fea
lea ecx, [esp + 0xdc]
push eax
lea edx, [esp + 0x74]
push ecx
push edx
call dword [sym.imp.USER32.dll_IntersectRect]
fld dword [esi]
fstp qword [esp + 0x44]
fld dword [esi + 4]
fabs
fstp dword [esp + 0x24]
fld qword [esp + 0x44]
fabs
fld dword [esp + 0x24]
fmul dword [0x67a360]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4d70e2
fld dword [esi + 8]
fabs
fld dword [esi + 0xc]
fabs
fld st(1)
fmul dword [0x67a360]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4d70e0
sub esp, 8
fstp qword [esp]
call fcn.0046a805
call fcn.0046572c
fld dword [esi + 4]
fabs
fstp qword [esp]
mov ebx, eax
call fcn.0046a805
add esp, 8
call fcn.0046572c
mov ecx, dword [edi + 8]
mov edx, eax
imul ecx, dword [edi + 4]
imul edx, ebx
cmp edx, ecx
jge 0x4d7083
mov ecx, dword [esp + 0x520]
push 0
push ecx
push ebx
push eax
mov ecx, edi
call fcn.004d7a40
mov ebx, eax
jmp 0x4d7085
mov ebx, edi
test ebx, ebx
jne 0x4d7090
xor eax, eax
jmp 0x4d7a17
fld dword [esi + 4]
fcomp dword [0x66419c]
fnstsw ax
test ah, 1
je 0x4d70a7
mov ecx, 1
jmp 0x4d70a9
xor ecx, ecx
fld dword [esi + 8]
fcomp dword [0x66419c]
fnstsw ax
test ah, 0x41
jne 0x4d70c0
mov eax, 1
jmp 0x4d70c2
xor eax, eax
push ecx
push eax
mov ecx, ebx
call fcn.004d6c70
cmp ebx, edi
mov esi, eax
je 0x4d70d9
mov edx, dword [ebx]
push 1
mov ecx, ebx
call dword [edx]
mov eax, esi
jmp 0x4d7a17
fstp st(0)
fld dword [esp + 0x24]
fcomp dword [0x67a9ac]
fnstsw ax
test ah, 1
je 0x4d71c7
fld dword [esi + 8]
fabs
fcomp dword [0x67a9ac]
fnstsw ax
test ah, 1
je 0x4d71c7
fld dword [esi]
fcomp dword [0x66419c]
fnstsw ax
test ah, 0x41
jne 0x4d712d
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
push eax
push ecx
call fcn.0046a805
jmp 0x4d713c
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
push edx
push eax
call fcn.004672c4
add esp, 8
call fcn.0046572c
fld dword [esi + 0xc]
fcomp dword [0x66419c]
fld dword [esi + 0xc]
mov dword [esp + 0x24], eax
fnstsw ax
test ah, 0x41
jne 0x4d7168
sub esp, 8
fstp qword [esp]
call fcn.0046a805
jmp 0x4d7173
sub esp, 8
fstp qword [esp]
call fcn.004672c4
add esp, 8
call fcn.0046572c
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x70]
sub ecx, ebx
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x74]
sub ecx, ebp
sub edx, ebx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x520]
lea ecx, [esp + 0x70]
neg eax
push ecx
push edx
push eax
mov eax, dword [esp + 0x30]
sub esi, ebp
push eax
mov ecx, edi
mov dword [esp + 0x8c], esi
call fcn.004d7a40
jmp 0x4d7a17
push edi
lea ecx, [esp + 0x70]
call fcn.004bce90
xor ebp, ebp
mov ecx, esi
mov dword [esp + 0x514], ebp
call fcn.004a2b70
fild dword [edi + 4]
mov ebx, dword [esp + 0x6c]
mov ecx, 6
mov dword [esp + 0x2c], ebx
fimul dword [edi + 8]
lea edi, [esp + 0xb4]
rep movsd dword es:[edi], dword [esi]
fdivrp st(1)
lea ecx, [esp + 0xb4]
fsqrt
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
push eax
push eax
call fcn.004a2a50
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 4]
lea ecx, [esp + 0xec]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x14]
push ecx
lea ecx, [esp + 0xb8]
mov dword [esp + 0x40], eax
call fcn.004a2b10
lea edx, [esp + 0xcc]
lea ecx, [esp + 0xec]
push edx
call fcn.004a30d0
fld dword [esp + 0xc4]
fadd dword [esp + 0xbc]
mov eax, dword [0x67a9a8]
mov dword [esp + 0xa4], ebp
mov ecx, eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], ebp
fstp dword [esp + 0xac]
fld dword [esp + 0xc8]
fadd dword [esp + 0xc0]
fstp dword [esp + 0xb0]
mov edx, dword [ebx + 4]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fdivr dword [esp + 0xb4]
fstp dword [esp + 0x9c]
mov eax, dword [ebx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xd0]
fild dword [esp + 0x10]
neg eax
push eax
fdivr dword [esp + 0xbc]
fstp dword [esp + 0xa4]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xd0]
fild dword [esp + 0x14]
neg ecx
push ecx
lea ecx, [esp + 0xa4]
fdivr dword [esp + 0xc4]
fchs
fstp dword [esp + 0xac]
mov edx, dword [ebx + 8]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fdivr dword [esp + 0xc8]
fchs
fstp dword [esp + 0xb0]
call fcn.004a2a90
mov edx, dword [0x67a9a8]
lea ecx, [esp + 0x9c]
mov eax, edx
push ecx
lea ecx, [esp + 0x84]
mov dword [esp + 0x90], edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x98], ebp
mov dword [esp + 0x94], ebp
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x88], ebp
call fcn.004a2900
fld dword [esp + 0x80]
fmul dword [0x67a3c8]
push ecx
fstp dword [esp]
call fcn.004a2d40
fld dword [esp + 0x88]
fmul dword [0x67a3c8]
mov dword [esp + 0x50], eax
fstp dword [esp]
call fcn.004a2d40
fld dword [esp + 0x8c]
fmul dword [0x67a3c8]
mov dword [esp + 0x54], eax
fstp dword [esp]
call fcn.004a2d40
fld dword [esp + 0x90]
fmul dword [0x67a3c8]
mov dword [esp + 0x58], eax
fstp dword [esp]
call fcn.004a2d40
fld dword [esp + 0x94]
fmul dword [0x67a3c8]
mov dword [esp + 0x5c], eax
fstp dword [esp]
call fcn.004a2d40
fld dword [esp + 0x98]
fmul dword [0x67a3c8]
mov ebx, eax
fstp dword [esp]
call fcn.004a2d40
mov ecx, dword [esp + 0xd0]
mov esi, dword [esp + 0xdc]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xd8]
sub eax, ecx
push 0x24
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xd8]
sub esi, eax
call fcn.0048b430
add esp, 8
mov dword [esp + 0x44], eax
cmp eax, ebp
mov byte [esp + 0x514], 1
je 0x4d744c
mov ecx, eax
call fcn.004bb560
mov dword [esp + 0x24], eax
jmp 0x4d7450
mov dword [esp + 0x24], ebp
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
push 0
mov eax, dword [edx + 0x10]
push 0
dec eax
mov byte [esp + 0x51c], 0
neg eax
sbb eax, eax
and eax, 0x118
add eax, 0x108
push eax
push esi
push ecx
mov ecx, edi
call fcn.004bb5a0
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 4]
mov ecx, dword [edi + 0x14]
mov ebp, eax
mov dword [esp + 0x40], ecx
imul ecx, esi
mov edx, ecx
xor eax, eax
mov edi, ebp
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
cmp eax, 1
jne 0x4d7728
mov ecx, dword [esp + 0x2c]
cmp dword [ecx + 0x10], 1
jne 0x4d75df
test esi, esi
jle 0x4d79e7
mov edx, dword [esp + 0x60]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x20]
xor ebp, ebp
test eax, eax
jle 0x4d75a1
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov eax, ebx
cdq
and edx, 0xff
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x28]
cdq
and edx, 0xff
add eax, edx
mov esi, eax
sar edi, 8
sar esi, 8
test edi, edi
jl 0x4d7580
mov ecx, dword [esp + 0x34]
cmp edi, dword [ecx + 4]
jge 0x4d7580
test esi, esi
jl 0x4d7580
mov edx, ecx
cmp esi, dword [edx + 8]
jge 0x4d7580
mov eax, edi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x4d7545
dec eax
or eax, 0xfffffff8
inc eax
imul esi, dword [esp + 0x3c]
mov ecx, 7
mov edx, 1
sub ecx, eax
mov eax, edi
shl edx, cl
mov ecx, dword [esp + 0x38]
add ecx, esi
mov dword [esp + 0x10], edx
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dl, byte [eax + ecx]
mov eax, dword [esp + 0x10]
test dl, al
je 0x4d7580
mov ecx, dword [esp + 0x18]
mov byte [ecx + ebp], 0xff
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
add ebx, edx
mov edx, dword [esp + 0x50]
inc ebp
add ecx, edx
cmp ebp, eax
mov dword [esp + 0x28], ecx
jl 0x4d74fd
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x1c]
add edx, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x40]
add esi, eax
mov eax, dword [esp + 0x30]
add ecx, edx
dec eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], eax
jne 0x4d74e3
jmp 0x4d79e7
mov edi, dword [esp + 0x2c]
push 0
mov ecx, edi
call fcn.004bb950
push 1
mov ecx, edi
mov dword [esp + 0x48], eax
call fcn.004bb950
test esi, esi
mov dword [esp + 0x68], eax
jle 0x4d79e7
mov eax, ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ebp
test ecx, ecx
jle 0x4d76f6
mov ebp, eax
mov dword [esp + 0x30], ecx
mov eax, ebp
cdq
and edx, 0xff
add eax, edx
mov edi, eax
mov eax, ebx
cdq
and edx, 0xff
add eax, edx
mov esi, eax
sar edi, 8
sar esi, 8
test edi, edi
jl 0x4d76c4
mov eax, dword [esp + 0x34]
cmp edi, dword [eax + 4]
jge 0x4d76c4
test esi, esi
jl 0x4d76c4
cmp esi, dword [eax + 8]
jge 0x4d76c4
mov eax, edi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x4d7675
dec eax
or eax, 0xfffffff8
inc eax
imul esi, dword [esp + 0x3c]
mov ecx, 7
mov edx, 1
sub ecx, eax
mov eax, edi
shl edx, cl
mov ecx, dword [esp + 0x38]
add ecx, esi
mov dword [esp + 0x98], edx
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dl, byte [eax + ecx]
mov eax, dword [esp + 0x98]
test dl, al
je 0x4d76ba
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x68]
mov dword [edx], ecx
jmp 0x4d76c4
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
mov dword [ecx], eax
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x30]
add esi, 4
add ebp, edx
add ebx, ecx
dec eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], eax
jne 0x4d7631
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x10]
add ebp, edi
add ebx, esi
add eax, edx
dec ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
jne 0x4d761b
jmp 0x4d79e7
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx + 0x10]
cmp ecx, 1
jne 0x4d77f2
test esi, esi
jle 0x4d79e7
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], ebx
mov ebx, ebp
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov ebp, eax
mov eax, dword [esp + 0x20]
xor edi, edi
test eax, eax
jle 0x4d77c4
mov eax, esi
cdq
and edx, 0xff
add eax, edx
mov ecx, eax
mov eax, ebp
cdq
and edx, 0xff
add eax, edx
sar ecx, 8
sar eax, 8
test ecx, ecx
jl 0x4d77a7
mov edx, dword [esp + 0x34]
cmp ecx, dword [edx + 4]
jge 0x4d77a7
test eax, eax
jl 0x4d77a7
cmp eax, dword [edx + 8]
jge 0x4d77a7
imul eax, dword [esp + 0x3c]
add eax, ecx
mov ecx, dword [esp + 0x38]
mov dl, byte [eax + ecx]
mov byte [ebx + edi], dl
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x20]
inc edi
add esi, edx
add ebp, ecx
cmp edi, eax
jl 0x4d7762
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
add ebx, edi
add ebp, edx
add esi, ecx
dec eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
jne 0x4d7758
jmp 0x4d79e7
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 1
mov dword [esp + 0x44], eax
jne 0x4d78e6
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x10c]
push 0xff
push eax
call fcn.004bc000
test esi, esi
jle 0x4d79e7
mov eax, dword [esp + 0x60]
mov edi, ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x4d78b4
mov esi, eax
mov ebx, ecx
mov eax, edi
cdq
and edx, 0xff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0xff
add eax, edx
sar ecx, 8
sar eax, 8
test ecx, ecx
jl 0x4d7896
mov edx, dword [esp + 0x34]
cmp ecx, dword [edx + 4]
jge 0x4d7896
test eax, eax
jl 0x4d7896
cmp eax, dword [edx + 8]
jge 0x4d7896
imul eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
add eax, ecx
xor ecx, ecx
mov cl, byte [eax + edx]
mov eax, dword [esp + ecx*4 + 0x10c]
mov dword [ebp], eax
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
add ebp, 4
add edi, edx
add esi, ecx
dec ebx
jne 0x4d7848
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x14]
add ebp, ebx
add eax, esi
add edi, edx
dec ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ecx
jne 0x4d783c
jmp 0x4d79e7
xor edx, edx
cmp ecx, 2
sete dl
test esi, esi
mov dword [esp + 0x68], edx
jle 0x4d79e7
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
mov ebx, eax
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x4d79ba
mov edi, eax
mov eax, esi
cdq
and edx, 0xff
add eax, edx
mov ecx, eax
mov eax, ebx
cdq
and edx, 0xff
add eax, edx
sar ecx, 8
sar eax, 8
test ecx, ecx
jl 0x4d7998
mov edx, dword [esp + 0x34]
cmp ecx, dword [edx + 4]
jge 0x4d7998
test eax, eax
jl 0x4d7998
cmp eax, dword [edx + 8]
jge 0x4d7998
imul ecx, dword [esp + 0x44]
imul eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
add edx, ecx
mov ecx, dword [esp + 0x68]
add eax, edx
test ecx, ecx
je 0x4d7977
mov eax, dword [eax]
mov dword [ebp], eax
jmp 0x4d7998
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 2]
mov dl, byte [eax + 1]
or ecx, 0xffffff00
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax]
shl ecx, 8
or ecx, edx
mov dword [ebp], ecx
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
add ebp, 4
add esi, edx
add ebx, ecx
dec edi
jne 0x4d7922
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
add ebp, edi
add ebx, edx
add esi, ecx
dec eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], eax
jne 0x4d7914
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x6c]
cmp eax, ecx
je 0x4d79ff
test eax, eax
je 0x4d79ff
mov ecx, eax
push 1
mov edx, dword [ecx]
call dword [edx]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x514], 0xffffffff
call fcn.004a25d0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x50c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x508
ret 0xc