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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov ecx, dword [ebp + 0xc]
mov eax, dword [0x5c1040]
xor eax, ebp
mov dword [esp + 0x78], eax
xorpd xmm0, xmm0
test ecx, ecx
je 0x4d94bd
mov eax, dword [ebp + 0x10]
lea edx, [eax + ecx]
movsd xmm1, qword [0x59cba8]
cmp edx, 0x135
jg 0x4d99d7
cmp edx, 0xfffffebd
jl 0x4d94bd
cmp ecx, 0xf
jg 0x4d959c
cmp eax, 0xffffffea
jb 0x4d94e2
neg eax
mov dword [esp + 0x20], eax
test ecx, ecx
jle 0x4d94b0
xor eax, eax
xor edi, edi
inc edi
xor ecx, ecx
mov edx, dword [ebp + 8]
movsx ebx, byte [edx + edi - 1]
mov esi, ebx
mov edx, 0xa
mul edx
sar esi, 0x1f
add eax, ebx
mov ebx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2]
adc ecx, esi
add eax, 0xffffffd0
adc ecx, 0xffffffff
cmp edi, ebx
jge 0x4d9490
inc edi
mov edx, 0x99999999
cmp eax, edx
mov edx, ecx
mov esi, 0x19999999
sbb edx, esi
jb 0x4d9452
movd xmm0, eax
movd xmm1, ecx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x59cb70]
subpd xmm0, xmmword [0x59cb80]
haddpd xmm0, xmm0
mov eax, dword [esp + 0x20]
divsd xmm0, qword [eax*8 + 0x5b0428]
movsd qword [esp + 0x48], xmm0
fld qword [esp + 0x48]
fstp xword [esp + 0x20]
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.004f1eb0
fld xword [esp + 0x20]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp eax, 0x16
ja 0x4d9a28
test ecx, ecx
jle 0x4d9554
xor eax, eax
xor edi, edi
inc edi
xor ecx, ecx
mov edx, dword [ebp + 8]
movsx ebx, byte [edx + edi - 1]
mov esi, ebx
mov edx, 0xa
mul edx
sar esi, 0x1f
add eax, ebx
mov ebx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2]
adc ecx, esi
add eax, 0xffffffd0
adc ecx, 0xffffffff
cmp edi, ebx
jge 0x4d9534
inc edi
mov edx, 0x99999999
cmp eax, edx
mov edx, ecx
mov esi, 0x19999999
sbb edx, esi
jb 0x4d94f6
movd xmm0, eax
movd xmm1, ecx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x59cb70]
subpd xmm0, xmmword [0x59cb80]
haddpd xmm0, xmm0
mov eax, dword [ebp + 0x10]
mulsd xmm0, qword [eax*8 + 0x5b0428]
jmp 0x4d94bd
xor ecx, ecx
add edi, 0x3a98000
setb cl
mov dword [esp + 0x14], 0xe
jmp 0x4d96e3
xor ecx, ecx
add edi, 0x5b8d8000
setb cl
mov dword [esp + 0x14], 0x14
jmp 0x4d96e3
mov esi, ecx
jmp 0x4d9630
mov dword [esp + 0x18], edx
xor edx, edx
xor ecx, ecx
xor esi, esi
mov eax, dword [ebp + 8]
movsx ebx, byte [eax + esi]
inc esi
mov edi, ebx
mov eax, edx
mov edx, 0xa
mul edx
mov dword [esp + 0x20], edx
sar edi, 0x1f
mov edx, eax
add edx, ebx
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + eax*2]
adc ecx, edi
add edx, 0xffffffd0
adc ecx, 0xffffffff
cmp esi, dword [ebp + 0xc]
jge 0x4d95ed
mov eax, 0x99999999
cmp edx, eax
mov eax, ecx
mov edi, 0x19999999
sbb eax, edi
jb 0x4d95a6
mov dword [esp + 8], edx
xor ebx, ebx
mov edi, dword [ebp + 0xc]
cmp esi, edi
jne 0x4d9b90
mov edx, dword [ebp + 0x10]
xor edi, edi
test ecx, 0xffc00000
jne 0x4d9595
xor ebx, ebx
mov esi, ecx
mov eax, esi
mov esi, dword [esp + 8]
shld eax, esi, 0xa
shl esi, 0xa
mov dword [esp + 8], esi
mov esi, eax
add ebx, 0xfffffff6
mov eax, 0x1000
cmp ecx, eax
mov ecx, esi
jb 0x4d960f
test esi, esi
js 0x4d9a4e
mov eax, dword [esp + 8]
shld esi, eax, 1
add eax, eax
dec ebx
test esi, esi
jns 0x4d963c
mov dword [esp + 0x10], esi
mov dword [esp + 8], eax
mov dword [esp + 0x1c], ebx
mov ecx, ebx
neg cl
xor ebx, ebx
shld ebx, edi, cl
shl edi, cl
xor eax, eax
test cl, 0x20
cmovne ebx, edi
cmovne edi, eax
mov dword [esp + 0xc], edi
cmp edx, 0xfffffea4
jl 0x4d94bd
movapd xmm0, xmmword [0x59e690]
lea eax, [esp + 0x68]
movupd xmmword [eax], xmm0
lea esi, [esp + 0x64]
mov dword [esi], 0xffffffff
push esi
push eax
push edx
mov edi, edx
call fcn.00491e80
mov eax, edi
add esp, 0xc
sub eax, dword [esi]
mov dword [esp + 0x20], ebx
je 0x4d9a1f
mov dword [esp + 0x18], eax
dec eax
cmp eax, 6
ja case.default.0x4d96c9
xor ecx, ecx
mov edi, 0x98968000
lea edx, [edi + 0x7698000]
jmp dword [eax*4 + 0x5b04e0]
xor ecx, ecx
add edi, 0x2ab98000
setb cl
mov dword [esp + 0x14], 0x11
mov esi, ecx
mov edx, dword [esp + 0x10]
imul esi, edx
mov eax, edi
mul edx
mov dword [esp + 0x10], eax
mov eax, edi
mov edi, dword [esp + 8]
imul ecx, edi
mov ebx, edx
mul edi
add ecx, edx
mov edx, dword [esp + 0x14]
add dword [esp + 0x1c], edx
and eax, 0x80000000
add ecx, dword [esp + 0x10]
adc ebx, esi
add eax, 0x80000000
adc ecx, 0
adc ebx, 0
mov dword [esp + 0x10], ebx
mov eax, 0x13
sub eax, dword [ebp + 0xc]
mov edx, dword [esp + 0xc]
mov edi, edx
add edi, 4
mov esi, dword [esp + 0x20]
mov ebx, esi
adc ebx, 0
cmp eax, dword [esp + 0x18]
cmovl esi, ebx
mov dword [esp + 0x20], esi
cmovl edx, edi
mov dword [esp + 0xc], edx
mov ebx, ecx
mov ecx, dword [esp + 0x6c]
mov eax, ecx
mov edi, dword [esp + 0x10]
mul edi
mov esi, edx
mov dword [esp + 8], eax
mov eax, ecx
mul ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x68]
mov eax, ecx
mul edi
mov edi, ebx
mov ebx, edx
mov dword [esp + 0x10], eax
mov eax, ecx
mul edi
xor ecx, ecx
add edx, dword [esp + 0x10]
setb cl
add edx, dword [esp + 0x14]
adc ecx, 0
add ebx, dword [esp + 8]
adc esi, 0
add ebx, dword [esp + 0x18]
adc esi, 0
add edx, 0x80000000
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x1c]
lea eax, [edx + eax + 0x40]
mov dword [esp + 0x10], eax
adc ebx, ecx
mov dword [esp + 8], ebx
adc esi, 0
xor edx, edx
mov eax, dword [esp + 0xc]
mov ecx, eax
mov edi, dword [esp + 0x20]
or ecx, edi
mov ecx, esi
sete dl
xor edx, 9
add edx, eax
mov dword [esp + 0x38], 0x400000
adc edi, 0
cmp esi, 0x400000
mov esi, edi
jb 0x4d9b5c
mov edi, dword [esp + 0x10]
mov ebx, edi
mov eax, ecx
mov ecx, edi
test eax, eax
mov edi, dword [esp + 8]
js 0x4d9810
shld eax, edi, 1
add edi, edi
dec ebx
test eax, eax
jns 0x4d9805
mov dword [esp + 0xc], eax
sub ecx, ebx
shld esi, edx, cl
shl edx, cl
xor eax, eax
test cl, 0x20
cmovne esi, edx
cmovne edx, eax
xor ecx, ecx
mov dword [esp + 0x10], edx
lea eax, [ebx + 0x472]
cmp ebx, 0xfffffb8f
cmovl eax, ecx
cmp ebx, 0xfffffbc3
mov edx, 0x35
cmovl edx, eax
cmp edx, 3
jle 0x4d9c20
mov dword [esp + 0x18], ebx
mov dword [esp + 8], edi
mov dword [esp + 0x20], esi
mov eax, 0x40
sub eax, edx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov ebx, ecx
mov edi, ecx
mov dword [esp + 0xc], ecx
mov ecx, eax
shr ebx, cl
test al, 0x20
mov edx, ebx
mov ecx, 0
cmovne edx, ecx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 8]
mov esi, edx
mov ecx, eax
shrd esi, edi, cl
test al, 0x20
cmovne esi, ebx
mov dword [esp + 0x14], esi
xor esi, esi
dec esi
mov ebx, esi
shl ebx, cl
test al, 0x20
mov edi, ebx
mov ecx, 0
cmovne edi, ecx
cmove ebx, esi
not edi
and edi, edx
not ebx
and ebx, dword [esp + 0xc]
mov ecx, eax
dec cl
mov edx, 8
xor eax, eax
shld eax, edx, cl
shld ebx, edi, 3
shl edi, 3
shl edx, cl
test cl, 0x20
mov ecx, dword [esp + 0x34]
cmovne eax, edx
mov esi, 0
cmovne edx, esi
mov esi, eax
mov eax, dword [esp + 0x1c]
add dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov eax, edx
add eax, dword [esp + 0x10]
mov edx, esi
adc edx, dword [esp + 0x20]
mov dword [esp + 8], edi
mov dword [esp + 0x3c], eax
cmp edi, eax
mov eax, ebx
sbb eax, edx
setae al
movzx eax, al
add eax, dword [esp + 0x14]
adc ecx, 0
cmp ecx, 0x200000
jae 0x4d9b3e
mov edi, dword [esp + 0x18]
cmp edi, 0x3cb
jg 0x4d9b24
mov dword [esp + 0x14], ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0xc], esi
cmp edi, 0xfffffbce
jl 0x4d9bb3
xor esi, esi
dec esi
add esi, 1
mov edx, 0
adc edx, 0xfffff
and edx, ecx
sete bl
cmp edi, 0xfffffbce
je 0x4d9975
or esi, edx
je 0x4d9bf6
cmp edi, 0xfffffbce
sete dl
shl edi, 0x14
add edi, 0x43300000
test dl, bl
mov edx, 0
cmovne edi, edx
xor edx, edx
dec edx
and eax, edx
mov edx, 0xfffff
and ecx, edx
or ecx, edi
movd xmm0, ecx
movd xmm1, eax
mov edx, dword [esp + 0x1c]
sub edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
sbb ecx, dword [esp + 0x20]
mov eax, dword [esp + 8]
cmp edx, eax
mov edx, dword [esp + 0x14]
sbb ecx, edx
punpckldq xmm1, xmm0
jae 0x4d99d7
cmp eax, dword [esp + 0x3c]
sbb edx, dword [esp + 0x34]
jb 0x4d9a57
movapd xmm0, xmm1
jmp 0x4d94bd
xor ecx, ecx
add edi, 0x61698000
setb cl
mov dword [esp + 0x14], 0xa
jmp 0x4d96e3
xor ecx, ecx
add edi, 0x2f698000
setb cl
mov dword [esp + 0x14], 7
jmp 0x4d96e3
mov edi, edx
mov dword [esp + 0x14], 4
jmp 0x4d96e3
mov ebx, dword [esp + 8]
jmp 0x4d9753
mov dword [esp + 0x18], edx
test eax, eax
jns 0x4d9c71
mov eax, dword [ebp + 0xc]
test eax, eax
mov edx, dword [esp + 0x18]
jg 0x4d959c
xor esi, esi
xor edx, edx
xor ecx, ecx
jmp 0x4d95ed
mov eax, dword [esp + 8]
jmp 0x4d9647
movsd xmm0, qword [0x59cba8]
movdqa xmmword [esp + 0x20], xmm1
ucomisd xmm1, xmm0
jae 0x4d94bd
movaps xmm0, xmmword [esp + 0x20]
movsd qword [esp + 0x40], xmm0
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov eax, ebx
shr eax, 0x14
and eax, 0x7ff
add eax, 0xfffffbcc
lea ecx, [edx + edx]
mov edi, ebx
mov dword [esp + 8], edx
shld edi, edx, 1
and edi, 0x1fffff
and ecx, 0xfffffffe
mov edx, ecx
add edx, 0xfffffffe
mov esi, edi
adc esi, 0x1fffff
add edx, 2
adc esi, 0
mov dword [esp + 0xc], ebx
test ebx, 0x7ff00000
mov ebx, 0xfffffbcd
cmovne ebx, eax
cmove esi, edi
cmove edx, ecx
mov dword [esp + 0x54], esi
or edx, 1
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], 0xffffffff
sub esp, 0x14
movupd xmm0, xmmword [esp + 0x64]
movupd xmmword [esp + 4], xmm0
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
call fcn.0047d630
add esp, 0x14
test eax, eax
jns 0x4d9d24
movapd xmm0, xmmword [esp + 0x20]
jmp 0x4d94bd
call fcn.005448e0
movsd xmm0, qword [0x59cba8]
jmp 0x4d94bd
mov dword [esp + 0x14], 0x18
jmp 0x4d96e3
dec dword [esp + 0x38]
mov edi, ecx
shrd eax, edi, 1
shr ecx, 1
inc dword [esp + 0x18]
cmp dword [esp + 0x38], edi
mov edi, ecx
jae 0x4d9927
jmp 0x4d9b44
mov edi, dword [esp + 0x10]
mov ebx, edi
mov dword [esp + 0x20], ecx
mov eax, ecx
mov ecx, edi
mov edi, dword [esp + 8]
shld eax, edi, 0xa
shl edi, 0xa
mov dword [esp + 8], edi
add ebx, 0xfffffff6
test dword [esp + 0x20], 0xfffff000
mov dword [esp + 0x20], eax
jne 0x4d97fd
jmp 0x4d9b6a
xor eax, eax
mov edx, dword [ebp + 8]
cmp byte [edx + esi], 0x35
setge al
add dword [esp + 8], eax
adc ecx, 0
mov edx, dword [esp + 0x18]
sub edx, esi
mov edi, 4
jmp 0x4d9603
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
sbb ecx, dword [esp + 0x20]
cmp eax, dword [esp + 8]
mov edx, dword [esp + 0x14]
sbb ecx, edx
xorpd xmm0, xmm0
movapd xmmword [esp + 0x20], xmm0
jae 0x4d94bd
mov eax, edx
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 8], ecx
sbb eax, dword [esp + 0x34]
jae 0x4d94bd
jmp 0x4d9a6f
mov esi, ecx
shld ecx, eax, 1
add eax, eax
and esi, 0x80000
sete bl
cmp edi, 0xfffffbd0
lea edi, [edi - 1]
jl 0x4d9975
test esi, esi
jne 0x4d9975
jmp 0x4d9bf6
mov ecx, 4
sub ecx, edx
mov edx, dword [esp + 0xc]
shrd edi, edx, cl
shr edx, cl
mov eax, dword [esp + 0x10]
shrd eax, esi, cl
add ebx, ecx
mov dword [esp + 0x18], ebx
shr esi, cl
test cl, 0x20
mov ecx, edx
cmovne edi, edx
mov dword [esp + 8], edi
mov edx, 0
cmovne ecx, edx
cmovne eax, esi
cmovne esi, edx
add eax, 9
mov dword [esp + 0x10], eax
adc esi, 0
mov dword [esp + 0x20], esi
mov eax, 0x3c
jmp 0x4d9869
mov ecx, 0xf
sub ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov eax, ecx
mov dword [esp + 0x20], ecx
sub edx, ecx
mov eax, edx
mov dword [esp + 8], edx
cmp edx, 0x16
jg 0x4d9a34
cmp dword [ebp + 0xc], 0
jle 0x4d9cfc
xor eax, eax
xor ecx, ecx
inc ecx
xor esi, esi
mov edx, dword [ebp + 8]
movsx ebx, byte [edx + ecx - 1]
mov edi, ebx
mov edx, 0xa
mul edx
sar edi, 0x1f
add eax, ebx
lea esi, [esi + esi*4]
lea esi, [edx + esi*2]
adc esi, edi
add eax, 0xffffffd0
adc esi, 0xffffffff
cmp ecx, dword [ebp + 0xc]
jge 0x4d9cdc
inc ecx
mov edx, 0x99999999
cmp eax, edx
mov edx, esi
mov edi, 0x19999999
sbb edx, edi
jb 0x4d9ca0
movd xmm0, eax
movd xmm1, esi
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x59cb70]
subpd xmm0, xmmword [0x59cb80]
haddpd xmm0, xmm0
mov eax, dword [esp + 0x20]
mulsd xmm0, qword [eax*8 + 0x5b0428]
mov eax, dword [esp + 8]
mulsd xmm0, qword [eax*8 + 0x5b0428]
jmp 0x4d94bd
xorpd xmm0, xmm0
jmp 0x4d94bd
je 0x4d9d86
mov eax, dword [esp + 0xc]
add eax, 0x80000000
or eax, dword [esp + 8]
je 0x4d9d1b
mov eax, dword [esp + 0xc]
xor eax, 0x7ff00000
or eax, dword [esp + 8]
movsd xmm0, qword [0x59cba8]
je 0x4d94bd
cmp dword [esp + 0xc], 0
js 0x4d9d76
mov eax, dword [esp + 8]
add eax, 1
mov ecx, dword [esp + 0xc]
adc ecx, 0
movd xmm1, ecx
movd xmm0, eax
punpckldq xmm0, xmm1
jmp 0x4d94bd
mov eax, dword [esp + 8]
add eax, 0xffffffff
mov ecx, dword [esp + 0xc]
adc ecx, 0xffffffff
jmp 0x4d9d65
test byte [esp + 8], 1
je 0x4d9b14
mov eax, dword [esp + 0xc]
xor eax, 0x7ff00000
or eax, dword [esp + 8]
movsd xmm0, qword [0x59cba8]
je 0x4d94bd
xorpd xmm0, xmm0
movapd xmm1, xmmword [esp + 0x20]
ucomisd xmm1, xmm0
jne 0x4d9d50
jp 0x4d9d50
cmp dword [esp + 0xc], 0
js 0x4d94bd
jmp 0x4d9d50