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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov ebx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov edi, dword [esp + 0xa0]
mov edx, 0x34
test edi, 1
jne 0x4d68c9
test edi, 2
jne 0x4d68e2
mov ecx, edx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
test dl, 2
je 0x4d6092
mov word [edi], 0
add edi, 2
and edx, 1
je 0x4d609a
mov byte [edi], 0
mov eax, dword [ebx]
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x24], eax
fld dword [0x799aac]
push eax
fimul dword [esp]
pop esi
fstp qword [esp]
call fcn.0062b730
fdiv qword [0x799b10]
fadd qword [0x799b30]
fstp qword [esp]
call fcn.0062b660
fld1
fsubp st(1)
fnstcw word [esp + 0x7a]
mov ax, word [esp + 0x7a]
mov ah, 0xc
mov word [esp + 0x78], ax
mov eax, dword [esp + 0xa0]
fldcw word [esp + 0x78]
fistp dword [eax + 0x20]
fldcw word [esp + 0x7a]
fild dword [esp + 0xb0]
mov dword [esp + 0x74], ebp
fild dword [esp + 0x74]
fstp qword [esp + 0x48]
fld dword [0x799b00]
fmul st(1)
fld qword [0x799b30]
fmulp st(1)
fdiv qword [esp + 0x48]
fstp qword [esp]
fstp dword [esp + 0x20]
call fcn.0062b730
fld dword [0x799ae4]
fmul st(1), st(0)
fld dword [0x799adc]
fsub st(2), st(0)
fxch st(2)
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x20]
mov ecx, eax
inc ecx
mov esi, 1
mov eax, esi
shl eax, cl
push eax
fimul dword [esp]
fisub dword [ebx]
fnstcw word [esp + 0x7e]
mov ax, word [esp + 0x7e]
mov ah, 0xc
mov word [esp + 0x7c], ax
mov edx, dword [esp + 0xa4]
fldcw word [esp + 0x7c]
fistp dword [edx + 0x1c]
fldcw word [esp + 0x7e]
fld dword [0x799b00]
mov dword [esp], ebp
fiadd dword [esp]
pop edi
fld dword [esp + 0x20]
fmulp st(1)
fld qword [0x799b30]
fmulp st(1)
fdiv qword [esp + 0x48]
fstp qword [esp]
fxch st(1)
fstp qword [esp + 0x10]
fstp qword [esp + 0x20]
call fcn.0062b730
fld qword [esp + 0x20]
fmulp st(1)
fld qword [esp + 0x10]
fsubp st(1)
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x20]
mov ecx, eax
inc ecx
shl esi, cl
push esi
fimul dword [esp]
pop eax
fadd qword [0x799b30]
fnstcw word [esp + 0x7a]
mov ax, word [esp + 0x7a]
mov ah, 0xc
mov word [esp + 0x78], ax
fldcw word [esp + 0x78]
fistp dword [esp + 0x74]
fldcw word [esp + 0x7a]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xa0]
sub eax, dword [edx + 0x1c]
inc eax
mov dword [edx + 0x28], eax
lea ecx, [ebp*4]
mov dword [esp + 0x70], ecx
mov dword [esp], ecx
call fcn.0062b6b8
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x10], eax
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call fcn.0062b6b8
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x14], eax
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call fcn.0062b6b8
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x18], eax
mov ecx, dword [esp + 0xa4]
mov dword [edx + 4], ecx
mov dword [edx], ebp
mov eax, dword [esp + 0xb0]
mov dword [edx + 0x2c], eax
cmp eax, 0x658f
jg 0x4d687e
mov dword [edx + 0x30], 0
xor ebx, ebx
xor esi, esi
fild dword [esp + 0xb0]
fstp qword [esp + 0x50]
mov edi, dword [esp + 0xa0]
lea esi, [esi]
lea edi, [edi]
inc esi
fld dword [0x799ae8]
push esi
fimul dword [esp]
pop ecx
fsub dword [0x799aa8]
fadd dword [0x799adc]
fmul dword [0x799ae0]
fstp qword [esp]
call fcn.0062b798
fadd st(0)
fmul qword [esp + 0x48]
fdiv qword [esp + 0x50]
fadd dword [0x799a80]
fstp qword [esp]
call fcn.0062b660
fnstcw word [esp + 0x7a]
mov ax, word [esp + 0x7a]
mov ah, 0xc
mov word [esp + 0x78], ax
fldcw word [esp + 0x78]
fistp dword [esp + 0x74]
fldcw word [esp + 0x7a]
mov eax, dword [esp + 0x74]
fld dword [esi*4 + 0x793b1c]
cmp ebx, eax
jge 0x4d6350
fld dword [esi*4 + 0x793b20]
fsub st(1)
mov edx, eax
sub edx, ebx
push edx
fidiv dword [esp]
pop edx
cmp ebx, ebp
jge 0x4d6354
mov edx, dword [edi + 0x10]
fld dword [0x799ad8]
fld st(2)
fadd st(1)
fstp dword [edx + ebx*4]
fxch st(2)
fadd st(1)
inc ebx
cmp eax, ebx
jle 0x4d635a
nop
lea esi, [esi]
cmp ebx, ebp
je 0x4d6370
fld st(0)
fadd st(3)
fstp dword [edx + ebx*4]
fadd st(1)
inc ebx
cmp ebx, eax
jne 0x4d6330
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x4d6376
fstp st(0)
jmp 0x4d6376
fstp st(0)
fstp st(0)
jmp 0x4d6376
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x4d6376
fstp st(0)
fstp st(0)
fstp st(0)
cmp esi, 0x57
jne 0x4d6290
cmp ebp, ebx
jle 0x4d63ab
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx + 0x10]
fld dword [edx + ebx*4 - 4]
lea eax, [edx + ebx*4]
add edx, dword [esp + 0x70]
nop
lea esi, [esi]
fst dword [eax]
add eax, 4
cmp eax, edx
jne 0x4d63a0
fstp st(0)
test ebp, ebp
jle 0x4d6694
lea ecx, [ebp + ebp]
mov eax, dword [esp + 0xb0]
cdq
idiv ecx
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0xa0]
mov edx, dword [edx + 0x18]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0xa4]
mov ecx, dword [ecx + 0x78]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x60], 0
fldz
fld st(0)
fld st(1)
mov ebx, 1
mov edi, 0xffffff9d
mov dword [esp + 0x3c], 0
lea eax, [ecx - 0x63]
mov dword [esp + 0x58], ebp
mov ebp, eax
lea esi, [esi]
fmul qword [0x799b38]
fxch st(1)
fmul dword [0x799b1c]
faddp st(1)
fxch st(1)
fmul dword [0x799b20]
faddp st(1)
fstp dword [esp + 0x5c]
cmp ebp, dword [esp + 0x3c]
jge 0x4d64d7
fld dword [esp + 0x5c]
mov edx, dword [esp + 0xa4]
fsub dword [edx + 0x70]
fstp qword [esp + 0x40]
mov esi, dword [esp + 0x38]
imul esi, edi
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x6c]
jmp 0x4d646e
inc edi
add esi, dword [esp + 0x38]
lea ebp, [edi + ebx]
cmp dword [esp + 0x3c], ebp
jle 0x4d64d3
mov dword [esp + 0x74], esi
fild dword [esp + 0x74]
fld dword [0x799b24]
fmul st(1)
fstp qword [esp]
fstp dword [esp + 0x20]
call fcn.0062b7d8
mov eax, esi
imul eax, esi
fld dword [0x799b28]
push eax
fimul dword [esp]
pop eax
fstp qword [esp]
fstp qword [esp + 0x10]
call fcn.0062b7d8
fld qword [esp + 0x10]
fmul qword [0x799b38]
fxch st(1)
fmul dword [0x799b1c]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [0x799b20]
faddp st(1)
fld qword [esp + 0x40]
fucompp
fnstsw ax
test ah, 0x45
je 0x4d6460
mov ebx, dword [esp + 0x64]
cmp dword [esp + 0x58], ebx
jl 0x4d6591
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0xa4]
add edx, dword [eax + 0x7c]
mov esi, dword [esp + 0x38]
imul esi, ebx
mov dword [esp + 0x40], edi
mov edi, esi
mov esi, edx
mov dword [esp + 0x64], ebp
mov ebp, ebx
mov ebx, eax
lea esi, [esi]
lea edi, [edi]
cmp ebp, esi
jl 0x4d657c
mov dword [esp + 0x74], edi
fild dword [esp + 0x74]
fld dword [0x799b24]
fmul st(1)
fstp qword [esp]
fstp dword [esp + 0x20]
call fcn.0062b7d8
mov eax, edi
imul eax, edi
fld dword [0x799b28]
push eax
fimul dword [esp]
pop eax
fstp qword [esp]
fstp qword [esp + 0x10]
call fcn.0062b7d8
fld qword [esp + 0x10]
fmul dword [0x799b18]
fxch st(1)
fmul dword [0x799b1c]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [0x799b20]
faddp st(1)
fld dword [esp + 0x5c]
fadd dword [ebx + 0x74]
fucompp
fnstsw ax
test ah, 0x45
jne 0x4d6587
inc ebp
add edi, dword [esp + 0x38]
cmp dword [esp + 0x58], ebp
jge 0x4d6510
mov edi, dword [esp + 0x40]
mov ebx, ebp
mov ebp, dword [esp + 0x64]
lea eax, [edi - 1]
shl eax, 0x10
lea eax, [ebx + eax - 1]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
mov dword [ecx + edx*4], eax
inc edx
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x38]
add dword [esp + 0x60], eax
mov ecx, dword [esp + 0x58]
cmp edx, ecx
je 0x4d6602
fild dword [esp + 0x60]
fld dword [0x799b24]
fmul st(1)
fstp qword [esp]
fstp dword [esp + 0x20]
call fcn.0062b7d8
mov eax, dword [esp + 0x60]
imul eax, eax
fld dword [0x799b28]
push eax
fimul dword [esp]
pop eax
fstp qword [esp]
fstp qword [esp + 0x10]
call fcn.0062b7d8
fld qword [esp + 0x10]
fld dword [esp + 0x20]
fxch st(2)
fxch st(1)
jmp 0x4d6410
xor esi, esi
mov ebx, 1
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x3c], ecx
lea esi, [esi]
lea edi, [edi]
mov eax, dword [edi + 0x14]
lea ebp, [eax + esi*4]
fld dword [0x799b00]
push esi
fiadd dword [esp]
pop eax
fld dword [0x799a80]
fmul st(1), st(0)
fxch st(1)
fmul qword [esp + 0x50]
fdiv qword [esp + 0x48]
fstp qword [esp]
fstp qword [esp + 0x10]
call fcn.0062b730
fmul dword [0x799ae4]
fsub dword [0x799adc]
mov ecx, dword [edi + 0x20]
inc ecx
mov eax, ebx
shl eax, cl
push eax
fimul dword [esp]
pop eax
fld qword [esp + 0x10]
faddp st(1)
fnstcw word [esp + 0x7a]
mov ax, word [esp + 0x7a]
mov ah, 0xc
mov word [esp + 0x78], ax
fldcw word [esp + 0x78]
fistp dword [ebp]
fldcw word [esp + 0x7a]
inc esi
cmp esi, dword [esp + 0x3c]
jne 0x4d6620
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0xa4]
add eax, 0x24
mov edx, dword [esp + 0xa4]
fld dword [edx + 0x1c]
fstp dword [esp + 8]
fld dword [edx + 0x18]
fstp dword [esp + 4]
fld qword [esp + 0x50]
fmul dword [0x799a80]
fdiv qword [esp + 0x48]
fstp dword [esp]
mov edx, ebp
call fcn.004d4290
mov ecx, dword [esp + 0xa0]
mov dword [ecx + 8], eax
mov dword [esp], 0xc
call fcn.0062b6b8
mov ebx, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0xc], ebx
mov edx, dword [esp + 0x70]
mov dword [esp], edx
call fcn.0062b6b8
mov dword [ebx], eax
mov ecx, dword [esp + 0xa0]
mov ebx, dword [ecx + 0xc]
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call fcn.0062b6b8
mov dword [ebx + 4], eax
mov edx, dword [esp + 0xa0]
mov ebx, dword [edx + 0xc]
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call fcn.0062b6b8
mov dword [ebx + 8], eax
test ebp, ebp
jle 0x4d6873
fld qword [esp + 0x48]
fadd st(0)
fstp qword [esp + 0x48]
xor ebx, ebx
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ebx
jmp 0x4d67f1
fld dword [0x799a98]
fxch st(2)
fucom st(2)
fnstsw ax
fstp st(2)
test ah, 5
jne 0x4d6840
fstp st(1)
mov esi, 0x11
fld1
mov edx, 0x10
mov ebx, dword [edi + 0xc]
mov ecx, dword [esp + 0x38]
shl ecx, 2
mov eax, dword [edi + 4]
fld st(0)
fmul dword [eax + edx*4 + 0x84]
fld dword [eax + esi*4 + 0x84]
fmul st(3)
faddp st(1)
mov ebp, dword [ebx]
fstp dword [ebp + ecx]
fld st(0)
fmul dword [eax + edx*4 + 0xc8]
fld dword [eax + esi*4 + 0xc8]
fmul st(3)
faddp st(1)
mov ebp, dword [ebx + 4]
fstp dword [ebp + ecx]
mov ebx, dword [ebx + 8]
fmul dword [eax + edx*4 + 0x10c]
fxch st(1)
fmul dword [eax + esi*4 + 0x10c]
faddp st(1)
fstp dword [ebx + ecx]
inc dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
cmp dword [esp + 0x38], edx
je 0x4d6873
fld dword [0x799a80]
fiadd dword [esp + 0x38]
fmul qword [esp + 0x50]
fdiv qword [esp + 0x48]
fstp qword [esp]
call fcn.0062b730
fmul dword [0x799ae4]
fsub dword [0x799adc]
fadd st(0)
fstp dword [esp + 0x7c]
fld dword [esp + 0x7c]
fldz
fucom st(1)
fnstsw ax
test ah, 0x45
jne 0x4d6760
fstp st(1)
mov esi, 1
fld1
xor edx, edx
jmp 0x4d6785
fstp st(0)
fnstcw word [esp + 0x7a]
mov ax, word [esp + 0x7a]
mov ah, 0xc
mov word [esp + 0x78], ax
fldcw word [esp + 0x78]
fist dword [esp + 0x74]
fldcw word [esp + 0x7a]
mov edx, dword [esp + 0x74]
push edx
fisub dword [esp]
pop ebx
fld1
fsub st(1)
lea esi, [edx + 1]
jmp 0x4d6785
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [esp + 0xb0], 0x946f
jg 0x4d689e
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x30], 0x3f70a3d7
jmp 0x4d626c
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x30], 0x3f800000
cmp dword [esp + 0xb0], 0xb3b0
jle 0x4d626c
mov dword [eax + 0x30], 0x3fa33333
jmp 0x4d626c
mov byte [edi], 0
mov edi, dword [esp + 0xa0]
inc edi
mov dl, 0x33
test edi, 2
je 0x4d607c
mov word [edi], 0
add edi, 2
sub edx, 2
jmp 0x4d607c