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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd8
cmp byte [esi + 0x40], 0
fldz
mov eax, dword [esi + 0x18]
fstp qword [esp + 0x58]
push ebx
push edi
mov dword [esp + 0x10], eax
jne 0x4d04d8
add eax, 1
mov dword [esp + 0x10], eax
cmp eax, 3
mov dword [esi + 0x1c], eax
jl 0x4d0cf7
mov eax, dword [esp + 0x10]
lea ecx, [eax*4]
push ecx
call fcn.00443680
mov ebx, dword [esi + 4]
mov edx, dword [ebp + 8]
mov edi, dword [esi + 0xc]
mov dword [esi + 0x20], eax
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x10]
add esp, 4
cmp dword [eax + 4], edx
jne 0x4d0516
mov dword [esp + 8], eax
jmp 0x4d052d
mov eax, dword [ebx + 0x14]
mov ecx, edx
cmp dword [eax + 4], ecx
jne 0x4d0526
mov dword [esp + 8], eax
jmp 0x4d052d
mov edx, dword [ebx + 0x18]
mov dword [esp + 8], edx
or eax, 0xffffffff
mov dword [esp + 0x14], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
push edi
push eax
push ebx
call fcn.0045bab0
mov ecx, dword [esp + 0x14]
add esp, 0xc
test byte [ecx + 0x28], 1
mov dword [esp + 0x20], eax
je 0x4d0677
cmp dword [esp + 0x14], 0
je 0x4d0677
fldz
fcomp dword [0x55f538]
fnstsw ax
test ah, 5
jp 0x4d0677
lea edx, [esp + 0x80]
push edx
mov edx, dword [esp + 0x24]
lea eax, [esp + 0xbc]
push eax
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x34]
add eax, 8
push eax
push edi
push ecx
push edx
call fcn.004ca2c0
add esp, 0x1c
test eax, eax
je 0x4d05e6
mov eax, dword [esp + 0x20]
fld dword [eax + 0x10]
fmul dword [esp + 0x38]
fld dword [eax + 0xc]
fmul dword [esp + 0x34]
faddp st(1)
fld dword [eax + 0x14]
fmul dword [esp + 0x3c]
faddp st(1)
fld dword [0x55f538]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4d0677
lea eax, [esp + 0x80]
push eax
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0xbc]
push ecx
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x3c]
push edx
mov edx, dword [esp + 0x2c]
add ecx, 8
push ecx
push edi
push edx
push eax
call fcn.004ca2c0
add esp, 0x1c
test eax, eax
je 0x4d0649
mov eax, dword [esp + 0x28]
fld dword [eax + 0x10]
fmul dword [esp + 0x38]
fld dword [eax + 0xc]
fmul dword [esp + 0x34]
faddp st(1)
fld dword [eax + 0x14]
fmul dword [esp + 0x3c]
faddp st(1)
fld dword [0x55f538]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4d0677
cmp byte [esi + 0x40], 0
je 0x4d0ada
cmp dword [esp + 0x40], 0
jge 0x4d0664
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
jmp 0x4d0677
cmp dword [esp + 0xc], 0
jge 0x4d0ada
mov edx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [eax + ecx*4], edi
mov ebx, dword [ebx + 8]
add ecx, 1
test ebx, ebx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
jne 0x4d0540
cmp byte [esi + 0x40], bl
je 0x4d07a8
mov ebx, dword [eax + 4]
mov eax, dword [esp + 8]
test byte [eax + 0x28], 1
je 0x4d07ab
fldz
fcomp dword [0x55f538]
fnstsw ax
test ah, 5
jp 0x4d07ab
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [ebx + 4]
lea edx, [esp + 0xbc]
push edx
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x14]
add ecx, 8
push ecx
push edi
push edx
push eax
call fcn.004ca2c0
add esp, 0x1c
test eax, eax
je 0x4d0728
fld dword [ebx + 0x10]
fmul dword [esp + 0x38]
fld dword [ebx + 0xc]
fmul dword [esp + 0x34]
faddp st(1)
fld dword [ebx + 0x14]
fmul dword [esp + 0x3c]
faddp st(1)
fld dword [0x55f538]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4d07ab
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0xbc]
push edx
mov edx, dword [ecx + 4]
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x14]
add edx, 8
push edx
push edi
push ebx
push eax
call fcn.004ca2c0
add esp, 0x1c
test eax, eax
je 0x4d0787
mov eax, dword [esp + 0x28]
fld dword [eax + 0x10]
fmul dword [esp + 0x38]
fld dword [eax + 0xc]
fmul dword [esp + 0x34]
faddp st(1)
fld dword [eax + 0x14]
fmul dword [esp + 0x3c]
faddp st(1)
fld dword [0x55f538]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4d07ab
cmp dword [esp + 0xc], 0
jge 0x4d0ada
mov eax, dword [esp + 0x40]
test eax, eax
jl 0x4d079e
mov dword [esp + 0xc], eax
mov dword [esp + 0x40], 0
jmp 0x4d07ab
mov dword [eax + ecx*4], edi
cmp dword [esp + 0xc], 0
jl 0x4d08bf
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x40]
push 0
push 9
sub edi, ebx
call fcn.00447120
mov ecx, dword [esi]
mov edx, dword [esp + 0x20]
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [edx + ecx*4]
mov dword [eax + 0xc], ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x20], ecx
mov ecx, dword [ecx]
mov dword [eax + 0x10], ecx
mov ecx, dword [esi + 0x18]
sub ecx, edi
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x20], 0
mov byte [eax + 0x40], 0
mov dword [esi + 0x18], edi
add edi, 1
mov dword [esi], eax
mov dword [esi + 0x1c], edi
mov ecx, dword [ecx]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [edx + ecx*4]
add esp, 8
test ebx, ebx
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x10], edi
mov byte [esi + 0x40], 0
je 0x4d0893
test edi, edi
mov dword [esp + 0x14], 0
jle 0x4d085d
mov edi, dword [esp + 0x18]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov ebx, dword [ebx]
add dword [esp + 0x20], 4
mov dword [edx + edi*4], ebx
add edi, 1
cmp edi, dword [esp + 0x10]
jl 0x4d0842
mov ebx, dword [esp + 0x40]
mov edi, dword [esi + 8]
sub ebx, 1
test ebx, ebx
mov dword [edi + 8], ecx
jle 0x4d087a
lea ebx, [ebx]
mov ecx, dword [ecx + 8]
sub ebx, 1
test ebx, ebx
jg 0x4d0870
mov dword [eax + 8], ecx
mov edi, dword [eax + 8]
mov ecx, dword [ecx + 8]
mov dword [edi + 8], 0
mov edi, dword [esp + 0x10]
mov dword [esi + 4], ecx
jmp 0x4d0899
mov ebx, dword [esi + 8]
mov dword [eax + 8], ebx
mov ebx, dword [esi + 0x18]
sub ebx, 1
test ebx, ebx
jle 0x4d08ad
mov ecx, dword [ecx + 8]
sub ebx, 1
test ebx, ebx
jg 0x4d08a3
mov dword [esi + 8], ecx
mov ebx, dword [ecx + 8]
mov dword [eax + 4], ebx
mov dword [ecx + 8], 0
jmp 0x4d08d2
cmp dword [esp + 0x40], 0
jge 0x4d0ada
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
cmp edi, 3
jl 0x4d0cf7
fldz
mov eax, dword [esp + 8]
test byte [eax + 0x28], 1
fld st(0)
fst qword [esp + 0x58]
fxch st(1)
fst qword [esp + 0x50]
fst qword [esp + 0x48]
fld st(0)
fst qword [esp + 0x78]
fld st(1)
fst qword [esp + 0x70]
fld st(2)
fst qword [esp + 0x68]
je 0x4d0ae2
mov ecx, dword [edx + 4]
mov ecx, dword [ecx + 4]
mov eax, dword [edx]
fld dword [ecx + 8]
mov ebx, dword [eax + 4]
fsub dword [ebx + 8]
fstp qword [esp + 0x88]
fld dword [ecx + 0xc]
fsub dword [ebx + 0xc]
fstp qword [esp + 0x90]
fld dword [ecx + 0x10]
lea ecx, [edi - 1]
test ecx, ecx
fsub dword [ebx + 0x10]
fst qword [esp + 0x98]
jl 0x4d0bf5
mov edi, dword [esp + 8]
fstp st(5)
fstp st(3)
fld dword [edi + 0x10]
fstp qword [esp + 0x20]
fld dword [edi + 0xc]
fstp qword [esp + 0x18]
fld dword [edi + 0x14]
fstp qword [esp + 0x28]
jmp 0x4d096d
fstp st(1)
fstp st(4)
mov eax, dword [eax + 4]
fld dword [eax + 8]
fld st(0)
faddp st(4)
fld dword [eax + 0xc]
fld st(0)
faddp st(3)
fld dword [eax + 0x10]
mov eax, dword [edx + ecx*4]
fld st(0)
mov eax, dword [eax + 4]
faddp st(5)
fld dword [eax + 8]
fsubp st(3)
fld dword [eax + 0xc]
fsubp st(2)
fsub dword [eax + 0x10]
fst qword [esp + 0xd8]
fld st(1)
fmulp st(7)
fmul qword [esp + 0x90]
fsubp st(6)
fxch st(5)
fstp qword [esp + 0xa0]
fld qword [esp + 0xd8]
fmul qword [esp + 0x88]
fld st(1)
fmul qword [esp + 0x98]
fsubp st(1)
fstp qword [esp + 0xa8]
fld qword [esp + 0x90]
fmul st(1)
fld st(5)
fmul qword [esp + 0x88]
fsubp st(1)
fstp qword [esp + 0xb0]
fld qword [esp + 0x18]
fmul qword [esp + 0xa0]
fld qword [esp + 0x20]
fmul qword [esp + 0xa8]
faddp st(1)
fld qword [esp + 0x28]
fld qword [esp + 0xb0]
fmul st(1), st(0)
fxch st(2)
faddp st(1)
fldz
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4d0a4e
fld qword [esp + 0x48]
fsub qword [esp + 0xa0]
fstp qword [esp + 0x48]
fld qword [esp + 0x50]
fsub qword [esp + 0xa8]
fstp qword [esp + 0x50]
fld qword [esp + 0x58]
fsubrp st(2)
fxch st(1)
jmp 0x4d0a72
fld qword [esp + 0xa0]
fadd qword [esp + 0x48]
fstp qword [esp + 0x48]
fld qword [esp + 0xa8]
fadd qword [esp + 0x50]
fstp qword [esp + 0x50]
fxch st(1)
fadd qword [esp + 0x58]
sub ecx, 1
fst qword [esp + 0x58]
mov eax, dword [edx + ecx*4 + 4]
fxch st(2)
fstp qword [esp + 0x88]
fxch st(5)
fstp qword [esp + 0x90]
fld qword [esp + 0xd8]
fst qword [esp + 0x98]
jns 0x4d0969
fstp st(0)
fxch st(2)
fstp qword [esp + 0x78]
fstp qword [esp + 0x70]
fxch st(1)
fstp qword [esp + 0x68]
fxch st(1)
fld qword [esp + 0x48]
fmul st(0), st(0)
fld qword [esp + 0x50]
fmul st(0), st(0)
faddp st(1)
fld st(2)
fmulp st(3)
faddp st(2)
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x4d0c02
fstp st(0)
xor eax, eax
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
add edi, 0xffffffff
lea ecx, [edi + 1]
cmp ecx, 4
jl 0x4d0b75
shr ecx, 2
mov dword [esp + 0x18], ecx
neg ecx
lea eax, [edx + edi*4 - 8]
lea edi, [edi + ecx*4]
mov ecx, dword [eax + 8]
mov ecx, dword [ecx + 4]
fadd dword [ecx + 8]
sub eax, 0x10
sub dword [esp + 0x18], 1
fld dword [ecx + 0xc]
faddp st(2)
fld dword [ecx + 0x10]
mov ecx, dword [eax + 0x14]
mov ebx, dword [ecx + 4]
faddp st(3)
mov ecx, ebx
fadd dword [ebx + 8]
fld dword [ebx + 0xc]
faddp st(2)
fld dword [ecx + 0x10]
mov ecx, dword [eax + 0x10]
mov ebx, dword [ecx + 4]
faddp st(3)
mov ecx, ebx
fadd dword [ebx + 8]
fld dword [ebx + 0xc]
faddp st(2)
fld dword [ecx + 0x10]
mov ecx, dword [eax + 0xc]
mov ebx, dword [ecx + 4]
faddp st(3)
mov ecx, ebx
fadd dword [ebx + 8]
fld dword [ebx + 0xc]
faddp st(2)
fld dword [ecx + 0x10]
faddp st(3)
jne 0x4d0b01
fxch st(2)
fst qword [esp + 0x78]
fxch st(1)
fst qword [esp + 0x70]
fxch st(2)
fst qword [esp + 0x68]
fxch st(1)
fxch st(2)
fxch st(1)
test edi, edi
jl 0x4d0ba2
sub edi, 1
mov eax, dword [edx + edi*4 + 4]
mov eax, dword [eax + 4]
fadd dword [eax + 8]
fld dword [eax + 0xc]
faddp st(2)
fld dword [eax + 0x10]
faddp st(3)
jns 0x4d0b79
fxch st(2)
fstp qword [esp + 0x78]
fstp qword [esp + 0x70]
fstp qword [esp + 0x68]
jmp 0x4d0ba8
fstp st(0)
fstp st(0)
fstp st(0)
mov edi, dword [esi + 4]
test edi, edi
je 0x4d0ab7
fstp st(1)
mov edx, edi
fstp st(0)
call fcn.004d0430
fld dword [edi + 0x20]
fmul st(1)
fld dword [edi + 0x24]
fmul st(2)
fld dword [edi + 0x28]
mov edi, dword [edi + 8]
test edi, edi
fmulp st(3)
fxch st(1)
fadd qword [esp + 0x48]
fstp qword [esp + 0x48]
fadd qword [esp + 0x50]
fstp qword [esp + 0x50]
fadd qword [esp + 0x58]
fst qword [esp + 0x58]
jne 0x4d0bb5
fldz
jmp 0x4d0ab7
fstp st(1)
fstp st(1)
fstp st(1)
fstp st(0)
jmp 0x4d0ab7
call fcn.00417560
fld1
fld st(0)
mov ecx, dword [ebp + 8]
fdivrp st(2)
fld st(1)
fmul qword [esp + 0x48]
fld st(2)
fmul qword [esp + 0x50]
fxch st(3)
fmul qword [esp + 0x58]
fild dword [esp + 0x10]
fdivp st(3)
fld st(2)
fmul qword [esp + 0x68]
fld st(3)
fmul qword [esp + 0x70]
fxch st(4)
fmul qword [esp + 0x78]
fxch st(3)
fst qword [esi + 0x28]
fxch st(5)
fst qword [esi + 0x30]
fxch st(2)
fst qword [esi + 0x38]
fld dword [ecx + 8]
fsubrp st(2)
fld dword [ecx + 0xc]
fsubrp st(5)
fld dword [ecx + 0x10]
fsubrp st(4)
fxch st(1)
fmulp st(5)
fxch st(3)
fmulp st(1)
faddp st(3)
fmulp st(1)
faddp st(1)
fldz
fld st(0)
fucomp st(2)
fnstsw ax
test ah, 0x44
jnp 0x4d0d05
fcom st(1)
fnstsw ax
fld dword [0x56ed00]
test ah, 5
jp 0x4d0cae
fldz
fld st(0)
fucomp st(2)
fnstsw ax
test ah, 0x44
jp 0x4d0ca1
fstp st(1)
fstp st(0)
fxch st(1)
fadd qword [0x510f90]
jmp 0x4d0ce6
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x4d0d0e
fdivp st(2)
jmp 0x4d0ce4
fstp st(0)
fldz
fld st(0)
fld dword [0x56ed04]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x4d0cd3
fstp st(0)
fstp st(0)
fxch st(1)
fadd qword [0x510f90]
jmp 0x4d0ce6
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4d0d0e
fdivp st(2)
fld st(0)
fsubrp st(2)
fxch st(1)
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4d0d12
fstp qword [esp + 0x60]
jmp 0x4d0d14
cmp dword [esi + 0x18], 1
je 0x4d0d09
xor eax, eax
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
fstp st(1)
jmp 0x4d0d12
mov ecx, dword [ebp + 8]
jmp 0x4d0d14
fstp st(2)
fstp st(0)
fstp st(0)
cmp byte [esi + 0x40], 0
jne 0x4d0e46
fld dword [ecx + 8]
mov edi, dword [esi + 0xc]
mov eax, dword [edi + 4]
fst qword [esp + 0x18]
fsub dword [eax + 8]
fld dword [ecx + 0xc]
fst qword [esp + 0x20]
fsub dword [eax + 0xc]
fld dword [ecx + 0x10]
fst qword [esp + 0x28]
fsub dword [eax + 0x10]
fld st(1)
fmulp st(2)
fld st(2)
fmulp st(3)
fxch st(1)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
call fcn.00417560
fstp qword [esp + 0x40]
mov ebx, dword [esi + 0x10]
mov eax, dword [ebx + 4]
fld dword [eax + 8]
fsubr qword [esp + 0x18]
fld dword [eax + 0xc]
fsubr qword [esp + 0x20]
fld dword [eax + 0x10]
fsubr qword [esp + 0x28]
fld st(1)
fmulp st(2)
fld st(2)
fmulp st(3)
fxch st(1)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
call fcn.00417560
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 4]
fld dword [ecx + 8]
fld dword [eax + 8]
fsub st(1)
fld dword [ecx + 0xc]
fld dword [eax + 0xc]
fsub st(1)
fld dword [ecx + 0x10]
fld dword [eax + 0x10]
fsub st(1)
fld qword [esp + 0x40]
fadd st(7), st(0)
fdivrp st(7)
fxch st(4)
fmul st(6)
fxch st(2)
fmul st(6)
fxch st(4)
fmulp st(6)
fxch st(1)
faddp st(4)
fxch st(2)
faddp st(1)
fxch st(3)
faddp st(1)
fld qword [esp + 0x18]
fsubrp st(2)
fld qword [esp + 0x20]
fsubrp st(3)
fsubr qword [esp + 0x28]
fld st(2)
fmulp st(3)
fld st(1)
fmulp st(2)
fxch st(2)
faddp st(1)
fld st(1)
fmulp st(2)
faddp st(1)
fldz
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x4d0e44
call fcn.00417560
fldz
fld st(0)
fld dword [0x56ed00]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x4d0e1c
fstp st(0)
fstp st(0)
fadd qword [0x510f90]
jmp 0x4d0e31
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4d0e2b
fdivp st(1)
jmp 0x4d0e31
fstp st(1)
fstp st(0)
fldz
fld qword [esp + 0x60]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x4d0e44
fstp qword [esp + 0x60]
jmp 0x4d0e46
fstp st(0)
test byte [ebp + 0xc], 1
fld qword [esp + 0x60]
fst dword [esi + 0x14]
jne 0x4d0e66
fld1
fcompp
fnstsw ax
test ah, 5
jp 0x4d0e68
xor eax, eax
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
fstp st(0)
pop edi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret