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

Disassembly:
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
sub esp, 0x3c
push ebx
mov ebx, dword [esp + 0x48]
push ebp
mov ebp, dword [esp + 0x5c]
push esi
lea esi, [eax*4]
sar esi, 2
push edi
cmp eax, esi
jne 0x6d0215d7
lea esi, [ebx*4]
sar esi, 2
cmp ebx, esi
jne 0x6d0215d7
lea esi, [ecx*4]
sar esi, 2
cmp ecx, esi
jne 0x6d0215d7
lea esi, [edx*4]
sar esi, 2
cmp edx, esi
je 0x6d0217a8
fild dword [esp + 0x50]
fld st(0)
fild dword [esp + 0x54]
fld st(0)
fild dword [esp + 0x58]
fst qword [esp + 0x34]
fild dword [esp + 0x5c]
fst qword [esp + 0x3c]
fld st(1)
fsub st(5)
fld st(1)
fsub st(4)
cmp eax, 0xe0000000
jge 0x6d021623
fstp st(4)
mov esi, 0xe0000000
fstp st(5)
sub esi, eax
mov dword [esp + 0x50], esi
fild dword [esp + 0x50]
fmul st(3)
fdiv st(5)
faddp st(4)
fld qword [0x6d0ca678]
jmp 0x6d021653
cmp eax, 0x1fffffff
jle 0x6d021649
fstp st(4)
add eax, 0xe0000001
fstp st(5)
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fmul st(3)
fdiv st(5)
fsubp st(4)
fld qword [0x6d0ca670]
jmp 0x6d021653
fstp st(5)
fxch st(5)
fxch st(3)
fxch st(4)
fxch st(3)
fld qword [0x6d0ca678]
fcomp st(5)
fnstsw ax
test ah, 0x41
jne 0x6d021685
fstp st(4)
mov eax, 0xe0000000
fstp st(3)
sub eax, ebx
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fmul st(4)
fdiv st(2)
faddp st(5)
fld qword [0x6d0ca678]
fld st(0)
jmp 0x6d0216c8
fld qword [0x6d0ca670]
fcomp st(5)
fnstsw ax
test ah, 5
jp 0x6d0216bc
fstp st(4)
add ebx, 0xe0000001
fstp st(3)
mov dword [esp + 0x50], ebx
fild dword [esp + 0x50]
fmul st(4)
fdiv st(2)
fsubp st(5)
fld qword [0x6d0ca670]
fld qword [0x6d0ca678]
fxch st(1)
jmp 0x6d0216c8
fstp st(6)
fld qword [0x6d0ca678]
fxch st(1)
fxch st(4)
cmp ecx, 0xe0000000
jge 0x6d0216ef
fstp st(4)
mov eax, 0xe0000000
fstp st(1)
sub eax, ecx
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fmul st(2)
fdiv st(4)
fadd qword [esp + 0x3c]
fld st(1)
jmp 0x6d02171f
cmp ecx, 0x1fffffff
jle 0x6d021719
fstp st(4)
add ecx, 0xe0000001
fstp st(1)
mov dword [esp + 0x50], ecx
fild dword [esp + 0x50]
fmul st(2)
fdiv st(4)
fsubr qword [esp + 0x3c]
fld qword [0x6d0ca670]
jmp 0x6d02171f
fxch st(4)
fxch st(1)
fxch st(2)
fxch st(1)
fcom st(2)
fnstsw ax
test ah, 5
jp 0x6d021749
fstp st(0)
mov ecx, 0xe0000000
fstp st(0)
sub ecx, edx
mov dword [esp + 0x50], ecx
fild dword [esp + 0x50]
fmulp st(4)
fxch st(3)
fdivrp st(1)
fadd qword [esp + 0x34]
jmp 0x6d02177e
fstp st(2)
fld qword [0x6d0ca670]
fcom st(2)
fnstsw ax
test ah, 5
jp 0x6d021778
fstp st(2)
add edx, 0xe0000001
fstp st(0)
mov dword [esp + 0x50], edx
fild dword [esp + 0x50]
fmulp st(4)
fxch st(3)
fdivrp st(1)
fsubr qword [esp + 0x34]
jmp 0x6d02177e
fstp st(5)
fstp st(2)
fstp st(3)
fxch st(3)
call fcn.6d0b3ed0
mov dword [esp + 0x50], eax
call fcn.6d0b3ed0
fxch st(1)
mov ebx, eax
mov dword [esp + 0x54], ebx
call fcn.6d0b3ed0
mov dword [esp + 0x58], eax
call fcn.6d0b3ed0
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x18], eax
sub eax, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x3c], eax
cdq
mov esi, eax
xor esi, edx
sub esi, edx
mov dword [esp + 0x1c], ecx
sub ecx, ebx
mov eax, ecx
cdq
mov edi, eax
mov eax, dword [ebp + 4]
xor edi, edx
sub edi, edx
mov edx, dword [ebp]
mov dword [esp + 0x28], edx
mov edx, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
dec edx
dec ebp
cmp esi, edi
setge byte [esp + 0x64]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ebp
cmp ebx, eax
jge 0x6d021810
mov ecx, 1
jmp 0x6d02181b
xor ecx, ecx
cmp ebx, ebp
setle cl
dec ecx
and ecx, 2
mov ebx, dword [esp + 0x28]
cmp dword [esp + 0x50], ebx
jge 0x6d02182c
mov eax, 4
jmp 0x6d021839
xor eax, eax
cmp dword [esp + 0x50], edx
setle al
dec eax
and eax, 8
or eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x24]
jge 0x6d021850
mov ecx, 1
jmp 0x6d02185b
xor ecx, ecx
cmp eax, ebp
setle cl
dec ecx
and ecx, 2
mov ebp, dword [esp + 0x58]
cmp ebp, ebx
jge 0x6d02186a
mov eax, 4
jmp 0x6d021875
xor eax, eax
cmp ebp, edx
setle al
dec eax
and eax, 8
mov edx, dword [esp + 0x20]
or eax, ecx
mov ebx, eax
or eax, edx
je 0x6d021b97
test edx, ebx
jne 0x6d021bf6
test edx, edx
je 0x6d021a12
test dl, 3
je 0x6d02192c
test dl, 1
je 0x6d0218ad
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
jmp 0x6d0218b5
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x54]
cdq
mov ecx, edx
mov ebp, eax
test ecx, ecx
jg 0x6d0218d3
jl 0x6d0218cc
test ebp, ebp
jae 0x6d0218d3
neg ebp
adc ecx, 0
neg ecx
push ecx
mov eax, esi
cdq
push ebp
push edx
push eax
call fcn.6d0b4380
shld edx, eax, 1
lea ecx, [eax + eax]
mov ebp, edx
mov eax, edi
cdq
add ecx, eax
adc ebp, edx
cmp byte [esp + 0x64], 0
je 0x6d021900
mov eax, edi
sub eax, esi
dec eax
cdq
add ecx, eax
adc ebp, edx
lea eax, [edi + edi]
cdq
push edx
push eax
push ebp
push ecx
call fcn.6d0b42d0
cmp dword [esp + 0x3c], 0
jge 0x6d02191f
neg eax
adc edx, 0
neg edx
mov dword [esp + 0x48], edx
add eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
jmp 0x6d0219be
test dl, 0xc
je 0x6d0219be
test dl, 4
je 0x6d021944
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], edx
jmp 0x6d02194c
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x50]
cdq
mov ecx, edx
mov ebp, eax
test ecx, ecx
jg 0x6d02196a
jl 0x6d021963
test ebp, ebp
jae 0x6d02196a
neg ebp
adc ecx, 0
neg ecx
push ecx
mov eax, edi
cdq
push ebp
push edx
push eax
call fcn.6d0b4380
shld edx, eax, 1
lea ecx, [eax + eax]
mov ebp, edx
mov eax, esi
cdq
add ecx, eax
adc ebp, edx
cmp byte [esp + 0x64], 0
jne 0x6d021997
mov eax, esi
sub eax, edi
dec eax
cdq
add ecx, eax
adc ebp, edx
lea eax, [esi + esi]
cdq
push edx
push eax
push ebp
push ecx
call fcn.6d0b42d0
cmp dword [esp + 0x34], 0
jge 0x6d0219b6
neg eax
adc edx, 0
neg edx
mov dword [esp + 0x48], edx
add eax, dword [esp + 0x54]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x24]
jge 0x6d0219cf
mov ecx, 1
jmp 0x6d0219dc
xor ecx, ecx
cmp eax, dword [esp + 0x2c]
setle cl
dec ecx
and ecx, 2
mov ebp, dword [esp + 0x14]
cmp ebp, dword [esp + 0x28]
jge 0x6d0219f8
mov eax, 4
or eax, ecx
mov dword [esp + 0x20], eax
mov edx, eax
jmp 0x6d021b8d
xor eax, eax
cmp ebp, dword [esp + 0x30]
setle al
dec eax
and eax, 8
or eax, ecx
mov dword [esp + 0x20], eax
mov edx, eax
jmp 0x6d021b8d
test bl, 3
je 0x6d021ab0
test bl, 1
je 0x6d021a2a
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
jmp 0x6d021a32
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x5c]
cdq
mov ecx, edx
mov ebp, eax
test ecx, ecx
jg 0x6d021a50
jl 0x6d021a49
test ebp, ebp
jae 0x6d021a50
neg ebp
adc ecx, 0
neg ecx
push ecx
mov eax, esi
cdq
push ebp
push edx
push eax
call fcn.6d0b4380
shld edx, eax, 1
lea ecx, [eax + eax]
mov ebp, edx
mov eax, edi
cdq
add ecx, eax
adc ebp, edx
cmp byte [esp + 0x64], 0
je 0x6d021a7e
mov eax, edi
sub eax, esi
cdq
add ecx, eax
adc ebp, edx
jmp 0x6d021a84
add ecx, 0xffffffff
adc ebp, 0xffffffff
lea eax, [edi + edi]
cdq
push edx
push eax
push ebp
push ecx
call fcn.6d0b42d0
cmp dword [esp + 0x3c], 0
jle 0x6d021aa3
neg eax
adc edx, 0
neg edx
mov dword [esp + 0x48], edx
add eax, dword [esp + 0x58]
mov dword [esp + 0x18], eax
jmp 0x6d021b49
test bl, 0xc
je 0x6d021b4d
test bl, 4
je 0x6d021ac8
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], edx
jmp 0x6d021ad0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x58]
cdq
mov ecx, edx
mov ebp, eax
test ecx, ecx
jg 0x6d021aee
jl 0x6d021ae7
test ebp, ebp
jae 0x6d021aee
neg ebp
adc ecx, 0
neg ecx
push ecx
mov eax, edi
cdq
push ebp
push edx
push eax
call fcn.6d0b4380
shld edx, eax, 1
lea ecx, [eax + eax]
mov ebp, edx
mov eax, esi
cdq
add ecx, eax
adc ebp, edx
cmp byte [esp + 0x64], 0
je 0x6d021b19
add ecx, 0xffffffff
adc ebp, 0xffffffff
jmp 0x6d021b22
mov eax, esi
sub eax, edi
cdq
add ecx, eax
adc ebp, edx
lea eax, [esi + esi]
cdq
push edx
push eax
push ebp
push ecx
call fcn.6d0b42d0
cmp dword [esp + 0x34], 0
jle 0x6d021b41
neg eax
adc edx, 0
neg edx
mov dword [esp + 0x48], edx
add eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x24]
jge 0x6d021b5e
mov ecx, 1
jmp 0x6d021b6b
xor ecx, ecx
cmp eax, dword [esp + 0x2c]
setle cl
dec ecx
and ecx, 2
mov ebp, dword [esp + 0x18]
cmp ebp, dword [esp + 0x28]
jge 0x6d021b7c
mov eax, 4
jmp 0x6d021b89
xor eax, eax
cmp ebp, dword [esp + 0x30]
setle al
dec eax
and eax, 8
or eax, ecx
mov ebx, eax
mov eax, ebx
or eax, edx
jne 0x6d021885
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
mov dword [ecx], edx
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [eax], ecx
mov eax, dword [esp + 0x7c]
cmp byte [esp + 0x64], dl
je 0x6d021c00
cmp dword [esp + 0x3c], edx
lea ecx, [esi + esi]
setl dl
lea ebp, [edi + edi]
inc edx
mov dword [eax], edx
mov eax, dword [esp + 0x84]
xor edx, edx
cmp dword [esp + 0x34], edx
setl dl
neg esi
lea edx, [edx*4 + 4]
mov dword [eax], edx
mov edx, dword [esp + 0x18]
mov eax, edx
sub eax, dword [esp + 0x14]
cmp edx, dword [esp + 0x58]
je 0x6d021c3f
xor ebx, ebx
jmp 0x6d021c43
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x3c
ret
cmp dword [esp + 0x34], edx
lea ecx, [edi + edi]
setl dl
lea ebp, [esi + esi]
lea edx, [edx*4 + 4]
mov dword [eax], edx
mov eax, dword [esp + 0x84]
xor edx, edx
cmp dword [esp + 0x3c], edx
setl dl
neg edi
inc edx
mov dword [eax], edx
mov edx, dword [esp + 0x1c]
mov eax, edx
sub eax, dword [esp + 0x10]
cmp edx, dword [esp + 0x5c]
je 0x6d021c3f
xor ebx, ebx
jmp 0x6d021c43
mov ebx, dword [esp + 0x60]
cdq
xor eax, edx
sub eax, edx
mov edx, 1
sub edx, ebx
add eax, edx
mov dword [esp + 0x58], eax
je 0x6d021bf6
mov ebx, dword [esp + 0x54]
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x10]
sar eax, 1
neg eax
cmp edx, ebx
je 0x6d021c78
sub edx, ebx
jns 0x6d021c72
neg edx
imul edx, esi
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x50]
cmp edx, esi
je 0x6d021c90
sub edx, esi
jns 0x6d021c8a
neg edx
imul edx, edi
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x58]
mov dword [edx], esi
mov edx, dword [esp + 0x74]
add eax, ebp
mov dword [edx], eax
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
pop edi
mov dword [eax], ebp
pop esi
sub ecx, ebp
pop ebp
mov dword [edx], ecx
mov al, 1
pop ebx
add esp, 0x3c
ret