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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x274
push ebx
push esi
push edi
fldz
fst dword [esp + 0xe4]
mov esi, dword [ebp + 8]
fst dword [esp + 0x10c]
mov ecx, dword [esi + 4]
fst dword [esp + 0x108]
mov edx, dword [esi + 0x20]
fst dword [esp + 0x104]
imul ecx, ecx, 0x3c0
fst dword [esp + 0x100]
fst dword [esp + 0x11c]
fst dword [esp + 0x118]
fst dword [esp + 0x114]
fst dword [esp + 0x110]
fst dword [esp + 0xbc]
fst dword [esp + 0xb8]
fst dword [esp + 0xb4]
mov ebx, dword [esi + 0x28]
fst dword [esp + 0xb0]
or eax, 0xffffffff
fst dword [esp + 0xcc]
fst dword [esp + 0xc8]
mov dword [esp + 0xe8], eax
fst dword [esp + 0xc4]
mov dword [esp + 0x9c], eax
fst dword [esp + 0xc0]
fst dword [esp + 0x2c]
lea eax, [esp + 0x20]
push eax
fst dword [esp + 0x2c]
fst dword [esp + 0x28]
lea eax, [ecx + edx - 0x240]
fst dword [esp + 0x24]
push eax
fst dword [esp + 0x44]
lea ecx, [esp + 0x58]
fst dword [esp + 0x40]
push ecx
fst dword [esp + 0x40]
add ebx, 0x20
fstp dword [esp + 0x3c]
call fcn.004adc60
mov edi, dword [esi + 4]
mov edx, edi
shl edx, 5
lea eax, [edx + ebx - 0x20]
add esp, 0xc
fld dword [eax]
add edi, 0xffffffff
fsub dword [esp + 0x50]
mov dword [esp + 0x4c], edi
fstp dword [esp + 0x20]
fld dword [eax + 4]
fsub dword [esp + 0x54]
fstp dword [esp + 0x24]
fld dword [eax + 8]
fsub dword [esp + 0x58]
fstp dword [esp + 0x28]
fld dword [eax + 0xc]
fsub dword [esp + 0x5c]
fstp dword [esp + 0x2c]
fld dword [eax + 0x10]
fsub dword [esp + 0x60]
fstp dword [esp + 0x30]
fld dword [eax + 0x14]
fsub dword [esp + 0x64]
fstp dword [esp + 0x34]
fld dword [eax + 0x18]
fsub dword [esp + 0x68]
fstp dword [esp + 0x38]
fld dword [eax + 0x1c]
fsub dword [esp + 0x6c]
fstp dword [esp + 0x3c]
js 0x4a976b
lea eax, [edi + edi*2]
mov dword [esp + 0xa4], eax
mov eax, edi
shl eax, 6
mov ecx, edi
shl ecx, 5
mov dword [esp + 0xa8], eax
lea eax, [edi - 1]
lea edx, [ecx + ebx - 8]
mov dword [esp + 0x48], eax
mov dword [esp + 0xa0], edx
jmp 0x4a8eeb
mov eax, dword [esp + 0x48]
fld1
movsx ebx, ax
fld dword [esp + 0xb0]
imul ebx, ebx, 0x3c0
fstp dword [esp + 0x100]
fld dword [esp + 0xb4]
fstp dword [esp + 0x104]
fld dword [esp + 0xb8]
fstp dword [esp + 0x108]
fld dword [esp + 0xbc]
fstp dword [esp + 0x10c]
fld dword [esp + 0xc0]
fstp dword [esp + 0x110]
fld dword [esp + 0xc4]
add ebx, dword [esi + 0x20]
test eax, eax
fstp dword [esp + 0x114]
fld dword [esp + 0xc8]
fstp dword [esp + 0x118]
fld dword [esp + 0xcc]
fstp dword [esp + 0x11c]
fld dword [esp + 0x20]
fstp dword [esp + 0xb0]
fld dword [esp + 0x24]
fstp dword [esp + 0xb4]
fld dword [esp + 0x28]
fstp dword [esp + 0xb8]
fld dword [esp + 0x2c]
fstp dword [esp + 0xbc]
fld dword [esp + 0x30]
fstp dword [esp + 0xc0]
fld dword [esp + 0x34]
fstp dword [esp + 0xc4]
fld dword [esp + 0x38]
fstp dword [esp + 0xc8]
fld dword [esp + 0x3c]
fstp dword [esp + 0xcc]
jl 0x4a9070
lea eax, [esp + 0x20]
fstp st(0)
push eax
lea ecx, [ebx + 0x180]
push ecx
lea edx, [esp + 0x58]
push edx
call fcn.004adc60
mov eax, dword [esp + 0xac]
fld dword [eax - 0x18]
add esp, 0xc
fsub dword [esp + 0x50]
fstp dword [esp + 0x20]
fld dword [eax - 0x14]
fsub dword [esp + 0x54]
fstp dword [esp + 0x24]
fld dword [eax - 0x10]
fsub dword [esp + 0x58]
fstp dword [esp + 0x28]
fld dword [eax - 0xc]
fsub dword [esp + 0x5c]
fstp dword [esp + 0x2c]
fld dword [eax - 8]
fsub dword [esp + 0x60]
fstp dword [esp + 0x30]
fld dword [eax - 4]
fsub dword [esp + 0x64]
fstp dword [esp + 0x34]
fld dword [eax]
fsub dword [esp + 0x68]
fstp dword [esp + 0x38]
fld dword [eax + 4]
mov eax, dword [esp + 0x48]
fsub dword [esp + 0x6c]
fstp dword [esp + 0x3c]
fldz
fld1
fxch st(1)
test eax, eax
jl 0x4a9094
lea eax, [ebx + 0x300]
fstp st(0)
push eax
fstp st(0)
lea ecx, [esp + 0x1c4]
push ecx
call fcn.004ad680
add esp, 8
jmp 0x4a91e4
fldz
fst dword [esp + 0x2c]
fst dword [esp + 0x28]
fst dword [esp + 0x24]
fst dword [esp + 0x20]
fst dword [esp + 0x3c]
fst dword [esp + 0x38]
fst dword [esp + 0x34]
fst dword [esp + 0x30]
jmp 0x4a904c
fst dword [esp + 0x1c4]
fst dword [esp + 0x1c8]
fst dword [esp + 0x1cc]
fst dword [esp + 0x1d0]
fst dword [esp + 0x1d8]
fst dword [esp + 0x1dc]
fst dword [esp + 0x1e0]
fst dword [esp + 0x1e4]
fst dword [esp + 0x1ec]
fst dword [esp + 0x1f0]
fst dword [esp + 0x1f4]
fst dword [esp + 0x1f8]
fst dword [esp + 0x1fc]
fst dword [esp + 0x200]
fst dword [esp + 0x204]
fst dword [esp + 0x208]
fst dword [esp + 0x20c]
fst dword [esp + 0x210]
fst dword [esp + 0x214]
fst dword [esp + 0x218]
fst dword [esp + 0x21c]
fst dword [esp + 0x220]
fst dword [esp + 0x224]
fst dword [esp + 0x228]
fst dword [esp + 0x22c]
fst dword [esp + 0x230]
fst dword [esp + 0x234]
fst dword [esp + 0x238]
fst dword [esp + 0x23c]
fst dword [esp + 0x240]
fst dword [esp + 0x244]
fst dword [esp + 0x248]
fst dword [esp + 0x24c]
fst dword [esp + 0x254]
fst dword [esp + 0x258]
fst dword [esp + 0x25c]
fst dword [esp + 0x260]
fst dword [esp + 0x268]
fst dword [esp + 0x26c]
fst dword [esp + 0x270]
fst dword [esp + 0x274]
fstp dword [esp + 0x27c]
fst dword [esp + 0x1c0]
fst dword [esp + 0x1d4]
fst dword [esp + 0x1e8]
fst dword [esp + 0x250]
fst dword [esp + 0x264]
fstp dword [esp + 0x278]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x1c4]
push eax
lea ecx, [esp + 0x78]
push ecx
call fcn.004adc60
lea edx, [esp + 0xbc]
push edx
lea eax, [ebx + 0x600]
push eax
lea ecx, [esp + 0x64]
push ecx
call fcn.004adc60
fld dword [esp + 0x68]
fadd dword [esp + 0x88]
lea edx, [esp + 0x118]
push edx
add ebx, 0x6c0
fstp dword [esp + 0x8c]
lea eax, [esp + 0x6c]
fld dword [esp + 0x70]
push ebx
fadd dword [esp + 0x94]
push eax
fstp dword [esp + 0x98]
fld dword [esp + 0x7c]
fadd dword [esp + 0x9c]
fstp dword [esp + 0x9c]
fld dword [esp + 0x80]
fadd dword [esp + 0xa0]
fstp dword [esp + 0xa0]
fld dword [esp + 0xa4]
fadd dword [esp + 0x84]
fstp dword [esp + 0xa4]
fld dword [esp + 0x88]
fadd dword [esp + 0xa8]
fstp dword [esp + 0xa8]
fld dword [esp + 0x8c]
fadd dword [esp + 0xac]
fstp dword [esp + 0xac]
fld dword [esp + 0x90]
fadd dword [esp + 0xb0]
fstp dword [esp + 0xb0]
call fcn.004adc60
fld dword [esp + 0x74]
mov ecx, dword [esi + 0x24]
fadd dword [esp + 0x94]
mov edx, dword [esp + 0xcc]
lea eax, [edx + ecx]
mov dword [esp + 0x110], eax
fstp dword [esp + 0x94]
add esp, 0x24
fld dword [esp + 0x54]
xor ebx, ebx
fadd dword [esp + 0x74]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xac], ebx
fstp dword [esp + 0x74]
fld dword [esp + 0x58]
fadd dword [esp + 0x78]
fstp dword [esp + 0x78]
fld dword [esp + 0x5c]
fadd dword [esp + 0x7c]
fstp dword [esp + 0x7c]
fld dword [esp + 0x80]
fadd dword [esp + 0x60]
fstp dword [esp + 0x80]
fld dword [esp + 0x64]
fadd dword [esp + 0x84]
fstp dword [esp + 0x84]
fld dword [esp + 0x68]
fadd dword [esp + 0x88]
fstp dword [esp + 0x88]
fld dword [esp + 0x6c]
fadd dword [esp + 0x8c]
fstp dword [esp + 0x8c]
movzx eax, byte [eax]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x12c]
movzx ecx, bl
add cl, cl
shr eax, cl
and eax, 3
cmp eax, 3
mov dword [esp + 0x18], eax
je 0x4a939b
cmp eax, 1
jne 0x4a96df
mov ecx, dword [esi + 0x18]
mov edx, dword [ecx + edi*4 + 4]
lea eax, [ecx + edi*4]
mov ecx, dword [eax]
mov edi, dword [esi + 0x1c]
mov eax, dword [esp + 0xa4]
add ecx, edi
add edx, edi
mov edi, dword [esp + 0xac]
add eax, ebx
mov ebx, dword [esp + 0xec]
fld dword [edi + ebx + 0x10]
shl eax, 5
fstp dword [esp + 0x14]
add eax, dword [esi + 0x14]
fld dword [ecx + 0x20]
mov ebx, dword [ecx + 0x50]
fsub dword [ecx + 0x50]
mov dword [esp + 0x130], ebx
mov ebx, dword [ecx + 0x54]
mov dword [esp + 0x134], ebx
fstp dword [esp + 0x180]
mov ebx, dword [ecx + 0x58]
fld dword [ecx + 0x24]
mov dword [esp + 0x138], ebx
fsub dword [ecx + 0x54]
fstp dword [esp + 0x184]
fld dword [ecx + 0x28]
fsub dword [ecx + 0x58]
mov ecx, dword [ecx + 0x5c]
mov dword [esp + 0x13c], ecx
mov ecx, dword [edx + 0x50]
fstp dword [esp + 0x188]
mov dword [esp + 0x140], ecx
fld dword [edx + 0x20]
mov ecx, dword [edx + 0x54]
fsub dword [edx + 0x50]
mov dword [esp + 0x144], ecx
mov ecx, dword [edx + 0x58]
mov dword [esp + 0x148], ecx
fstp dword [esp + 0x1b0]
fld dword [edx + 0x24]
fsub dword [edx + 0x54]
fstp dword [esp + 0x1b4]
fld dword [edx + 0x28]
fsub dword [edx + 0x58]
mov edx, dword [edx + 0x5c]
mov dword [esp + 0x14c], edx
fstp dword [esp + 0x1b8]
fld dword [esp + 0x180]
fmul dword [eax]
fstp dword [esp + 0x160]
fld dword [esp + 0x184]
fmul dword [eax + 4]
fstp dword [esp + 0x164]
fld dword [esp + 0x188]
fmul dword [eax + 8]
fstp dword [esp + 0x168]
fld dword [eax + 0x10]
fmul dword [esp + 0x1b0]
fstp dword [esp + 0x190]
fld dword [eax + 0x14]
fmul dword [esp + 0x1b4]
fstp dword [esp + 0x194]
fld dword [eax + 0x18]
fmul dword [esp + 0x1b8]
fstp dword [esp + 0x198]
fld dword [esp + 0x190]
fadd dword [esp + 0x160]
fstp dword [esp + 0xd0]
fld dword [esp + 0x194]
fadd dword [esp + 0x164]
fstp dword [esp + 0xd4]
fld dword [esp + 0x198]
fadd dword [esp + 0x168]
fstp dword [esp + 0xd8]
fld dword [esp + 0x130]
fmul dword [eax]
fstp dword [esp + 0x1a0]
fld dword [esp + 0x134]
fmul dword [eax + 4]
fstp dword [esp + 0x1a4]
mov ecx, dword [esi]
fld dword [esp + 0x138]
mov edx, dword [esp + 0xec]
fmul dword [eax + 8]
mov ebx, dword [esp + 0x1c]
fstp dword [esp + 0x1a8]
fld dword [eax + 0x10]
fmul dword [esp + 0x140]
fstp dword [esp + 0x150]
fld dword [eax + 0x14]
fmul dword [esp + 0x144]
fstp dword [esp + 0x154]
fld dword [eax + 0x18]
fmul dword [esp + 0x148]
fstp dword [esp + 0x158]
fld dword [esp + 0x150]
fadd dword [esp + 0x1a0]
fstp dword [esp + 0xf0]
fld dword [esp + 0x154]
fadd dword [esp + 0x1a4]
fstp dword [esp + 0xf4]
fld dword [esp + 0x158]
fadd dword [esp + 0x1a8]
fstp dword [esp + 0xf8]
fld dword [ecx + 0x40]
fld dword [esp + 0x14]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0xf0]
fld dword [esp + 0x14]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0xf0]
fld dword [esp + 0xf4]
fmul st(1)
fstp dword [esp + 0xf4]
fmul dword [esp + 0xf8]
fstp dword [esp + 0xf8]
fld dword [edi + edx + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld st(0)
fmul dword [esp + 0xd0]
fstp dword [esp + 0xd0]
fld dword [esp + 0xd4]
fmul st(1)
fstp dword [esp + 0xd4]
fmul dword [esp + 0xd8]
fstp dword [esp + 0xd8]
fld dword [esp + 0xf0]
fadd dword [esp + 0xd0]
fstp dword [esp + 0x170]
fld dword [esp + 0xf4]
fadd dword [esp + 0xd4]
fstp dword [esp + 0x174]
fld dword [esp + 0xf8]
fadd dword [esp + 0xd8]
fstp dword [esp + 0x178]
fmul dword [eax + 0x1c]
mov eax, dword [esp + 0x18]
cmp eax, 3
fld dword [esp + 0x174]
fadd dword [esp + 0x170]
fadd dword [esp + 0x178]
fstp dword [esp + 0x14]
fsub dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + ebx*4 + 0x80]
fstp dword [esp + 0x1c]
jne 0x4a9772
fld dword [esp + 0x1c]
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
test ah, 1
je 0x4a9790
fstp st(1)
fstp st(0)
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0xac]
add eax, 0x14
add ebx, 1
cmp eax, 0x3c
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xac], eax
jl 0x4a9378
sub dword [esp + 0xa0], 0x20
sub dword [esp + 0x48], 1
sub dword [esp + 0xa8], 0x40
sub dword [esp + 0xa4], 3
sub edi, 1
test edi, edi
mov dword [esp + 0x4c], edi
jge 0x4a8ee7
mov eax, dword [esp + 0xe8]
test eax, eax
jl 0x4a976b
mov edi, eax
shl edi, 6
add edi, dword [esi + 0x24]
mov esi, dword [esp + 0x9c]
add esi, esi
mov ecx, esi
mov dl, 3
shl dl, cl
xor bl, bl
shl bl, cl
mov ecx, dword [ebp + 0xc]
not dl
and dl, byte [edi]
or dl, bl
mov byte [edi], dl
mov edx, dword [ebp + 0x10]
mov dword [ecx], eax
mov eax, dword [esp + 0x9c]
mov dword [edx], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x4a96db
fld dword [esp + 0x1c]
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x4a96d7
fsubp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fabs
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld dword [esp + 0xe4]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x4a96d9
mov edi, dword [esp + 0x4c]
fstp dword [esp + 0xe4]
mov dword [esp + 0xe8], edi
mov dword [esp + 0x9c], ebx
jmp 0x4a96df