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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0xa8
mov edi, dword [esp + 0xbc]
mov eax, dword [edi]
test eax, eax
mov dword [esp + 0xc], eax
je 0x4d8294
nop
mov eax, dword [esp + 0xc]
lea edi, [esp + 0x34]
mov ecx, eax
mov ebp, dword [eax]
mov eax, dword [ecx + 8]
mov dword [esp + 4], ebp
add dword [esp + 4], 4
mov dword [esp + 0xc], eax
add dword [esp + 4], 0x30
mov eax, dword [esp + 4]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
fldz
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 4]
mov eax, dword [esp + 0xc0]
fld dword [edx]
fsub dword [eax]
mov eax, dword [esp + 0xc0]
lea edi, [esp + 0x40]
fstp dword [esp + 0x70]
fld dword [edx + 4]
fsub dword [eax + 4]
mov eax, dword [esp + 0xc0]
lea esi, [esp + 0x70]
fstp dword [esp + 0x74]
fld dword [edx + 8]
fsub dword [eax + 8]
fstp dword [esp + 0x78]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
fld dword [esp + 0x18]
fmul st(0)
fld dword [esp + 0x40]
mov dword [esp + 0x1c], eax
fmul st(0)
faddp st(1)
fld dword [esp + 0x1c]
fmul st(0)
faddp st(1)
fst st(1)
fsqrt
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
fld dword [esp + 0x10]
fcomp dword [esp + 0xc4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4d82c0
push ebp
fstp st(0)
call fcn.005c8ae0
mov al, byte [ebp + 0x52]
pop ecx
shr al, 1
and al, 1
jne 0x4d8289
mov bl, byte [ebp + 0x50]
and bl, 7
cmp bl, 3
jne 0x4d7c99
cmp byte [ebp + 0x3ac], 0
jne 0x4d8289
mov al, byte [ebp + 0x51]
mov cl, 1
shr al, 2
and al, 1
jne 0x4d7cb1
mov al, byte [ebp + 0x55]
shr al, 3
and al, 1
jne 0x4d7cb1
xor cl, cl
test cl, cl
je 0x4d82a0
cmp bl, 4
jne 0x4d7e64
fld dword [esp + 0xc8]
fcomp dword [ebp + 0x168]
fnstsw ax
test ah, 0x45
je 0x4d7cf4
movsx esi, word [ebp + 0x5c]
movzx eax, word [0x68e95c]
cmp eax, esi
je 0x4d7cf4
movzx eax, word [0x68e960]
cmp eax, esi
jne 0x4d7dfa
movsx eax, word [ebp + 0x5c]
mov edi, dword [eax*4 + 0x92d4c8]
mov bl, byte [edi + 0x19]
mov al, bl
cmp al, 1
je 0x4d7d11
cmp bl, 3
je 0x4d7d11
xor cl, cl
jmp 0x4d7d2a
movzx eax, word [edi + 0x42]
mov cl, 1
mov edx, eax
and edx, 0x2000
jne 0x4d7d2a
and eax, 0x4000
jne 0x4d7d2a
xor cl, cl
test cl, cl
je 0x4d7d50
mov eax, dword [esp + 0xc0]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
push ebp
call fcn.005539e0
add esp, 0x10
jmp 0x4d7dfa
mov al, byte [ebp + 0x51]
mov ecx, ebp
and al, 0xfb
mov byte [ebp + 0x51], al
call fcn.004bae90
movsx eax, word [ebp + 0x5c]
movzx esi, word [0x68e8a4]
cmp esi, eax
jne 0x4d7db4
lea ebx, [ebp + 0x16d]
mov dl, byte [ebx]
shr dl, 6
and dl, 1
jne 0x4d7db4
mov eax, dword [esp + 4]
lea edi, [esp + 0x4c]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x58]
fsub dword [0x69125c]
lea eax, [esp + 0x50]
push eax
fstp dword [esp + 0x5c]
push 5
call fcn.004e8920
mov al, byte [ebx]
add esp, 0xc
and al, 0xbf
or al, 0x40
mov byte [ebx], al
jmp 0x4d7dfa
mov cl, byte [ebp + 0x50]
and cl, 7
cmp cl, 4
jne 0x4d7dfa
movzx edi, word [0x68e920]
cmp eax, edi
je 0x4d7de0
movzx edx, word [0x68e964]
cmp eax, edx
je 0x4d7de0
movzx esi, word [0x68e968]
cmp eax, esi
jne 0x4d7de4
mov al, 1
jmp 0x4d7de6
xor al, al
test al, al
jne 0x4d7dfa
mov al, byte [ebp + 0x16d]
and al, 0xbf
or al, 0x40
mov byte [ebp + 0x16d], al
mov al, byte [ebp + 0x51]
mov bl, 1
shr al, 2
and al, 1
fldz
jne 0x4d7e14
mov al, byte [ebp + 0x55]
shr al, 3
and al, 1
jne 0x4d7e14
xor bl, bl
test bl, bl
je 0x4d7e75
fld dword [esp + 0xc4]
fsub dword [esp + 0x10]
fmul dword [0x691260]
fdiv dword [esp + 0xc4]
fst st(1)
fcomp dword [0x691264]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x4d7e4a
fld dword [0x691264]
fstp st(1)
fld dword [0x691344]
push eax
mov ecx, ebp
fmul st(1)
fstp dword [esp]
fstp st(0)
call fcn.004e0990
jmp 0x4d82a7
mov al, byte [ebp + 0x51]
mov ecx, ebp
and al, 0xfb
mov byte [ebp + 0x51], al
call fcn.004bae90
fldz
mov al, byte [ebp + 0x51]
mov cl, 1
shr al, 2
and al, 1
jne 0x4d7e8d
mov al, byte [ebp + 0x55]
shr al, 3
and al, 1
jne 0x4d7e8d
xor cl, cl
test cl, cl
jne 0x4d82c4
fld dword [esp + 0xc4]
fsub dword [esp + 0x10]
fmul dword [0x691260]
fdiv dword [esp + 0xc4]
fst st(1)
fcomp dword [0x691264]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4d7ec5
fst dword [esp + 0x14]
jmp 0x4d7ecf
fld dword [0x691264]
fstp dword [esp + 0x14]
fld dword [0x691270]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x45
jne 0x4d7ee8
fld dword [0x691270]
jmp 0x4d7eec
fld dword [esp + 0x10]
fstp st(1)
fld dword [esp + 0xc8]
fmul dword [ebp + 0xb8]
lea edi, [esp + 0x58]
fmul dword [0x691348]
fmul dword [esp + 0x14]
fdiv st(1)
fst st(1)
fmul dword [esp + 0x40]
fstp dword [esp + 0x7c]
fld st(0)
fmul dword [esp + 0x18]
lea esi, [esp + 0x7c]
fstp dword [esp + 0x80]
fld st(0)
fmul dword [esp + 0x1c]
fstp dword [esp + 0x84]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x60]
fcomp dword [0x691268]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4d7f52
mov dword [esp + 0x60], 0
fstp st(0)
call fcn.004bc120
cmp ebp, eax
fldz
jne 0x4d7f81
fld dword [esp + 0x60]
fst st(1)
fcomp dword [0x691264]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x4d7f7d
fld dword [0x691264]
fstp st(1)
fst dword [esp + 0x60]
mov eax, dword [esp + 0x60]
mov ecx, ebp
push eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
push eax
mov dword [esp + 0x2c], eax
push dword [esp + 0x60]
fstp st(0)
call fcn.004badc0
mov al, byte [ebp + 0x51]
shr al, 4
and al, 1
fldz
fldz
fldz
jne 0x4d82b0
movsx ebx, word [ebp + 0x5c]
mov eax, dword [ebx*4 + 0x92d4c8]
mov edx, dword [eax + 0x1c]
mov eax, dword [esp + 0xc0]
mov esi, edx
fld dword [esi + 0xc]
fchs
fld dword [eax + 8]
fsub dword [esp + 0x3c]
fstp st(3)
fcomp st(2)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4d7ff0
fld st(1)
jmp 0x4d7ff5
fld dword [edx + 0xc]
fchs
fstp st(3)
fld dword [edx + 0xc]
fstp st(1)
fld st(2)
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4d8028
fld st(0)
fchs
fstp st(3)
fld st(1)
fcomp st(3)
fnstsw ax
test ah, 0x45
jne 0x4d8020
fld st(1)
jmp 0x4d8022
fld st(2)
fstp st(3)
fld st(2)
jmp 0x4d802a
fld st(0)
fstp st(3)
lea edi, [esp + 0x64]
mov dword [esp + 0x88], 0
lea esi, [esp + 0x88]
mov dword [esp + 0x8c], 0
fld st(2)
fstp dword [esp + 0x90]
movsd dword es:[edi], dword [esi]
fcompp
fstp st(0)
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, ebp
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x2c]
push dword [esp + 0x34]
push dword [esp + 0x6c]
call fcn.004bacc0
mov al, byte [ebp + 0x50]
and al, 7
cmp al, 2
jne 0x4d8136
lea ebx, [ebp + 0x50]
mov cl, byte [ebx]
shr cl, 3
movzx eax, cl
cmp eax, 2
jne 0x4d80a8
mov al, byte [ebx]
push ebp
and al, 7
or al, 0x18
mov byte [ebx], al
call fcn.0041d2d0
pop ecx
fld dword [0x69134c]
fmul dword [esp + 0x14]
mov dword [esp + 0x9c], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov ecx, ebp
push dword [esp + 0x9c]
push dword [esp + 0x9c]
push dword [esp + 0x9c]
push eax
fstp dword [esp]
push 0x29
push dword [esp + 0xe0]
call fcn.005b9020
cmp byte [esp + 0xd0], 0
je 0x4d8289
cmp word [ebp + 0x222], 0
je 0x4d8289
xor dx, dx
mov edi, 0xa
mov ax, word [ebp + 0x222]
div di
mov word [ebp + 0x222], ax
jmp 0x4d8289
cmp al, 3
jne 0x4d8270
fld dword [esp + 0x58]
fchs
fstp dword [esp + 0xa0]
fld dword [esp + 0x24]
lea eax, [esp + 0xa0]
mov esi, ebp
fchs
mov ecx, esi
push eax
fstp dword [esp + 0xa8]
call fcn.005035f0
mov ecx, dword [esi + 0x5a0]
mov ebx, eax
test ecx, ecx
je 0x4d81a5
lea edi, [ecx + 0x50]
mov al, byte [edi]
and al, 7
cmp al, 2
jne 0x4d81a5
mov dl, byte [edi]
shr dl, 3
movzx eax, dl
cmp eax, 5
jne 0x4d81a5
mov al, bl
mov ecx, esi
push eax
push 0
push dword [0x6912d0]
push 0x29
push dword [esp + 0xdc]
jmp 0x4d81ee
test ecx, ecx
jne 0x4d81d0
mov al, byte [esi + 0x14c]
mov ecx, esi
and al, 0xfe
mov byte [esi + 0x14c], al
push dword [0x691260]
push dword [0x691268]
push dword [0x691268]
call fcn.004badc0
fld dword [0x691350]
fmul dword [esp + 0x14]
mov al, bl
mov ecx, esi
push eax
push 0
push eax
fstp dword [esp]
push 0x29
push dword [esp + 0xdc]
call fcn.00525b20
cmp dword [ebp + 0x244], 0x36
je 0x4d820e
add ebx, 0x19
mov ecx, ebp
push 0
push ebx
push 0x7d0
call fcn.004fd9f0
cmp dword [esp + 0xcc], 0
je 0x4d8289
mov eax, dword [esp + 0xcc]
mov al, byte [eax + 0x50]
and al, 7
cmp al, 3
jne 0x4d8289
cmp dword [ebp + 0x3d4], 6
jne 0x4d8244
push 0x2710
push dword [esp + 0xd0]
push ebp
push 1
push 0xc
jmp 0x4d8255
push 0x2710
push dword [esp + 0xd0]
push ebp
push 1
push 0xb
call fcn.0048a0d0
add esp, 0x14
mov ecx, ebp
push dword [esp + 0xcc]
call fcn.00514360
jmp 0x4d8289
cmp al, 4
jne 0x4d8289
fld dword [0x691344]
fmul dword [esp + 0x14]
push eax
mov ecx, ebp
fstp dword [esp]
call fcn.004e0990
cmp dword [esp + 0xc], 0
jne 0x4d7bb0
add esp, 0xa8
pop ebp
pop edi
pop esi
pop ebx
ret
fldz
jmp 0x4d7e75
fldz
jmp 0x4d7e75
fcompp
fstp st(0)
jmp 0x4d807c
fstp st(0)
jmp 0x4d8289
fstp st(0)
jmp 0x4d8289