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

Disassembly:
sub esp, 0xf4
push ebx
push ebp
push esi
xor esi, esi
mov ebp, 0x847717
push edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x28], ebp
lea esp, [esp]
call fcn.0046a2c0
cmp esi, eax
jb 0x4bd0a2
cmp esi, 0x2a
jl 0x4bd8b2
mov ecx, dword [ebp - 7]
cmp ecx, 0xff
mov dword [esp + 0x2c], ecx
je 0x4bd8b2
mov eax, dword [0x705898]
mov edx, dword [eax + 0x3c4]
xor edx, 1
cmp byte [edx + ebp - 3], 0
je 0x4bd8b2
mov al, byte [ebp]
cmp al, 3
je 0x4bd8b2
lea edi, [ecx*8]
sub edi, ecx
lea edi, [edi + edi*4]
shl edi, 4
add edi, dword [0x69647c]
test al, al
jne 0x4bd154
mov eax, dword [edi + 0x5c]
mov eax, dword [eax]
test al, 0x20
je 0x4bd8b2
test ah, 4
je 0x4bd8b2
movss xmm0, dword [0x64fce8]
comiss xmm0, dword [edi + 0x70]
ja 0x4bd8b2
xorps xmm0, xmm0
mov ecx, edi
mov edx, dword [ecx]
mov dword [esp + 0x10], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x14], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x18], edx
mov eax, dword [ecx + 0xc]
xor esi, esi
mov ebx, 0x847710
mov dword [esp + 0x1c], eax
movss dword [esp + 0x30], xmm0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], ebx
jmp 0x4bd1f7
cmp al, 1
je 0x4bd160
cmp al, 2
jne 0x4bd1e2
cmp byte [edi + 0x1bf], 0xff
je 0x4bd8b2
mov edx, dword [edi + 0x5c]
test byte [edx + 3], 0x80
je 0x4bd8b2
cmp al, 2
mov edx, edi
mov esi, dword [edx]
mov dword [esp + 0x10], esi
mov esi, dword [edx + 4]
mov dword [esp + 0x14], esi
mov esi, dword [edx + 8]
mov dword [esp + 0x18], esi
mov edx, dword [edx + 0xc]
mov dword [esp + 0x1c], edx
movss xmm0, dword [edi + 0x30]
subss xmm0, dword [0x64de60]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [0x64dea0]
je 0x4bd1be
movss xmm0, dword [0x64deac]
mov eax, dword [edi + 0x94]
mov edx, eax
push edx
push ecx
movss dword [esp + 0x2c], xmm0
mov dword [esp + 0x38], eax
call fcn.004ba750
fadd dword [esp + 0x2c]
add esp, 8
fstp dword [esp + 0x24]
xor esi, esi
mov ebx, 0x847710
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], ebx
jmp 0x4bd1f7
mov ebp, dword [esp + 0x28]
call fcn.0046a2c0
cmp esi, eax
jb 0x4bd209
cmp esi, 0x2a
jl 0x4bd6f5
add ebp, 0xffffffd1
lea eax, [ebx - 0x28]
cmp ebp, eax
je 0x4bd6f5
mov esi, dword [ebx]
cmp esi, 0xff
je 0x4bd6f5
mov ecx, dword [0x705898]
mov edx, dword [ecx + 0x3c4]
xor edx, 1
cmp byte [edx + ebx + 4], 0
je 0x4bd6f5
cmp byte [ebx + 7], 0
jne 0x4bd6f5
mov ecx, esi
call fcn.004bd030
test eax, eax
jne 0x4bd6f5
mov edx, dword [0x69647c]
lea eax, [esi*8]
sub eax, esi
lea ebx, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov al, byte [eax]
shl ebx, 4
test al, al
lea ebp, [ebx + edx]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x20], ebp
jne 0x4bd42e
mov ecx, dword [ebp + 0x5c]
test dword [ecx], 0x102420
jne 0x4bd6f5
cmp byte [ebp + 0x1bf], 0xff
jne 0x4bd6f5
test byte [ebp + 0x1b1], 1
jne 0x4bd6f5
mov ecx, esi
call fcn.004bd010
test al, al
je 0x4bd6f5
fld dword [esp + 0x10]
mov eax, ebp
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
fsub dword [esp + 0x34]
mov ecx, dword [eax + 4]
fld dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
fsub dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x40], eax
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fld dword [0x64971c]
fcompi st(1)
fstp st(0)
jb 0x4bd6f5
fld dword [esp + 0x14]
fsub dword [esp + 0x38]
fabs
fld dword [0x64e48c]
fcompi st(1)
fstp st(0)
jb 0x4bd6f5
movzx ecx, byte [0x9d22f0]
lea eax, [ecx*8]
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 4
movzx edx, byte [ecx + edx + 0x1f6]
mov ecx, esi
call fcn.004bd010
movzx ecx, al
mov eax, edx
imul eax, edx
lea eax, [eax + eax*4]
add eax, eax
xor edx, edx
div ecx
mov ecx, esi
mov edx, eax
call fcn.004bd010
movzx ecx, al
mov eax, edx
xor edx, edx
div ecx
mov edx, dword [esp + 0x2c]
push edi
push 0x699e94
push esi
push edx
mov byte [0x699e9f], al
call fcn.004366e0
push esi
push 0x25
push 0
call fcn.00417990
fld dword [esp + 0x2c]
fsub dword [esp + 0x50]
add esp, 0x1c
fld dword [esp + 0x18]
fsub dword [esp + 0x3c]
fpatan
fmul dword [0x64952c]
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
subss xmm0, dword [edi + 0x6c]
comiss xmm0, dword [0x6498c0]
jbe 0x4bd3ca
subss xmm0, dword [0x649918]
jmp 0x4bd3df
movss xmm1, dword [0x64991c]
comiss xmm1, xmm0
jb 0x4bd3df
addss xmm0, dword [0x649918]
movss xmm1, dword [0x64de70]
comiss xmm0, xmm1
ja 0x4bd3f9
movss xmm1, dword [0x64fa80]
comiss xmm1, xmm0
jbe 0x4bd3fc
movaps xmm0, xmm1
movss xmm1, dword [edi + 0x6c]
addss xmm1, xmm0
movss xmm0, dword [0x64de54]
movss dword [ebp + 0x74], xmm0
movss dword [ebp + 0x6c], xmm1
movss xmm0, dword [edi + 0x70]
mulss xmm0, dword [0x64def4]
movss dword [ebp + 0x70], xmm0
jmp 0x4bd6f5
cmp al, 1
je 0x4bd43a
cmp al, 2
jne 0x4bd6f5
movzx eax, byte [edi + 0x1bf]
push eax
call fcn.004157c0
push esi
mov ebp, eax
call fcn.004157c0
add esp, 8
cmp eax, ebp
je 0x4bd6f5
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x5c]
test dword [ecx], 0x2c60
jne 0x4bd6f5
cmp byte [eax + 0x1bf], 0xff
je 0x4bd483
test byte [eax + 0x20e], 0x40
jne 0x4bd6f5
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], edx
fld dword [esp + 0x34]
fsub dword [esp + 0x10]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x38], ecx
fld dword [esp + 0x38]
fsub dword [esp + 0x14]
mov dword [esp + 0x3c], edx
movss xmm0, dword [esp + 0x3c]
subss xmm0, dword [esp + 0x18]
fabs
mov dword [esp + 0x40], eax
fld st(1)
fabs
fxch st(1)
movss dword [esp + 0xbc], xmm0
fxch st(1)
faddp st(1)
fld dword [0x64e76c]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x4bd6f3
fld dword [esp + 0xbc]
fpatan
fsubr dword [esp + 0x30]
fabs
fld dword [0x649540]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x4bd6f5
fld dword [esp + 0x10]
fsub dword [esp + 0x34]
fld dword [esp + 0x18]
fsub dword [esp + 0x3c]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fld dword [esp + 0x24]
fadd dword [0x64970c]
fcompi st(1)
fstp st(0)
jb 0x4bd6f5
fld dword [esp + 0x14]
fsub dword [esp + 0x38]
fabs
fld dword [0x64e48c]
fcompi st(1)
fstp st(0)
jb 0x4bd6f5
mov eax, dword [esp + 0x2c]
sub eax, dword [0x699b8c]
mov edx, dword [0x699b84]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4 + 0xc]
lea ebp, [edx + ecx*4]
push esi
mov dword [esp + 0x24], eax
call fcn.00415800
mov edx, dword [esp + 0x24]
movsx ecx, word [edx + 2]
add esp, 4
cmp eax, ecx
jl 0x4bd716
mov ecx, dword [0x699b8c]
mov eax, dword [esp + 0x2c]
cmp eax, ecx
jl 0x4bd63e
sub eax, ecx
cmp eax, dword [0x699b88]
jge 0x4bd63e
mov ecx, dword [0x699b84]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 0xc]
xor ecx, ecx
cmp byte [eax], cl
sete cl
mov eax, ecx
test eax, eax
je 0x4bd63e
movzx ecx, byte [edi + 0x1bf]
lea eax, [ecx*8]
sub eax, ecx
mov ecx, dword [0x69647c]
lea edx, [eax + eax*4]
shl edx, 4
movzx eax, byte [edx + ecx + 0x1fa]
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx + 0x10]
movzx ecx, byte [ebx + ecx + 0x1fb]
imul eax, edx
cdq
idiv ecx
push edi
push 0x699dd4
push esi
mov byte [0x699ddf], al
mov edx, dword [ebp + 0xc]
mov al, byte [edx + 0x11]
mov byte [0x699de5], al
mov ecx, dword [ebp + 0xc]
mov dl, byte [ecx + 0x12]
mov byte [0x699de3], dl
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0x13]
mov byte [0x699de4], cl
movzx edx, byte [edi + 0x1bf]
push edx
call fcn.004366e0
add esp, 0x10
jmp 0x4bd6f5
mov ax, word [edi + 0x40]
cmp ax, 0x16
jne 0x4bd654
mov ebx, 0x32
mov ecx, 0x699e54
jmp 0x4bd681
cmp ax, 0x15
jne 0x4bd666
mov ebx, 0x19
mov ecx, 0x699e34
jmp 0x4bd681
cmp ax, 0x14
jne 0x4bd678
mov ebx, 0x19
mov ecx, 0x699e14
jmp 0x4bd681
movsx ebx, byte [edx + 0x10]
mov ecx, 0x699df4
movzx edx, byte [edi + 0x1bf]
lea eax, [edx*8]
sub eax, edx
mov edx, dword [0x69647c]
lea eax, [eax + eax*4]
shl eax, 4
movzx eax, byte [eax + edx + 0x1fa]
imul eax, ebx
mov ebx, dword [esp + 0x60]
movzx ebx, byte [ebx + edx + 0x1fb]
cdq
idiv ebx
push edi
push ecx
push esi
mov byte [ecx + 0xb], al
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x11]
mov byte [0x699de5], al
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x12]
mov byte [0x699de3], al
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x13]
mov byte [0x699de4], al
movzx ecx, byte [edi + 0x1bf]
push ecx
call fcn.004366e0
add esp, 0x10
jmp 0x4bd6f5
fstp st(0)
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
add esi, 1
add ebx, 0x48
cmp esi, 0x40
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], ebx
jl 0x4bd1f3
jmp 0x4bd738
mov edx, dword [esp + 0x2c]
push edx
push 9
push 0
call fcn.00417990
movzx eax, byte [edi + 0x1bf]
push eax
push 0x58
push 0
call fcn.00417990
add esp, 0x18
mov ebp, dword [esp + 0x28]
cmp byte [ebp], 2
jne 0x4bd8ae
mov ecx, dword [edi + 0x5c]
test byte [ecx + 3], 0x80
je 0x4bd8ae
xorps xmm0, xmm0
mov edx, dword [esp + 0x30]
movss xmm1, dword [esp + 0x24]
push edx
lea eax, [esp + 0xc8]
movss dword [esp + 0x5c], xmm1
movss xmm1, dword [0x649444]
push eax
movss dword [esp + 0x58], xmm0
movss dword [esp + 0x5c], xmm0
movss dword [esp + 0x64], xmm1
movss dword [esp + 0xb4], xmm0
movss dword [esp + 0xb0], xmm0
movss dword [esp + 0xac], xmm0
movss dword [esp + 0xa8], xmm0
movss dword [esp + 0xa0], xmm0
movss dword [esp + 0x9c], xmm0
movss dword [esp + 0x98], xmm0
movss dword [esp + 0x94], xmm0
movss dword [esp + 0x8c], xmm0
movss dword [esp + 0x88], xmm0
movss dword [esp + 0x84], xmm0
movss dword [esp + 0x80], xmm0
movss dword [esp + 0xb8], xmm1
movss dword [esp + 0xa4], xmm1
movss dword [esp + 0x90], xmm1
movss dword [esp + 0x7c], xmm1
call fcn.00594fc0
lea ecx, [esp + 0xc4]
push ecx
lea edx, [esp + 0x78]
push edx
mov eax, edx
push eax
call fcn.00593dd0
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x54]
push edx
mov eax, edx
push eax
call fcn.005932e0
movss xmm0, dword [esp + 0x10]
addss xmm0, dword [esp + 0x50]
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esp + 0x54]
addss xmm0, dword [esp + 0x14]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x18]
addss xmm0, dword [esp + 0x58]
lea ecx, [esp + 0x64]
movss dword [esp + 0x6c], xmm0
movss xmm0, dword [esp + 0x1c]
addss xmm0, dword [esp + 0x5c]
push ecx
lea edx, [esp + 0x14]
push edx
movss dword [esp + 0x78], xmm0
call fcn.0045ae10
add esp, 8
test eax, eax
je 0x4bd8ae
lea ecx, [esp + 0x50]
push ecx
push eax
call fcn.004f3ba0
add esp, 8
mov esi, dword [esp + 0x44]
add esi, 1
add ebp, 0x48
cmp esi, 0x40
mov dword [esp + 0x44], esi
mov dword [esp + 0x28], ebp
jl 0x4bd090
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf4
ret