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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x160
push ebx
push esi
push edi
mov dword [ebp - 0x158], ecx
mov eax, dword [ebp - 0x158]
cmp dword [eax + 0x1c], 0
jne 0x4a7063
jmp 0x4a78e3
call fcn.004debd0
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xec], ecx
call fcn.004debb0
mov dword [ebp - 0x3c], eax
call fcn.004deba0
mov dword [ebp - 0xe0], eax
mov edx, dword [ebp - 0xec]
mov eax, dword [edx + 0x70]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 0x6c]
mov dword [ebp - 0x10c], edx
cmp dword [ebp - 0x70], 1
jge 0x4a70af
mov dword [ebp - 0x70], 1
mov eax, dword [ebp - 0x10c]
cmp eax, dword [ebp - 0x70]
jle 0x4a70c3
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp - 0xec]
mov eax, dword [edx + 0x74]
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 0x78]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax + 0x7c]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0xec]
mov eax, dword [edx + 0x80]
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0xec]
fild dword [ecx + 0x84]
fstp qword [ebp - 0xa8]
mov edx, dword [ebp - 0xec]
mov eax, dword [edx + 0x88]
mov dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 0x8c]
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax + 0x90]
mov dword [ebp - 0x9c], ecx
mov edx, dword [ebp - 0xec]
fild dword [edx + 0x94]
fstp qword [ebp - 0x58]
mov eax, dword [ebp - 0xec]
fild dword [eax + 0x98]
fstp qword [ebp - 0x88]
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 0x9c]
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax + 0xa0]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0xec]
mov eax, dword [edx + 0xa4]
mov dword [ebp - 0x4c], eax
fld qword [ebp - 0x88]
fmul qword [0x575c88]
fstp qword [ebp - 0x88]
fild dword [ebp - 0x10c]
fld qword [ebp - 0x58]
fmul qword [0x575c88]
fmulp st(1)
fsubr qword [ebp - 0xa8]
fstp qword [ebp - 0xa8]
fldz
fcomp qword [ebp - 0xa8]
fnstsw ax
test ah, 0x41
jne 0x4a71e7
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0
mov eax, dword [ebp - 0x3c]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xe0]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0xe8], 1
jl 0x4a721a
cmp dword [ebp - 0x30], 1
jge 0x4a721f
jmp 0x4a78e3
mov dword [ebp - 0x110], 0xa
mov ecx, dword [ebp - 0x110]
add ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x158]
mov eax, dword [edx + 0x40]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x124], 0
jmp 0x4a725f
mov ecx, dword [ebp - 0x124]
add ecx, 1
mov dword [ebp - 0x124], ecx
mov edx, dword [ebp - 0x124]
cmp edx, dword [ebp - 0x98]
jge 0x4a73ff
mov dword [ebp - 0x12c], 0
mov eax, dword [ebp - 0x10c]
imul eax, dword [ebp - 0x6c]
sub eax, dword [ebp - 0x124]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x134], 0
js 0x4a73d9
mov ecx, dword [ebp - 0x128]
cmp ecx, dword [ebp - 0x44]
jge 0x4a73d9
mov edx, dword [ebp - 0x128]
cmp edx, dword [ebp - 0x110]
jge 0x4a72e2
fild dword [ebp - 0x128]
fmul qword [ebp - 0xa8]
fidiv dword [ebp - 0x110]
fstp qword [ebp - 0x138]
jmp 0x4a7325
mov eax, dword [ebp - 0x128]
cmp eax, dword [ebp - 0x44]
jge 0x4a7325
mov ecx, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x128]
mov dword [ebp - 0x15c], ecx
fild dword [ebp - 0x15c]
fmul qword [ebp - 0xa8]
mov edx, dword [ebp - 0x44]
sub edx, dword [ebp - 0x110]
mov dword [ebp - 0x160], edx
fild dword [ebp - 0x160]
fdivp st(1)
fstp qword [ebp - 0x138]
mov eax, dword [ebp - 0x9c]
neg eax
imul eax, dword [ebp - 0x10c]
add eax, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0x8c]
mov dword [ebp - 0x144], edx
fild dword [ebp - 0x144]
fstp qword [ebp - 0x140]
fld qword [ebp - 0x140]
fmul qword [0x575c60]
fstp qword [ebp - 0x140]
fild dword [ebp - 0x8c]
fdivr qword [ebp - 0x140]
fstp qword [ebp - 0x140]
sub esp, 8
mov ecx, dword [ebp - 0x140]
mov edx, dword [ebp - 0x13c]
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.0041dde0
add esp, 8
fmul qword [ebp - 0x138]
fadd qword [0x575b58]
fstp qword [ebp - 0x150]
fld qword [ebp - 0x150]
call fcn.0047f0a0
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
shl eax, 8
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
and ecx, 0xffff
mov dword [ebp - 0x12c], ecx
mov edx, dword [ebp - 0x12c]
shl edx, 0x10
or edx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x158]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0x124]
mov dword [ecx + eax*4], edx
jmp 0x4a7250
mov ecx, dword [ebp - 0x3c]
shl ecx, 2
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xe8]
lea edx, [ecx*4 + 8]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x158]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xec]
mov eax, dword [edx + 4]
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], 0xffffffff
jne 0x4a7453
jmp 0x4a78e3
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x158]
mov ecx, dword [edx + 0xc]
call fcn.004c6f30
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0xac], 0xffffffff
jne 0x4a747c
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x94], eax
jmp 0x4a7497
mov ecx, dword [ebp - 0xac]
push ecx
mov edx, dword [ebp - 0x158]
mov ecx, dword [edx + 0xc]
call fcn.004c6f30
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x40], 0
jne 0x4a74a2
jmp 0x4a78e3
cmp dword [ebp - 0x94], 0
jne 0x4a74b0
jmp 0x4a78e3
mov ecx, dword [ebp - 0x40]
call fcn.004d8420
mov dword [ebp - 0xb4], eax
cmp dword [ebp - 0xb4], 0
jne 0x4a74cc
jmp 0x4a78e3
mov ecx, dword [ebp - 0x94]
call fcn.004d8420
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0
jne 0x4a74e5
jmp 0x4a78e3
mov eax, dword [ebp - 0xec]
add eax, 0x1c
mov ecx, dword [eax]
mov dword [ebp - 0x14], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x10], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xac]
push eax
lea ecx, [ebp - 0x7c]
push ecx
mov edx, dword [ebp - 0x158]
mov ecx, dword [edx + 0xc]
call fcn.004c6ef0
mov eax, dword [ebp - 0x14]
neg eax
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x10]
neg ecx
mov dword [ebp - 0xdc], ecx
mov edx, dword [ebp - 0x7c]
neg edx
mov dword [ebp - 0x74], edx
mov eax, dword [ebp - 0x78]
neg eax
mov dword [ebp - 0x120], eax
lea ecx, [ebp - 0x28]
push ecx
mov ecx, dword [ebp - 0x40]
call fcn.004d8630
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x108], edx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x108], 1
jge 0x4a7570
jmp 0x4a78e3
cmp dword [ebp - 0x104], 1
jge 0x4a757e
jmp 0x4a78e3
lea ecx, [ebp - 0x100]
push ecx
mov ecx, dword [ebp - 0x94]
call fcn.004d8630
mov edx, dword [ebp - 0xf8]
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xc4], 1
jge 0x4a75b6
jmp 0x4a78e3
cmp dword [ebp - 0xd8], 1
jge 0x4a75c4
jmp 0x4a78e3
mov ecx, dword [ebp - 0x108]
shl ecx, 2
mov dword [ebp - 0xd4], ecx
mov edx, dword [ebp - 0xc4]
shl edx, 2
mov dword [ebp - 0x11c], edx
mov dword [ebp - 0x118], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xc0], 0
mov eax, dword [ebp - 0x70]
sub eax, dword [ebp - 0x34]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 1
jge 0x4a7620
mov dword [ebp - 4], 1
mov dword [ebp - 0x5c], 0x100
mov dword [ebp - 0xcc], 0
mov ecx, dword [ebp - 0x10c]
cmp ecx, dword [ebp - 0x34]
jl 0x4a7687
mov edx, dword [ebp - 0x10c]
sub edx, dword [ebp - 0x34]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x154]
imul eax, eax, 0x64
cdq
idiv dword [ebp - 4]
shl eax, 8
cdq
mov ecx, 0x64
idiv ecx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x154]
imul eax, eax, 0x64
cdq
idiv dword [ebp - 4]
shl eax, 8
cdq
mov ecx, 0x64
idiv ecx
mov dword [ebp - 0xcc], eax
mov edx, dword [ebp - 0x158]
mov eax, dword [edx + 0x3c]
mov dword [ebp - 0xb0], eax
push eax
push ebx
push ecx
push edx
push esi
push edi
mov eax, dword [ebp - 0x5c]
movd mm5, eax
punpcklwd mm5, mm5
punpckldq mm5, mm5
mov eax, dword [ebp - 0xcc]
movd mm6, eax
punpcklwd mm6, mm6
punpckldq mm6, mm6
mov esi, dword [ebp - 0xb0]
mov edi, dword [ebp - 0x48]
mov ecx, 0
push ecx
push edi
mov dword [ebp - 0xe4], ecx
mov ecx, 0
push ecx
test ecx, 2
jne 0x4a76e3
movq mm1, qword [esi]
mov ebx, dword [esi + 0x10]
jmp 0x4a76ed
movq mm1, qword [esi + 8]
mov ebx, dword [esi + 0x14]
add esi, 0x18
mov edx, ebx
mov ecx, dword [ebp - 0xc8]
and ebx, 0xffff
shr edx, 0x10
mov eax, dword [ebx + ecx]
movd mm2, eax
mov eax, dword [edx + ecx]
movd mm3, eax
psllq mm3, 0x20
por mm2, mm3
pmulhw mm1, mm2
pop ecx
push ecx
push esi
pxor mm3, mm3
pxor mm4, mm4
movq mm7, mm1
psllq mm7, 0x10
psrad mm7, 0x10
movd eax, mm7
add eax, ecx
add eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x108]
jae 0x4a7770
shl eax, 2
mov esi, eax
movq mm7, mm1
psrad mm7, 0x10
movd eax, mm7
add eax, dword [ebp - 0xe4]
add eax, dword [ebp - 0xdc]
cmp eax, dword [ebp - 0x104]
jae 0x4a7770
mov edx, dword [ebp - 0xd4]
mul edx
add esi, eax
add esi, dword [ebp - 0xb4]
mov eax, dword [esi]
movd mm3, eax
movq mm7, mm1
psllq mm7, 0x10
psrad mm7, 0x10
movd eax, mm7
add eax, ecx
add eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0xc4]
jae 0x4a77c0
shl eax, 2
mov esi, eax
movq mm7, mm1
psrad mm7, 0x10
movd eax, mm7
add eax, dword [ebp - 0xe4]
add eax, dword [ebp - 0x120]
cmp eax, dword [ebp - 0xd8]
jae 0x4a77c0
mov edx, dword [ebp - 0x11c]
mul edx
add esi, eax
add esi, dword [ebp - 0x64]
mov eax, dword [esi]
movd mm4, eax
pxor mm0, mm0
punpcklbw mm3, mm0
pmullw mm3, mm5
punpcklbw mm4, mm0
pmullw mm4, mm6
paddw mm3, mm4
psrlw mm3, 8
packuswb mm3, mm0
movd eax, mm3
mov dword [edi], eax
pxor mm3, mm3
pxor mm4, mm4
movq mm7, mm1
psllq mm7, 0x10
psrad mm7, 0x10
psrlq mm7, 0x20
movd eax, mm7
add eax, ecx
inc eax
add eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x108]
jae 0x4a7840
shl eax, 2
mov esi, eax
movq mm7, mm1
psrad mm7, 0x10
psrlq mm7, 0x20
movd eax, mm7
add eax, dword [ebp - 0xe4]
add eax, dword [ebp - 0xdc]
cmp eax, dword [ebp - 0x104]
jae 0x4a7840
mov edx, dword [ebp - 0xd4]
mul edx
add esi, eax
add esi, dword [ebp - 0xb4]
mov eax, dword [esi]
movd mm3, eax
movq mm7, mm1
psllq mm7, 0x10
psrad mm7, 0x10
psrlq mm7, 0x20
movd eax, mm7
add eax, ecx
inc eax
add eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0xc4]
jae 0x4a7899
shl eax, 2
mov esi, eax
movq mm7, mm1
psrad mm7, 0x10
psrlq mm7, 0x20
movd eax, mm7
add eax, dword [ebp - 0xe4]
add eax, dword [ebp - 0x120]
cmp eax, dword [ebp - 0xd8]
jae 0x4a7899
mov edx, dword [ebp - 0x11c]
mul edx
add esi, eax
add esi, dword [ebp - 0x64]
mov eax, dword [esi]
movd mm4, eax
pxor mm0, mm0
punpcklbw mm3, mm0
pmullw mm3, mm5
punpcklbw mm4, mm0
pmullw mm4, mm6
paddw mm3, mm4
psrlw mm3, 8
packuswb mm3, mm0
movd eax, mm3
mov dword [edi + 4], eax
pop esi
pop ecx
add edi, 8
add ecx, 2
cmp ecx, dword [ebp - 0x3c]
jb 0x4a76d2
pop edi
pop ecx
add edi, dword [ebp - 0x18]
inc ecx
cmp ecx, dword [ebp - 0xe0]
jne 0x4a76c5
emms
pop edi
pop esi
pop edx
pop ecx
pop ebx
pop eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8