Function at 0x6d004b50
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 0x6d004ba7
lea esi, [ebx*4]
sar esi, 2
cmp ebx, esi
jne 0x6d004ba7
lea esi, [ecx*4]
sar esi, 2
cmp ecx, esi
jne 0x6d004ba7
lea esi, [edx*4]
sar esi, 2
cmp edx, esi
je 0x6d004d78
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 0x6d004bf3
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 [0x6d0b6a98]
jmp 0x6d004c23
cmp eax, 0x1fffffff
jle 0x6d004c19
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 [0x6d0b6a90]
jmp 0x6d004c23
fstp st(5)
fxch st(5)
fxch st(3)
fxch st(4)
fxch st(3)
fld qword [0x6d0b6a98]
fcomp st(5)
fnstsw ax
test ah, 0x41
jne 0x6d004c55
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 [0x6d0b6a98]
fld st(0)
jmp 0x6d004c98
fld qword [0x6d0b6a90]
fcomp st(5)
fnstsw ax
test ah, 5
jp 0x6d004c8c
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 [0x6d0b6a90]
fld qword [0x6d0b6a98]
fxch st(1)
jmp 0x6d004c98
fstp st(6)
fld qword [0x6d0b6a98]
fxch st(1)
fxch st(4)
cmp ecx, 0xe0000000
jge 0x6d004cbf
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 0x6d004cef
cmp ecx, 0x1fffffff
jle 0x6d004ce9
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 [0x6d0b6a90]
jmp 0x6d004cef
fxch st(4)
fxch st(1)
fxch st(2)
fxch st(1)
fcom st(2)
fnstsw ax
test ah, 5
jp 0x6d004d19
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 0x6d004d4e
fstp st(2)
fld qword [0x6d0b6a90]
fcom st(2)
fnstsw ax
test ah, 5
jp 0x6d004d48
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 0x6d004d4e
fstp st(5)
fstp st(2)
fstp st(3)
fxch st(3)
call fcn.6d0b0a20
mov dword [esp + 0x50], eax
call fcn.6d0b0a20
fxch st(1)
mov ebx, eax
mov dword [esp + 0x54], ebx
call fcn.6d0b0a20
mov dword [esp + 0x58], eax
call fcn.6d0b0a20
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 0x6d004de0
mov ecx, 1
jmp 0x6d004deb
xor ecx, ecx
cmp ebx, ebp
setle cl
dec ecx
and ecx, 2
mov ebx, dword [esp + 0x28]
cmp dword [esp + 0x50], ebx
jge 0x6d004dfc
mov eax, 4
jmp 0x6d004e09
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 0x6d004e20
mov ecx, 1
jmp 0x6d004e2b
xor ecx, ecx
cmp eax, ebp
setle cl
dec ecx
and ecx, 2
mov ebp, dword [esp + 0x58]
cmp ebp, ebx
jge 0x6d004e3a
mov eax, 4
jmp 0x6d004e45
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 0x6d005167
test edx, ebx
jne 0x6d0051c6
test edx, edx
je 0x6d004fe2
test dl, 3
je 0x6d004efc
test dl, 1
je 0x6d004e7d
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
jmp 0x6d004e85
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 0x6d004ea3
jl 0x6d004e9c
test ebp, ebp
jae 0x6d004ea3
neg ebp
adc ecx, 0
neg ecx
push ecx
mov eax, esi
cdq
push ebp
push edx
push eax
call fcn.6d0b0ae0
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 0x6d004ed0
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.6d0b0b20
cmp dword [esp + 0x3c], 0
jge 0x6d004eef
neg eax
adc edx, 0
neg edx
mov dword [esp + 0x48], edx
add eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
jmp 0x6d004f8e
test dl, 0xc
je 0x6d004f8e
test dl, 4
je 0x6d004f14
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], edx
jmp 0x6d004f1c
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 0x6d004f3a
jl 0x6d004f33
test ebp, ebp
jae 0x6d004f3a
neg ebp
adc ecx, 0
neg ecx
push ecx
mov eax, edi
cdq
push ebp
push edx
push eax
call fcn.6d0b0ae0
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 0x6d004f67
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.6d0b0b20
cmp dword [esp + 0x34], 0
jge 0x6d004f86
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 0x6d004f9f
mov ecx, 1
jmp 0x6d004fac
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 0x6d004fc8
mov eax, 4
or eax, ecx
mov dword [esp + 0x20], eax
mov edx, eax
jmp 0x6d00515d
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 0x6d00515d
test bl, 3
je 0x6d005080
test bl, 1
je 0x6d004ffa
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
jmp 0x6d005002
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 0x6d005020
jl 0x6d005019
test ebp, ebp
jae 0x6d005020
neg ebp
adc ecx, 0
neg ecx
push ecx
mov eax, esi
cdq
push ebp
push edx
push eax
call fcn.6d0b0ae0
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 0x6d00504e
mov eax, edi
sub eax, esi
cdq
add ecx, eax
adc ebp, edx
jmp 0x6d005054
add ecx, 0xffffffff
adc ebp, 0xffffffff
lea eax, [edi + edi]
cdq
push edx
push eax
push ebp
push ecx
call fcn.6d0b0b20
cmp dword [esp + 0x3c], 0
jle 0x6d005073
neg eax
adc edx, 0
neg edx
mov dword [esp + 0x48], edx
add eax, dword [esp + 0x58]
mov dword [esp + 0x18], eax
jmp 0x6d005119
test bl, 0xc
je 0x6d00511d
test bl, 4
je 0x6d005098
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], edx
jmp 0x6d0050a0
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 0x6d0050be
jl 0x6d0050b7
test ebp, ebp
jae 0x6d0050be
neg ebp
adc ecx, 0
neg ecx
push ecx
mov eax, edi
cdq
push ebp
push edx
push eax
call fcn.6d0b0ae0
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 0x6d0050e9
add ecx, 0xffffffff
adc ebp, 0xffffffff
jmp 0x6d0050f2
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.6d0b0b20
cmp dword [esp + 0x34], 0
jle 0x6d005111
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 0x6d00512e
mov ecx, 1
jmp 0x6d00513b
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 0x6d00514c
mov eax, 4
jmp 0x6d005159
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 0x6d004e55
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 0x6d0051d0
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 0x6d00520f
xor ebx, ebx
jmp 0x6d005213
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 0x6d00520f
xor ebx, ebx
jmp 0x6d005213
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 0x6d0051c6
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 0x6d005248
sub edx, ebx
jns 0x6d005242
neg edx
imul edx, esi
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x50]
cmp edx, esi
je 0x6d005260
sub edx, esi
jns 0x6d00525a
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