Function at 0x4f67e0
Capabilities:
Check for software breakpoints

Disassembly:
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x138]
sub esp, 0x18
dec edx
push ebx
mov dword [eax + 0x138], edx
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x138]
push ebp
xor ebp, ebp
cmp ecx, ebp
push esi
push edi
jge 0x4f6812
mov dword [eax + 0x138], ebp
mov eax, dword [esp + 0x2c]
dec dword [eax + 0x140]
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x140], ebp
jge 0x4f682e
mov dword [eax + 0x140], ebp
mov eax, dword [esp + 0x2c]
dec dword [eax + 0xa0]
mov ecx, dword [esp + 0x2c]
cmp dword [ecx + 0xa0], ebp
jle 0x4f6863
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
mov dword [ecx + 0xd0], edx
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0xd4], eax
mov ecx, dword [esp + 0x2c]
cmp dword [ecx + 0xa0], ebp
jge 0x4f686f
mov dword [ecx + 0xa0], ebp
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov ebx, dword [ecx + 0xd0]
lea edx, [ecx + 0xd0]
mov eax, esi
sub eax, ebx
cmp eax, 0x64
mov dword [esp + 0x14], eax
jle 0x4f689a
mov dword [edx], esi
mov dword [edx + 4], edi
mov ecx, dword [esp + 0x2c]
mov esi, 0xc4
mov ebx, 0xf916c0
mov eax, 0xf916c8
sub ebx, esi
sub eax, esi
mov dword [esp + 0x18], 0
mov byte [ecx + 0xf0], 0
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0x2c]
fld dword [esi + edi]
fcomp dword [0x5befc8]
fnstsw ax
test ah, 0x41
jne 0x4f69fa
fld dword [edi + 0x118]
lea eax, [edi + ebp + 0xa8]
fdivr dword [esi + edi]
fsubr dword [0x5bef9c]
fstp dword [esp + 0x10]
fld dword [edi + ebp + 0xa4]
fsub dword [eax]
fmul dword [esp + 0x10]
fld st(0)
fadd dword [eax]
fstp dword [eax]
fld dword [esp + 0x10]
fmul dword [0x5bf038]
fst dword [esp + 0x10]
fcomp dword [0x5bef9c]
fnstsw ax
test ah, 0x41
jne 0x4f6928
mov dword [esp + 0x10], 0x3f800000
fcomp dword [0x5bef98]
fnstsw ax
test ah, 0x41
jne 0x4f6953
fld dword [esp + 0x10]
fmul dword [0x5bf008]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fsin
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
jmp 0x4f6959
fld dword [0x5bef98]
mov edx, dword [esp + 0x2c]
fstp dword [esi + edx + 0x40]
mov ecx, dword [esp + 0x2c]
fld dword [esi + ecx + 0x14]
fcomp dword [0x5befc8]
fnstsw ax
test ah, 0x41
jne 0x4f6982
fld dword [esp + 0x10]
fmul dword [0x5bf038]
jmp 0x4f6988
fld dword [0x5bef98]
fstp dword [esi + ecx + 0x48]
mov ecx, dword [esp + 0x2c]
fld dword [esi + ecx + 0x48]
fcomp dword [0x5bef9c]
fnstsw ax
test ah, 0x41
jne 0x4f69ad
mov dword [esi + ecx + 0x48], 0x3f800000
mov ecx, dword [esp + 0x2c]
fild dword [esp + 0x14]
fsubr dword [esi + ecx]
fstp dword [esi + ecx]
mov edi, dword [esp + 0x2c]
fld dword [esi + edi]
fcomp dword [0x5bef98]
fnstsw ax
test ah, 5
jp 0x4f69fa
mov dword [esi + edi], 0xbf800000
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + ebp + 0xa4]
mov dword [eax + ebp + 0xa8], ecx
mov edx, dword [esp + 0x2c]
xor eax, eax
mov dword [esi + edx + 0x40], eax
mov ecx, dword [esp + 0x2c]
mov dword [esi + ecx + 0x48], eax
mov edi, dword [esp + 0x2c]
fld dword [esp + 0x18]
fadd dword [edi + ebp + 0xa8]
fstp dword [esp + 0x18]
fld dword [esi + edi + 0x14]
fcomp dword [0x5befc8]
fnstsw ax
test ah, 0x41
jne 0x4f6a92
fld dword [esi + edi + 0x14]
fdiv dword [0x5a5698]
fsubr dword [0x5bef9c]
fld dword [0x5bf0c4]
fmul st(1)
call fcn.00581d24
fld st(0)
fmul st(1)
mov dword [esi + edi + 0x24], eax
mov edx, dword [esp + 0x2c]
fsubr dword [0x5bef9c]
fmul dword [0x5a569c]
fstp dword [esi + edx + 0x1c]
mov eax, dword [esp + 0x2c]
fstp st(0)
fild dword [esp + 0x14]
fsubr dword [esi + eax + 0x14]
fstp dword [esi + eax + 0x14]
mov edi, dword [esp + 0x2c]
fld dword [esi + edi + 0x14]
fcomp dword [0x5bef98]
fnstsw ax
test ah, 5
jp 0x4f6a92
mov dword [esi + edi + 0x14], 0xbf800000
mov eax, dword [esp + 0x2c]
mov dword [esi + eax + 0x24], 0xffffffff
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov ecx, dword [esi + edi + 0x5c]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x34]
push eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esi + ecx + 0x64]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x34]
push eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x34]
mov ecx, dword [ebx + esi]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x34]
push eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + esi]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x34]
push eax
call dword [edx + 0xc]
add esi, 4
add ebp, 0x10
cmp esi, 0xcc
jl 0x4f68c0
fld dword [esp + 0x18]
fcomp dword [0x668b64]
fnstsw ax
test ah, 0x41
jne 0x4f6b12
mov ecx, dword [esp + 0x2c]
mov byte [ecx + 0xf0], 1
mov ecx, dword [esp + 0x2c]
fld dword [ecx + 0x1ec]
fcomp dword [0x5befc8]
fnstsw ax
test ah, 0x41
jne 0x4f6d89
fld dword [ecx + 0x1ec]
fcomp dword [ecx + 0x1f0]
fnstsw ax
test ah, 0x44
jp 0x4f6b66
xor edx, edx
mov dword [ecx + 0x1fc], edx
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x1f8], edx
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x130]
mov dword [eax + 0x64], edx
mov dword [eax + 0x68], edx
mov ecx, dword [esp + 0x2c]
fld dword [ecx + 0x1ec]
fdiv dword [ecx + 0x1f0]
fld st(0)
fmul st(1)
fsubr dword [0x5bef9c]
fstp dword [esp + 0x10]
fstp st(0)
fild dword [esp + 0x14]
fsubr dword [ecx + 0x1ec]
fstp dword [ecx + 0x1ec]
mov ecx, dword [esp + 0x2c]
fld dword [ecx + 0x1ec]
fcomp dword [0x5bef98]
fnstsw ax
test ah, 5
jp 0x4f6bc2
mov dword [ecx + 0x1ec], 0xbf800000
mov edx, dword [esp + 0x2c]
mov byte [edx + 0x200], 0
mov ecx, dword [esp + 0x2c]
fld dword [esp + 0x10]
fcomp dword [0x5bf144]
fnstsw ax
test ah, 0x41
jne 0x4f6bfb
fld dword [esp + 0x10]
fcomp dword [0x5bf110]
fnstsw ax
test ah, 5
jp 0x4f6bfb
cmp dword [ecx + 0x16c], 0xbf800000
jne 0x4f6bfb
mov eax, dword [0x5a5688]
mov dword [ecx + 0x16c], eax
fld dword [esp + 0x10]
fmul dword [0x5bf158]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fsin
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fabs
fstp dword [esp + 0x24]
fld dword [esp + 0x10]
fcomp dword [0x5bf154]
fnstsw ax
test ah, 5
jp 0x4f6c36
fld dword [0x5befd0]
jmp 0x4f6c3c
fld dword [0x5bef9c]
fld dword [esp + 0x24]
fmul st(1)
fcom dword [0x668b60]
fnstsw ax
test ah, 0x41
jne 0x4f6c57
fstp st(0)
fld dword [0x668b60]
fld dword [0x668b5c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x130]
fmul st(1)
fstp dword [edx + 0x60]
mov esi, dword [esp + 0x2c]
mov al, byte [esi + 0x200]
fstp st(0)
test al, al
jne 0x4f6d1e
fcomp dword [0x5bef9c]
fnstsw ax
test ah, 0x44
jp 0x4f6c9f
fld dword [esp + 0x10]
fsub dword [0x5bf150]
fmul dword [0x5bf14c]
jmp 0x4f6ca5
fld dword [0x5bef98]
mov eax, dword [esi + 0x1f4]
fld st(0)
fmul dword [eax*4 + 0x668b54]
call fcn.00581d24
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fadd dword [esi + 0x1f8]
fstp dword [esi + 0x1f8]
mov esi, dword [esp + 0x2c]
fld dword [0x668b50]
fmul st(1)
call fcn.00581d24
fstp st(0)
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fadd dword [esi + 0x1fc]
fstp dword [esi + 0x1fc]
mov esi, dword [esp + 0x2c]
fld dword [esi + 0x1fc]
call fcn.00581d24
fld dword [esi + 0x1f8]
mov edi, dword [esi + 0x130]
mov ebx, eax
call fcn.00581d24
mov dword [edi + 0x64], eax
mov dword [edi + 0x68], ebx
jmp 0x4f6d20
fstp st(0)
fld dword [esp + 0x10]
fmul dword [0x5bf008]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fsin
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fabs
fmul dword [0x5a569c]
call fcn.00581d24
movzx ecx, al
mov eax, dword [esp + 0x2c]
movzx edx, byte [eax + 0x136]
movzx esi, byte [eax + 0x135]
and edx, 0xfffffffe
shl edx, 8
or edx, esi
shl ecx, 0x11
and edx, 0xfffffffe
or ecx, edx
movzx edx, byte [eax + 0x134]
mov eax, dword [eax + 0x130]
shl ecx, 7
shr edx, 1
or ecx, edx
mov dword [eax + 0x58], ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov eax, dword [ecx + 0x1f4]
push edx
push eax
mov ebx, ecx
call fcn.004f8200
test al, al
jne 0x4f6dc6
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x30]
call fcn.004f8030
test al, al
jne 0x4f6dc6
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x1f4]
push edx
call fcn.004f8140
mov eax, dword [esp + 0x2c]
mov cl, byte [eax + 0x200]
test cl, cl
je 0x4f6dee
mov edi, dword [eax + 0x130]
lea esi, [eax + 0x202]
add edi, 0x18
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + 0x130]
mov edx, dword [eax]
push ecx
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, eax
call dword [edx + 0xc]
mov esi, dword [esp + 0x2c]
fld dword [esi + 0x16c]
fcomp dword [0x5befc8]
fnstsw ax
test ah, 0x41
jne 0x4f6eb7
fld dword [esi + 0x16c]
fdiv dword [0x5a5688]
fsubr dword [0x5bef9c]
fld dword [0x5bf148]
fmul st(1)
call fcn.00581d24
fld st(0)
fmul st(1)
mov dword [esi + 0x164], eax
mov edx, dword [esp + 0x2c]
fsubr dword [0x5bef9c]
fmul dword [0x5a569c]
fstp dword [edx + 0x168]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x130]
fstp st(0)
add ecx, 0x18
fild dword [esp + 0x14]
fsubr dword [eax + 0x16c]
fstp dword [eax + 0x16c]
mov esi, dword [esp + 0x2c]
fld dword [esi + 0x16c]
fcomp dword [0x5bef98]
fnstsw ax
test ah, 5
jnp 0x4f6e9b
cmp word [ecx], 0
jne 0x4f6eb7
mov dword [esi + 0x16c], 0xbf800000
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x164], 0xffffffff
mov esi, dword [esp + 0x2c]
mov al, byte [esi + 0xf0]
test al, al
je 0x4f6ed5
fild dword [esp + 0x14]
fadd dword [esi + 0xf8]
fstp dword [esi + 0xf8]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
mov dword [esi + 0xd0], edx
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
mov dword [ecx + 0xd4], eax
pop ebx
add esp, 0x18
ret 0xc