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

Disassembly:
sub esp, 0x7c
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x98]
mov dword [edi], 0
mov eax, dword [0x15349d4]
mov ecx, dword [eax + 0x98]
test ecx, ecx
je 0x4aa5f1
mov esi, dword [esp + 0x90]
call fcn.004ffef0
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov dword [esp + 0x2c], eax
jge 0x4aa5e3
mov ecx, dword [0x15349d4]
mov eax, dword [ecx + 0x114]
test eax, eax
je 0x4aa5f1
mov edx, dword [esp + 0x9c]
mov dword [edx], eax
mov eax, dword [esp + 0x94]
mov dword [eax], 0x3f800000
mov dword [edi], 0x3f800000
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov ecx, dword [eax + 0x18]
test ecx, ecx
jne 0x4aa5fb
mov edx, dword [eax + 0x10]
test edx, edx
jne 0x4aa5fb
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
xor edx, edx
test ecx, ecx
mov dword [esp + 0x18], edx
jle 0x4aa663
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x9c]
sub ebx, ecx
jmp 0x4aa620
mov edi, dword [0x15349d4]
mov esi, dword [eax + 0x14]
mov ebp, dword [edi + 0x11c]
add esi, edx
movsx esi, word [ebp + esi*2]
mov ebp, dword [edi + 0x110]
imul esi, esi, 0x88
add esi, ebp
mov dword [ebx + ecx], esi
mov dword [ecx], 0
mov esi, dword [eax + 0x18]
inc edx
add ecx, 4
cmp edx, esi
jl 0x4aa620
mov esi, dword [esp + 0x90]
mov dword [esp + 0x18], edx
fld dword [esi]
mov dword [esp + 0x3c], 0xff000000
fsub dword [0x55a790]
mov dword [esp + 0x40], 0x3fdfffff
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fsub qword [esp + 0x3c]
fistp dword [esp + 0x34]
fld dword [esi]
mov ebp, dword [esp + 0x34]
fsub dword [0x55a790]
sar ebp, 5
mov dword [esp + 0x30], ebp
mov dword [esp + 0x3c], 0xff000000
fmul dword [0x55a4e8]
mov dword [esp + 0x40], 0x3fdfffff
fisub dword [esp + 0x30]
fstp dword [esp + 0x78]
fld dword [0x55a4a8]
fsub dword [esp + 0x78]
fstp dword [esp + 0x74]
fld dword [esi + 4]
fsub dword [0x55a790]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fsub qword [esp + 0x3c]
fistp dword [esp + 0x34]
fld dword [esi + 4]
mov edi, dword [esp + 0x34]
fsub dword [0x55a790]
sar edi, 5
mov dword [esp + 0x20], edi
mov dword [esp + 0x3c], 0xff000000
fmul dword [0x55a4e8]
mov dword [esp + 0x40], 0x3fdfffff
fisub dword [esp + 0x20]
fstp dword [esp + 0x80]
fld dword [0x55a4a8]
fsub dword [esp + 0x80]
fstp dword [esp + 0x7c]
fld dword [esi + 8]
fsub dword [0x55a790]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fsub qword [esp + 0x3c]
fistp dword [esp + 0x34]
fld dword [esi + 8]
mov ebx, dword [esp + 0x34]
fsub dword [0x55a790]
mov ecx, dword [0x153346c]
mov eax, dword [ecx + 0x20]
sar ebx, 6
cmp eax, 2
fmul dword [0x55a7f4]
mov dword [esp + 0x24], ebx
fisub dword [esp + 0x24]
fstp dword [esp + 0x88]
fld dword [0x55a4a8]
fsub dword [esp + 0x88]
fstp dword [esp + 0x84]
je 0x4aa796
cmp eax, 3
je 0x4aa79b
test eax, eax
jge 0x4aa874
cmp eax, 3
jne 0x4aa7f9
fld dword [esi]
lea eax, [esp + 0x44]
fsub dword [0x15352d0]
fstp dword [esp + 0x44]
fld dword [esi + 4]
fsub dword [0x15352d4]
fstp dword [esp + 0x48]
fld dword [esi + 8]
fsub dword [0x15352d8]
fstp dword [esp + 0x4c]
call fcn.004268a0
fld dword [0x15352e4]
fmul dword [esp + 0x4c]
fld dword [0x15352e0]
fmul dword [esp + 0x48]
faddp st(1)
fld dword [0x15352dc]
fmul dword [esp + 0x44]
faddp st(1)
fcomp dword [0x55a7c4]
fnstsw ax
test ah, 5
jnp 0x4aa874
lea edx, [ebp - 0x1000]
shl edx, 5
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
add edi, 0xfffff000
shl edi, 5
fstp dword [esp + 0x44]
mov dword [esp + 0x38], edi
fild dword [esp + 0x38]
add ebx, 0xfffff800
shl ebx, 6
mov dword [esp + 0x38], ebx
fstp dword [esp + 0x48]
mov eax, 0x5368d0
fild dword [esp + 0x38]
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x44]
fstp dword [esp + 0x4c]
fld dword [esp + 0x44]
fadd dword [0x55a52c]
fstp dword [esp + 0x5c]
fld dword [esp + 0x48]
fadd dword [0x55a52c]
fstp dword [esp + 0x60]
fld dword [esp + 0x4c]
fadd dword [0x55a530]
fstp dword [esp + 0x64]
call fcn.004ad0a0
xor ebx, ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], ebx
jmp 0x4aa890
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x30]
lea esp, [esp]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x9c]
lea eax, [esp + 0x13]
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x2c]
mov esi, ebx
push edx
sar esi, 2
push eax
mov eax, dword [esp + 0x30]
mov edi, ebx
and esi, 1
lea edx, [esi + ecx]
sar edi, 1
push edx
mov edx, dword [esp + 0x40]
and ebx, 1
and edi, 1
add ebp, ebx
lea ecx, [edi + eax]
mov eax, dword [edx + 0xc]
push ebp
call fcn.004a9780
mov edx, eax
mov eax, dword [0x153346c]
mov eax, dword [eax + 0x20]
add esp, 0x18
test eax, eax
mov dword [esp + 0x3c], edx
jge 0x4aa9a2
mov ecx, dword [esp + 0x1c]
shl ebp, 5
mov dword [esp + 0x38], ebp
fild dword [esp + 0x38]
mov ebp, dword [esp + 0x20]
and ecx, 2
fsub dword [0x55a794]
lea ecx, [ecx + ebp*2]
mov ebp, dword [esp + 0x24]
shl ecx, 4
fstp dword [esp + 0x44]
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
and ecx, 4
lea ecx, [ecx + ebp*4]
fsub dword [0x55a794]
shl ecx, 4
mov dword [esp + 0x38], ecx
fstp dword [esp + 0x48]
fild dword [esp + 0x38]
fsub dword [0x55a794]
fstp dword [esp + 0x4c]
fld dword [esp + 0x44]
fsub dword [0x55a4a8]
fstp dword [esp + 0x5c]
fld dword [esp + 0x48]
fsub dword [0x55a4a8]
fstp dword [esp + 0x60]
fld dword [esp + 0x4c]
fsub dword [0x55a4a8]
fstp dword [esp + 0x64]
fld dword [esp + 0x44]
fadd dword [0x55a4a8]
fstp dword [esp + 0x50]
fld dword [esp + 0x48]
fadd dword [0x55a4a8]
fstp dword [esp + 0x54]
fld dword [esp + 0x4c]
fadd dword [0x55a4a8]
fstp dword [esp + 0x58]
test edx, edx
jge 0x4aa9c5
test eax, eax
jge 0x4aab00
mov eax, 0x536810
lea edx, [esp + 0x50]
lea ecx, [esp + 0x5c]
call fcn.004ad0a0
jmp 0x4aab00
test edx, edx
fld dword [esp + edi*4 + 0x7c]
fmul dword [esp + esi*4 + 0x84]
movzx eax, byte [esp + 0x13]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x98]
fmul dword [esp + ebx*4 + 0x74]
fst dword [esp + 0x28]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fild dword [esp + 0x38]
fmul dword [esp + 0x28]
fmul dword [0x1535468]
fadd dword [eax]
fstp dword [eax]
jne 0x4aaa2e
mov ecx, dword [0x153346c]
mov eax, dword [ecx + 0x20]
test eax, eax
jge 0x4aab00
mov eax, 0x536840
lea edx, [esp + 0x50]
lea ecx, [esp + 0x5c]
call fcn.004ad0a0
jmp 0x4aab00
mov eax, dword [esp + 0x18]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x38], ecx
jle 0x4aab00
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x94]
sub eax, ebp
mov dword [esp + 0x34], eax
jmp 0x4aaa60
mov edx, dword [esp + 0x3c]
lea ebx, [ebx]
mov esi, 1
shl esi, cl
test edx, esi
je 0x4aaae8
fld dword [esp + 0x28]
mov edx, dword [0x153346c]
fadd dword [eax + ebp]
fstp dword [eax + ebp]
mov ecx, dword [edx + 0x20]
test ecx, ecx
jge 0x4aaae8
mov ecx, dword [ebp]
fld dword [ecx + 0x50]
lea ebx, [esp + 0x44]
fcomp dword [0x55a4ac]
fnstsw ax
test ah, 0x44
jnp 0x4aaaa3
lea edi, [ecx + 0x44]
mov esi, 0x536820
jmp 0x4aaadf
fld dword [ecx + 0x44]
mov esi, 0x536850
fmul dword [0x55a5cc]
lea edi, [esp + 0x68]
fadd dword [esp + 0x44]
fstp dword [esp + 0x68]
fld dword [ecx + 0x48]
fmul dword [0x55a5cc]
fadd dword [esp + 0x48]
fstp dword [esp + 0x6c]
fld dword [ecx + 0x4c]
fmul dword [0x55a5cc]
fadd dword [esp + 0x4c]
fstp dword [esp + 0x70]
call fcn.004ad020
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
inc ecx
add ebp, 4
cmp ecx, edx
mov dword [esp + 0x38], ecx
jl 0x4aaa56
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, 8
mov dword [esp + 0x1c], eax
jl 0x4aa884
fld dword [esp + 0x14]
fcomp dword [0x55a720]
fnstsw ax
test ah, 5
jp 0x4aad1c
fld dword [esp + 0x14]
fcomp dword [0x55a4ac]
fnstsw ax
test ah, 0x44
jp 0x4aab6f
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jge 0x4aad1c
mov ecx, dword [esp + 0x18]
test ecx, ecx
jle 0x4aab5d
mov edi, dword [esp + 0x94]
mov eax, 0x3f800000
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x98]
mov dword [ecx], 0x3f800000
jmp 0x4aad1c
fld dword [0x55a4a8]
mov ecx, dword [esp + 0x98]
fdiv dword [esp + 0x14]
fstp dword [esp + 0x1c]
fld dword [ecx]
fcomp dword [0x55a4ac]
fnstsw ax
test ah, 0x44
jnp 0x4aab9b
fld dword [esp + 0x1c]
fmul dword [ecx]
fstp dword [ecx]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x94]
xor esi, esi
cmp eax, 4
jl 0x4aacc8
mov eax, dword [esp + 0x9c]
lea edi, [eax + 0xc]
sub eax, ebx
mov edx, 3
lea ecx, [ebx + 4]
mov dword [esp + 0x3c], eax
fld dword [ecx - 4]
fcomp dword [0x55a4ac]
fnstsw ax
test ah, 0x44
jnp 0x4aac03
mov eax, dword [edi - 0xc]
mov ebp, dword [0x15349d4]
cmp eax, dword [ebp + 0x114]
jne 0x4aabf9
fld dword [0x55a4a8]
fsub dword [esp + 0x14]
fadd dword [ecx - 4]
jmp 0x4aac00
fld dword [esp + 0x1c]
fmul dword [ecx - 4]
fstp dword [ecx - 4]
fld dword [ecx]
fcomp dword [0x55a4ac]
fnstsw ax
test ah, 0x44
jnp 0x4aac3d
mov eax, dword [esp + 0x3c]
mov eax, dword [ecx + eax]
mov ebp, dword [0x15349d4]
cmp eax, dword [ebp + 0x114]
jne 0x4aac35
fld dword [0x55a4a8]
fsub dword [esp + 0x14]
fadd dword [ecx]
jmp 0x4aac3b
fld dword [esp + 0x1c]
fmul dword [ecx]
fstp dword [ecx]
fld dword [ecx + 4]
fcomp dword [0x55a4ac]
fnstsw ax
test ah, 0x44
jnp 0x4aac77
mov eax, dword [edi - 4]
mov ebp, dword [0x15349d4]
cmp eax, dword [ebp + 0x114]
jne 0x4aac6d
fld dword [0x55a4a8]
fsub dword [esp + 0x14]
fadd dword [ecx + 4]
jmp 0x4aac74
fld dword [esp + 0x1c]
fmul dword [ecx + 4]
fstp dword [ecx + 4]
fld dword [ecx + 8]
fcomp dword [0x55a4ac]
fnstsw ax
test ah, 0x44
jnp 0x4aacb0
mov eax, dword [edi]
mov ebp, dword [0x15349d4]
cmp eax, dword [ebp + 0x114]
jne 0x4aaca6
fld dword [0x55a4a8]
fsub dword [esp + 0x14]
fadd dword [ecx + 8]
jmp 0x4aacad
fld dword [esp + 0x1c]
fmul dword [ecx + 8]
fstp dword [ecx + 8]
mov eax, dword [esp + 0x18]
add edx, 4
add esi, 4
add ecx, 0x10
add edi, 0x10
cmp edx, eax
jl 0x4aabc9
cmp esi, eax
jge 0x4aad1c
mov edi, dword [esp + 0x9c]
mov edx, dword [esp + 0x18]
sub edi, ebx
lea ecx, [ebx + esi*4]
sub edx, esi
mov edi, edi
fld dword [ecx]
fcomp dword [0x55a4ac]
fnstsw ax
test ah, 0x44
jnp 0x4aad16
mov esi, dword [0x15349d4]
mov eax, dword [ecx + edi]
cmp eax, dword [esi + 0x114]
jne 0x4aad0e
fld dword [0x55a4a8]
fsub dword [esp + 0x14]
fadd dword [ecx]
jmp 0x4aad14
fld dword [esp + 0x1c]
fmul dword [ecx]
fstp dword [ecx]
add ecx, 4
dec edx
jne 0x4aace0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x4aad43
mov ecx, dword [esp + 0x98]
fld dword [ecx]
fcomp dword [0x55a514]
fnstsw ax
test ah, 5
jp 0x4aad43
mov dword [ecx], 0x3e800000
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret