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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
cmp dword [0xeebb30], 8
je 0x70086e
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
call fcn.00639f30
add esp, 4
test eax, eax
jne case.0x6fe332.7
mov cl, byte [esi + 0xd9]
mov edi, dword [0x91cfa4]
test cl, cl
sete al
cmp word [edi + 0xc], 1
lea eax, [eax + eax - 1]
mov dword [ebp - 0x18], eax
jl 0x70085a
mov ebx, dword [0x91d3f0]
fld dword [ebx + 0x434]
call fcn.0043bd30
test eax, eax
jg 0x6fe2b4
neg eax
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
fcomp dword [0x8d3188]
fnstsw ax
test ah, 0x41
je 0x70085a
cmp byte [esi + 0xda], 0x9d
je 0x6fe321
cmp dword [ebx + 0x58], 0x3000
jle 0x6fe321
fld dword [ebx + 0x10]
call fcn.0043bd30
test eax, eax
jg 0x6fe2eb
neg eax
cmp eax, 0x1000
jge 0x6fe321
xor ecx, ecx
mov cx, word [esi + 0x1ac]
xor edx, edx
mov dx, word [ebx + 0x60]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x10
jbe 0x70085a
mov edi, dword [0x91cfa4]
mov ebx, dword [0x91d3f0]
movzx eax, word [ebx + 0x8c]
dec eax
cmp eax, 0xa
ja case.0x6fe332.5
jmp dword [eax*4 + 0x700874]
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb664c]
shr eax, 7
and eax, 0x7f
push 0x14
push eax
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov eax, 0x13
sub eax, edx
push eax
call fcn.00678f20
mov edi, dword [0x91cfa4]
movsx ecx, word [edi + 0xc]
add esp, 0xc
cmp ecx, eax
jge case.0x6fe332.5
pop edi
mov dword [esi + 0x1b0], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [esi + 0xd8]
mov cl, byte [eax + edi + 0x35]
test cl, cl
jne 0x6fe3cc
cmp dword [esi + 0x1a0], 0x1400
jg 0x700861
movzx edx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb664c]
shr edx, 7
and edx, 0x7f
push 0x14
push edx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, 0x13
sub ecx, edx
push ecx
call fcn.00678f20
xor edx, edx
mov dx, word [esi + 0xee]
mov ebx, eax
mov eax, dword [0x91d3f0]
add dx, 0x8000
xor ecx, ecx
mov cx, word [eax + 0x60]
push edx
push ecx
call fcn.006442a0
mov edi, dword [0x91cfa4]
movzx edx, ax
movsx eax, word [edi + 0xc]
shr edx, 4
sub ebx, edx
add esp, 0x14
cmp eax, ebx
jge case.0x6fe332.5
pop edi
mov dword [esi + 0x1b0], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov cl, byte [esi]
cmp cl, byte [edi + 0xf]
je 0x700861
xor edx, edx
mov dx, word [esi + 0xee]
xor eax, eax
mov ax, word [ebx + 0x60]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jb 0x700861
mov edi, dword [0x91cfa4]
cmp word [esi + 0xf4], 0
je 0x6fe50a
cmp byte [edi + 0x45], 0x15
jne 0x6fe50a
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb664c]
shr ecx, 7
and ecx, 0x7f
push 0x14
push ecx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, 0x13
sub ecx, edx
push ecx
call fcn.00678f20
mov edi, dword [0x91cfa4]
movsx edx, word [edi + 0xc]
add esp, 0xc
cmp edx, eax
jge case.0x6fe332.5
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb664c]
shr eax, 7
and eax, 0x7f
push 0x14
push eax
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov eax, 0x2f
sub eax, edx
push eax
call fcn.00678f20
mov edi, dword [0x91cfa4]
movsx ecx, word [edi + 0xc]
add esp, 0xc
cmp ecx, eax
jge case.0x6fe332.5
push esi
call fcn.0064a410
add esp, 4
test eax, eax
jne 0x6fe63c
pop edi
mov dword [esi + 0x1b0], eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dl, byte [esi]
cmp dl, byte [edi + 0xf]
jne case.0x6fe332.5
pop edi
mov dword [esi + 0x1b0], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esi]
cmp al, byte [edi + 0xf]
je case.0x6fe332.5
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb664c]
shr ecx, 7
and ecx, 0x7f
push 0x14
push ecx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, 0x1f
sub ecx, edx
push ecx
call fcn.00678f20
mov edi, dword [0x91cfa4]
movsx edx, word [edi + 0xc]
add esp, 0xc
cmp edx, eax
jge case.0x6fe332.5
pop edi
mov dword [esi + 0x1b0], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x1a0], 0x200
jge case.0x6fe332.7
mov dword [esi + 0x1b0], 0
mov edi, dword [0x91cfa4]
mov eax, dword [esi + 0x1a0]
mov ebx, eax
imul ebx, eax
mov dword [ebp - 0x20], ebx
call fcn.006fc970
test eax, eax
je 0x6ff955
push esi
call fcn.00674be0
fild dword [ebp - 0x18]
add esp, 4
fst dword [ebp - 8]
fmul dword [esi + 0x2c4]
fcomp dword [0x8cba44]
fnstsw ax
test ah, 0x41
je 0x6fe6f0
mov eax, dword [0x91d3f0]
cmp word [eax + 0x8c], 4
jne 0x6fe6a0
cmp word [esi + 0xf4], 0
je 0x6fe6a0
cmp ebx, 0x2400000
jb 0x6fe6f0
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov edx, dword [eax + 0xeb6620]
shr edx, 0x1a
mov ecx, 0xffffff6c
sub ecx, edx
imul ecx, ecx, 0x288
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x34], edx
mov edi, 3
fild dword [ebp - 0x34]
jmp 0x6fe73e
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea ecx, [eax + eax*4]
shl ecx, 7
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x34], edx
mov edi, 2
fild dword [ebp - 0x34]
mov ecx, dword [0x91cfa4]
fstp dword [ecx + 0x3c]
mov eax, dword [esi + 0x120]
lea ecx, [eax + eax*8]
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x91d3f0]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ebx, edx
xor edx, edx
mov dx, word [ecx + 0x64]
xor eax, eax
mov ax, word [esi + 0x1ac]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja 0x6fe7da
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov edx, dword [eax + 0xeb6620]
shr edx, 0x1a
mov ecx, 0xffffff6c
sub ecx, edx
imul ecx, ecx, 0x1b0
mov eax, 0xb60b60b7
imul ecx
add edx, ecx
mov ecx, dword [0x91cfa4]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x34], edx
fild dword [ebp - 0x34]
fstp dword [ecx + 0x3c]
push esi
push esi
call fcn.00647ac0
add esp, 8
test eax, eax
jne 0x6fe80e
mov edx, dword [0x91cfa4]
fld dword [edx + 0x3c]
call fcn.0043bd30
push eax
push 0x100
push edi
push ebx
push esi
push esi
call fcn.0067af20
push esi
call fcn.00647770
add esp, 0x1c
mov eax, dword [0x91d3f0]
fld dword [ebp - 8]
mov ecx, dword [eax + 0x140c]
mov edx, dword [eax + 0x1414]
movzx eax, byte [esi + 0xd8]
mov dword [ebp - 0xc], ecx
movzx ecx, byte [esi + 0xd7]
fmul dword [ebp - 0xc]
lea eax, [eax + eax*4]
mov dword [ebp - 4], edx
lea edx, [ecx + eax*8]
fstp dword [ebp - 0x14]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
lea ecx, [eax + eax*4]
shl ecx, 2
mov dword [ebp - 0x34], ecx
add esp, 8
fild dword [ebp - 0x34]
fsub dword [0x8d367c]
fcomp dword [ebp - 0x14]
fnstsw ax
test ah, 0x41
jne 0x6fe8e2
fld dword [ebp - 4]
call fcn.0043bd30
test eax, eax
jg 0x6fe889
neg eax
mov dword [ebp - 0x2c], eax
movzx eax, byte [esi + 0xd8]
fild dword [ebp - 0x2c]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
fstp dword [ebp - 0x30]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb663c]
shr edx, 0xe
and edx, 0x7f
push 0x28
push edx
call fcn.00614f40
shl eax, 1
mov dword [ebp - 0x34], eax
add esp, 8
fild dword [ebp - 0x34]
mov dword [ebp - 0x10], 1
fadd dword [0x8d2d40]
fcomp dword [ebp - 0x30]
fnstsw ax
test ah, 0x41
je 0x6fe8e9
mov dword [ebp - 0x10], 0
mov eax, dword [0x91d3f0]
cmp byte [eax + 0x70], 0xdf
jae case.0x6fe332.7
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov eax, dword [esi + 0x2cc]
push ecx
mov ecx, dword [esi + 0x2c4]
push edx
push eax
push ecx
call fcn.00644340
fsqrt
add esp, 0x10
call fcn.0043bd30
mov ebx, dword [0x91d3f0]
cmp word [ebx + 0x8c], 4
mov edi, eax
mov dword [ebp - 0x1c], edi
je 0x6feac7
mov al, byte [esi + 0x10d]
test al, al
jne 0x6feac7
mov eax, dword [esi + 0x1a8]
test eax, eax
je 0x6feac7
cmp edi, 0x200
jb 0x6fe993
fld dword [ebp - 0x14]
fcomp dword [0x8d3dac]
fnstsw ax
test ah, 5
jp 0x6feac7
fld dword [ebp - 4]
call fcn.0043bd30
test eax, eax
jg 0x6fe97c
neg eax
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
fcomp dword [0x8cdfc0]
fnstsw ax
test ah, 5
jp 0x6feac7
cmp edi, 0x100
mov byte [esi + 0x110], 0
mov dword [esi + 0x1b0], 0x800
jae 0x6fea00
mov ecx, dword [0x91cfa4]
cmp word [ecx + 0xc], 0x20
jl 0x6fea00
mov al, byte [esi + 0xda]
cmp al, 0x9d
je 0x6fe9c7
cmp al, 0x82
jne 0x6fea00
movzx edx, byte [esi + 0xd9]
mov al, byte [ecx + edx*2 + 0x1c]
cmp al, 0xff
je 0x6fe9e3
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x6fe9e8
mov edx, 1
imul edx, edx, 0x4c0
push 1
add edx, 0xd92230
push edx
push esi
call fcn.006fcc40
add esp, 0xc
mov eax, dword [0x91d3f0]
movzx edx, byte [eax + 0x70]
mov ecx, dword [eax + edx*4 + 0x1074]
test ecx, ecx
jg 0x6fea16
neg ecx
cmp ecx, dword [eax + edx*4 + 0xb4]
jle case.0x6fe332.7
cmp dword [eax + 0x58], 0x1800
jle case.0x6fe332.7
cmp dword [esi + 0x1a0], 0x140
jl 0x6fea64
xor edx, edx
mov dx, word [eax + 0x60]
xor eax, eax
mov ax, word [esi + 0x1ac]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x10
ja case.0x6fe332.7
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
push 0x100
lea esi, [eax + 0x140c]
push ecx
call fcn.0063c810
mov edx, dword [0x91d3f0]
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
push 0x100
fsubr dword [esi]
fstp dword [edx + 0x140c]
mov eax, dword [0x91d3f0]
lea esi, [eax + 0x1414]
movzx eax, word [eax + 0x60]
push eax
call fcn.0063c7f0
mov ecx, dword [0x91d3f0]
mov dword [ebp - 0x34], eax
add esp, 0x10
fild dword [ebp - 0x34]
pop edi
fsubr dword [esi]
pop esi
pop ebx
fstp dword [ecx + 0x1414]
mov esp, ebp
pop ebp
ret
fld dword [ebx + 0x2c]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x41
jne 0x6feaf6
mov ecx, dword [0x91cfa4]
fld dword [ebx + 0x7d4]
fcomp dword [ecx + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x6feaf6
mov edx, dword [ebx + 0x7d4]
mov dword [ecx + 0x3c], edx
mov eax, dword [0x91cfa4]
fld dword [eax + 0x3c]
push 0
call fcn.0043bd30
push eax
call fcn.0062ec20
xor ecx, ecx
mov cl, byte [esi]
mov ebx, eax
mov dword [ebp - 0x30], ebx
push ecx
call fcn.0063dd40
add esp, 0xc
cmp al, 0xff
je 0x6feb3b
xor edx, edx
mov dl, byte [esi]
push edx
call fcn.0063dd40
movzx eax, al
cdq
mov ecx, 0x17
add esp, 4
idiv ecx
jmp 0x6feb40
mov edx, 1
mov eax, dword [0x91d3f0]
imul edx, edx, 0x4c0
mov ecx, dword [eax + 0x1414]
mov eax, dword [eax + 0x140c]
push 0
push 1
push ecx
push eax
add edx, 0xd92230
push edx
call fcn.0065ad30
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + 0x1414]
mov edx, dword [eax + 0x140c]
mov eax, dword [esi + 0x2cc]
push ecx
mov ecx, dword [esi + 0x2c4]
push edx
push eax
push ecx
call fcn.00644340
fsqrt
add esp, 0x24
call fcn.0043bd30
mov edx, dword [0x91cfa8]
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
mov eax, dword [esi + 0x120]
lea ecx, [eax + eax*8]
mov eax, 0x66666667
fmul dword [edx + 0x48]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x34], edx
fidiv dword [ebp - 0x34]
call fcn.0043bd30
mov edi, eax
cmp byte [esi + 0xda], 0x9d
je 0x6fec25
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, 8
sub ecx, edx
add esp, 8
add edi, ecx
mov al, byte [esi + 0x2b5]
cmp al, 2
jne 0x6fec34
sub edi, 8
jmp 0x6fec3b
test al, al
jne 0x6fec3b
add edi, 8
movzx edx, byte [esi + 0xd8]
mov eax, dword [0x91cfa4]
cmp byte [edx + eax + 0x35], 1
jne 0x6fed68
fld dword [ebp - 0x14]
fcomp dword [0x8d3c3c]
fnstsw ax
test ah, 5
jp 0x6fed68
cmp edi, ebx
jg 0x6fed68
fld dword [ebp - 0xc]
mov byte [esi + 0x110], 0
mov dword [esi + 0x1b0], 0x800
mov ecx, dword [0x91d3f0]
fstp dword [ecx + 0x140c]
mov edx, dword [0x91d3f0]
fld dword [ebp - 4]
fstp dword [edx + 0x1414]
mov eax, dword [0x91d3f0]
mov byte [eax + 0x78], 1
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0x1074]
test ecx, ecx
jg 0x6fecb8
neg ecx
cmp ecx, dword [eax + ebx*4 + 0xb4]
jle case.0x6fe332.7
cmp dword [eax + 0x58], 0x1800
jle case.0x6fe332.7
cmp dword [esi + 0x1a0], 0x140
jl 0x6fed06
xor ecx, ecx
mov cx, word [eax + 0x60]
xor edx, edx
mov dx, word [esi + 0x1ac]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x10
ja case.0x6fe332.7
mov eax, dword [0x91d3f0]
lea esi, [eax + 0x140c]
movzx eax, word [eax + 0x60]
push 0x100
push eax
call fcn.0063c810
mov ecx, dword [0x91d3f0]
mov dword [ebp - 0x34], eax
xor edx, edx
fild dword [ebp - 0x34]
push 0x100
fsubr dword [esi]
fstp dword [ecx + 0x140c]
mov eax, dword [0x91d3f0]
mov dx, word [eax + 0x60]
lea esi, [eax + 0x1414]
push edx
call fcn.0063c7f0
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
mov eax, dword [0x91d3f0]
add esp, 0x10
pop edi
fsubr dword [esi]
pop esi
pop ebx
fstp dword [eax + 0x1414]
mov esp, ebp
pop ebp
ret
mov edi, dword [0x91d3f0]
cmp word [edi + 0x8c], 4
jne 0x6fee5d
cmp word [esi + 0xf4], 0
je 0x6fee5d
mov eax, dword [esi + 0x1a8]
test eax, eax
je 0x6fee5d
fld dword [edi + 0x434]
call fcn.0043bd30
test eax, eax
jg 0x6feda9
neg eax
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
fcomp dword [0x8cb1d8]
fnstsw ax
test ah, 0x41
je 0x6fedc9
cmp dword [ebp - 0x20], 0x2400000
jae 0x6fee5d
fld dword [ebp - 4]
call fcn.0043bd30
fld dword [ebp - 0xc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x10
cmp eax, 0x9000
jae 0x6fee28
xor ecx, ecx
mov cx, word [esi + 0x1ac]
xor edx, edx
mov dx, word [esi + 0xee]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x40
jae case.0x6fe332.7
mov eax, dword [0x91d3f0]
fld dword [ebp - 0xc]
fstp dword [eax + 0x140c]
mov ecx, dword [0x91d3f0]
fld dword [ebp - 4]
fstp dword [ecx + 0x1414]
pop edi
mov byte [esi + 0x110], 0
mov dword [esi + 0x1b0], 0x800
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld dword [edi + 0x1414]
call fcn.0043bd30
fld dword [edi + 0x140c]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
movzx edx, byte [esi + 0xd9]
mov eax, dword [0x91cfa4]
xor edx, 1
mov al, byte [eax + edx*2 + 0x1c]
add esp, 0x10
cmp al, 0xff
je 0x6feeb9
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x6feebe
mov edx, 1
imul edx, edx, 0x4c0
add edx, 0xd92230
mov edi, edx
push esi
push edi
call fcn.00647ac0
add esp, 8
test eax, eax
jne 0x6fef09
mov edx, dword [edi + 0x120]
push 0xfffffd40
push 0x300
push eax
push edx
push esi
push edi
call fcn.0067af20
mov al, byte [edi + 0xda]
add esp, 0x18
cmp al, 7
jne 0x6fef09
push edi
call fcn.00647770
add esp, 4
movzx eax, byte [esi + 0xd9]
mov ecx, dword [0x91cfa4]
xor eax, 1
mov al, byte [ecx + eax*2 + 0x20]
cmp byte [edi], al
je 0x6ff064
cmp al, 0xff
mov ecx, dword [0x91d3f0]
mov edx, dword [ecx + 0x140c]
mov ecx, dword [ecx + 0x1414]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], ecx
je 0x6fef4e
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x6fef53
mov edx, 1
imul edx, edx, 0x4c0
add edx, 0xd92230
mov edi, edx
push esi
push edi
call fcn.00647ac0
add esp, 8
test eax, eax
jne 0x6fef9e
mov edx, dword [edi + 0x120]
push 0xfffffd40
push 0x300
push eax
push edx
push esi
push edi
call fcn.0067af20
mov al, byte [edi + 0xda]
add esp, 0x18
cmp al, 7
jne 0x6fef9e
push edi
call fcn.00647770
add esp, 4
mov ebx, dword [0x91d3f0]
fld dword [ebx + 0x1414]
call fcn.0043bd30
fld dword [ebx + 0x140c]
push eax
call fcn.0043bd30
fld dword [ebx + 0x18]
push eax
call fcn.0043bd30
fld dword [ebx + 0x10]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
fld dword [ebp - 0x28]
mov ebx, eax
call fcn.0043bd30
fld dword [ebp - 0x2c]
push eax
call fcn.0043bd30
push eax
mov eax, dword [0x91d3f0]
fld dword [eax + 0x18]
call fcn.0043bd30
mov ecx, dword [0x91d3f0]
fld dword [ecx + 0x10]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x20
cmp eax, ebx
jae 0x6ff064
movzx edx, byte [esi + 0xd9]
mov eax, dword [0x91cfa4]
xor edx, 1
mov al, byte [eax + edx*2 + 0x1c]
cmp al, 0xff
je 0x6ff034
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x6ff039
mov edx, 1
fld dword [ebp - 0x2c]
imul edx, edx, 0x4c0
add edx, 0xd92230
mov edi, edx
mov edx, dword [0x91d3f0]
fstp dword [edx + 0x140c]
mov eax, dword [0x91d3f0]
fld dword [ebp - 0x28]
fstp dword [eax + 0x1414]
mov al, byte [esi + 0xd9]
mov ebx, dword [0x91d3f0]
xor ecx, ecx
test al, al
sete cl
lea ecx, [ecx + ecx - 1]
mov dword [ebp - 0x34], ecx
fild dword [ebp - 0x34]
fmul dword [ebx + 0x140c]
fcomp dword [0x8cb9a4]
fnstsw ax
test ah, 0x41
jne 0x6ff128
fld dword [ebx + 0x1414]
call fcn.0043bd30
fld dword [ebx + 0x140c]
push eax
call fcn.0043bd30
fld dword [ebx + 0x18]
push eax
call fcn.0043bd30
fld dword [ebx + 0x10]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
fld dword [ebp - 4]
mov ebx, eax
call fcn.0043bd30
fld dword [ebp - 0xc]
push eax
call fcn.0043bd30
mov edx, dword [0x91d3f0]
fld dword [edx + 0x18]
push eax
call fcn.0043bd30
push eax
mov eax, dword [0x91d3f0]
fld dword [eax + 0x10]
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x20
cmp ebx, eax
jbe 0x6ff122
mov ecx, dword [0x91d3f0]
fld dword [ebp - 0xc]
fstp dword [ecx + 0x140c]
mov edx, dword [0x91d3f0]
fld dword [ebp - 4]
fstp dword [edx + 0x1414]
mov ebx, dword [0x91d3f0]
mov eax, dword [ebx + 0x140c]
mov ecx, dword [0x91cfa4]
mov dword [ecx + 0x40c], eax
mov edx, dword [0x91d3f0]
mov eax, dword [edx + 0x1414]
mov ecx, dword [0x91cfa4]
mov dword [ecx + 0x410], eax
mov eax, dword [0x91d3f0]
mov edx, dword [eax + 0x1414]
mov eax, dword [eax + 0x140c]
mov ecx, dword [edi + 0x2cc]
push edx
mov edx, dword [edi + 0x2c4]
push eax
push ecx
push edx
call fcn.00644340
fsqrt
call fcn.0043bd30
mov ebx, eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + 0x1414]
mov edx, dword [eax + 0x140c]
push ecx
mov ecx, dword [eax + 0x18]
push edx
mov edx, dword [eax + 0x10]
push ecx
push edx
mov dword [ebp - 0x28], ebx
call fcn.00644340
fsqrt
add esp, 0x20
call fcn.0043bd30
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x1c], ebx
jbe 0x6ff247
mov ebx, dword [0x91d3f0]
fld dword [ebx + 0x1414]
call fcn.0043bd30
fld dword [ebx + 0x140c]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x10
cmp eax, 0x900000
jb case.0x6fe332.7
cmp word [esi + 0xf4], 0
jne 0x6ff236
mov ecx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edi + 0xee]
xor edx, edx
mov dx, word [ecx + 0x60]
push eax
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja case.0x6fe332.7
push edi
push esi
call fcn.006fc090
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x120]
imul eax, dword [ebp - 0x30]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add eax, 0x200
cmp ebx, eax
jae 0x6ff37d
movzx eax, byte [esi + 0xd9]
mov ecx, dword [0x91cfa4]
mov al, byte [ecx + eax*2 + 0x1c]
cmp al, 0xff
je 0x6ff28c
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x6ff291
mov edx, 1
imul edx, edx, 0x4c0
add edx, 0xd92230
mov ebx, edx
mov edx, dword [0x91d3f0]
fld dword [edx + 0x1414]
call fcn.0043bd30
push eax
mov eax, dword [0x91d3f0]
fld dword [eax + 0x140c]
call fcn.0043bd30
fld dword [ebx + 0x2cc]
push eax
call fcn.0043bd30
fld dword [ebx + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
mov ecx, dword [0x91d3f0]
fld dword [ecx + 0x1414]
mov ebx, eax
call fcn.0043bd30
mov edx, dword [0x91d3f0]
fld dword [edx + 0x140c]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add eax, 0x10000
add esp, 0x20
cmp eax, ebx
ja case.0x6fe332.7
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
add esp, 8
cmp eax, 0x32
jl case.0x6fe332.7
push edi
push esi
call fcn.006fc090
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, byte [esi + 0xd9]
mov edx, dword [0x91cfa4]
mov al, byte [edx + ecx*2 + 0x1c]
cmp al, 0xff
je 0x6ff39f
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x6ff3a4
mov edx, 1
imul edx, edx, 0x4c0
add edx, 0xd92230
mov ebx, edx
push esi
push ebx
call fcn.00647ac0
add esp, 8
test eax, eax
je 0x6ff55f
mov edx, dword [0x91d3f0]
fld dword [edx + 0x1414]
call fcn.0043bd30
push eax
mov eax, dword [0x91d3f0]
fld dword [eax + 0x140c]
call fcn.0043bd30
fld dword [ebx + 0x2cc]
push eax
call fcn.0043bd30
fld dword [ebx + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
mov ecx, dword [0x91d3f0]
fld dword [ecx + 0x1414]
call fcn.0043bd30
mov edx, dword [0x91d3f0]
fld dword [edx + 0x140c]
push eax
call fcn.0043bd30
push eax
mov eax, dword [0x91d3f0]
fld dword [eax + 0x18]
call fcn.0043bd30
mov ecx, dword [0x91d3f0]
fld dword [ecx + 0x10]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
fld dword [ebp - 8]
mov edx, dword [0x91d3f0]
fmul dword [edx + 0x140c]
mov dword [ebp - 0x24], eax
add esp, 0x20
fcomp dword [0x8cb644]
fnstsw ax
test ah, 1
je 0x6ff492
mov eax, edx
fld dword [eax + 0x1414]
call fcn.0043bd30
test eax, eax
jg 0x6ff47f
neg eax
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
fcomp dword [0x8d2d40]
fnstsw ax
test ah, 0x41
jne 0x6ff50f
mov ecx, dword [0x91d3f0]
fld dword [ecx + 0x1414]
call fcn.0043bd30
mov edx, dword [0x91d3f0]
fld dword [edx + 0x140c]
push eax
call fcn.0043bd30
fld dword [ebx + 0x2cc]
push eax
call fcn.0043bd30
fld dword [ebx + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
fld dword [ebp - 4]
mov ebx, eax
call fcn.0043bd30
fld dword [ebp - 0xc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x20
cmp eax, ebx
ja case.0x6fe332.7
fld dword [ebp - 8]
mov ecx, dword [0x91d3f0]
fmul dword [ecx + 0x140c]
fcomp dword [0x8cba44]
fnstsw ax
test ah, 0x41
je case.0x6fe332.7
fld dword [ecx + 0x1414]
call fcn.0043bd30
test eax, eax
jg 0x6ff540
neg eax
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
fcomp dword [0x8cb958]
fnstsw ax
test ah, 0x41
jne 0x6ff55f
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x24]
ja case.0x6fe332.7
push esi
push edi
call fcn.00647ac0
add esp, 8
test eax, eax
jne 0x6ff59c
mov ecx, dword [edi + 0x120]
push 0xfffffd40
push 0x300
push eax
push ecx
push esi
push edi
call fcn.0067af20
mov al, byte [edi + 0xda]
add esp, 0x18
cmp al, 7
jne 0x6ff59c
push edi
call fcn.00647770
add esp, 4
fld dword [ebp - 0x14]
fcomp dword [0x8d3da8]
fnstsw ax
test ah, 5
jp 0x6ff831
fld dword [ebp - 4]
call fcn.0043bd30
test eax, eax
jg 0x6ff5be
neg eax
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
fcomp dword [0x8cb958]
fnstsw ax
test ah, 5
jp 0x6ff831
mov eax, dword [0x91d3f0]
xor edx, edx
mov dx, word [esi + 0xee]
xor ecx, ecx
mov cx, word [eax + 0x60]
push edx
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x50
jb 0x6ff831
mov ecx, dword [0x91d3f0]
cmp byte [ecx + 0x70], 0xdf
jae 0x6ff623
fld dword [ebp - 8]
fmul dword [ecx + 0x140c]
fcomp dword [0x8cdf90]
fnstsw ax
test ah, 5
jp 0x6ff837
mov edi, dword [0x91cfa4]
mov al, byte [edi + 0x19]
test al, al
jne 0x6ff682
cmp word [esi + 0xf4], 0
jne 0x6ff682
push esi
call fcn.006c5da0
mov edi, dword [0x91cfa4]
add esp, 4
test eax, eax
jne 0x6ff682
mov ecx, dword [edi + 0xc8]
mov edx, ecx
imul edx, dword [ebp - 0x18]
mov dword [ebp - 0x34], edx
fild dword [ebp - 0x34]
fcomp dword [0x8cb9a4]
fnstsw ax
test ah, 5
jp 0x6ff682
cmp ecx, 0x7fff
je 0x6ff682
pop edi
mov byte [esi + 0x10d], 0x10
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x1a8]
test eax, eax
je 0x6ff6e0
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov ecx, dword [edx + 0xeb6620]
shr ecx, 0x1a
add ecx, 0x94
imul ecx, ecx, 0x288
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, 0x40
sub ecx, edx
mov dword [ebp - 0x34], ecx
fild dword [ebp - 0x34]
fstp dword [edi + 0x3c]
jmp 0x6ff6e7
mov dword [edi + 0x3c], 0xc3800000
push esi
push esi
call fcn.00647ac0
add esp, 8
test eax, eax
mov ebx, 0x800
je 0x6ff70a
mov edx, dword [0x91d3f0]
cmp byte [edx + 0x78], 2
je 0x6ff78f
cmp dword [esi + 0x1a0], ebx
jge 0x6ff74b
push esi
call fcn.00674a60
add esp, 4
cmp eax, 0x900000
jle 0x6ff74b
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
xor edx, edx
mov dx, word [esi + 0x1ac]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x60
mov edi, 9
jae 0x6ff750
mov edi, 8
mov eax, dword [0x91cfa4]
fld dword [eax + 0x3c]
call fcn.0043bd30
push eax
mov eax, dword [esi + 0x120]
lea ecx, [eax + eax*8]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
push 0x80
shr ecx, 0x1f
push edi
add edx, ecx
push edx
push esi
push esi
call fcn.0067af20
push esi
call fcn.00647770
add esp, 0x1c
push esi
call fcn.006c5da0
add esp, 4
test eax, eax
jne 0x6ff813
mov al, byte [esi + 0xd9]
xor edx, edx
test al, al
mov eax, dword [0x91d3f0]
sete dl
lea edx, [edx + edx - 1]
mov dword [ebp - 0x34], edx
fild dword [ebp - 0x34]
fmul dword [eax + 0x140c]
fcomp dword [0x8cb930]
fnstsw ax
test ah, 5
jp 0x6ff813
mov dword [esi + 0x1b0], ebx
mov byte [esi + 0x10d], 0x10
mov byte [esi + 0x110], 0
mov ecx, dword [0x91d3f0]
mov byte [ecx + 0x78], 3
fild dword [esi + 0x194]
mov edx, dword [0x91d3f0]
pop edi
fstp dword [edx + 0x140c]
mov eax, dword [0x91d3f0]
fild dword [esi + 0x198]
pop esi
pop ebx
fstp dword [eax + 0x1414]
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x1b0], ebx
mov byte [esi + 0x110], 0
mov ecx, dword [0x91d3f0]
pop edi
pop esi
mov byte [ecx + 0x78], 2
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x91d3f0]
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x6ff845
add dword [ebp - 0x1c], 0x400
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x28], edx
jbe 0x6ff94d
push esi
call fcn.006c5da0
mov ebx, dword [0x91d3f0]
add esp, 4
test eax, eax
jne 0x6ff892
mov cl, byte [esi + 0xd9]
xor eax, eax
test cl, cl
sete al
lea eax, [eax + eax - 1]
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
fmul dword [ebx + 0x140c]
fcomp dword [0x8cb930]
fnstsw ax
test ah, 5
jnp 0x6ff674
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x6ff924
cmp dword [esi + 0x1a0], 0x1400
jg 0x6ff236
fld dword [ebx + 0x18]
call fcn.0043bd30
fld dword [ebx + 0x10]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
fld dword [edi + 0x2cc]
mov ebx, eax
call fcn.0043bd30
fld dword [edi + 0x2c4]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x20
cmp ebx, eax
ja 0x6ff236
mov ebx, dword [0x91d3f0]
mov ecx, dword [ebp - 0xc]
fld dword [ebp - 4]
mov dword [ebx + 0x140c], ecx
mov edx, dword [0x91d3f0]
pop edi
fstp dword [edx + 0x1414]
mov dword [esi + 0x1b0], 0x800
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [0x91cfa4]
jmp 0x6ff95b
mov ecx, dword [0x91d3f0]
fild dword [ebp - 0x18]
fst dword [ebp - 8]
fmul dword [esi + 0x2c4]
fcomp dword [0x8cba44]
fnstsw ax
test ah, 0x41
je 0x6ffa46
cmp word [ecx + 0x8c], 4
jne 0x6ff990
cmp word [esi + 0xf4], 0
jne 0x6ffa46
fld dword [ecx + 0x2c]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x41
movzx eax, byte [esi + 0xd8]
jne 0x6ff9f5
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb6620]
shr eax, 0x1a
mov ecx, 0xffffff6c
sub ecx, eax
imul ecx, ecx, 0x288
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x2c], 3
fild dword [ebp - 0x34]
jmp 0x6ffa96
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov ecx, dword [ecx + 0xeb6620]
shr ecx, 0x1a
add ecx, 0x94
imul ecx, ecx, 0x288
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, 0xffffffd0
sub ecx, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], 3
fild dword [ebp - 0x34]
jmp 0x6ffa96
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea ecx, [eax + eax*4]
shl ecx, 7
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x2c], 2
fild dword [ebp - 0x34]
fstp dword [edi + 0x3c]
mov al, byte [esi + 0xda]
cmp al, 0x89
je 0x6ffac1
mov ecx, dword [esi + 0x120]
imul ecx, ecx, 0x5f
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov edi, edx
jmp 0x6ffad5
movzx eax, byte [esi + 0x124]
lea edx, [eax + eax*2]
shl edx, 2
mov edi, 0x1900
sub edi, edx
mov eax, dword [esi + 0x1a8]
test eax, eax
je 0x6ffb08
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
xor edx, edx
mov dx, word [esi + 0xec]
push ecx
push edx
call fcn.006442a0
push eax
push esi
call fcn.006790f0
add esp, 0x10
mov ebx, eax
jmp 0x6ffb0d
mov ebx, 0x40
cmp dword [esi + 0x1a0], 0x180
jl 0x6ffb27
push esi
push esi
call fcn.00647ac0
add esp, 8
test eax, eax
jne 0x6ffb4b
mov eax, dword [0x91cfa4]
fld dword [eax + 0x3c]
call fcn.0043bd30
mov ecx, dword [ebp - 0x2c]
push eax
push ebx
push ecx
push edi
push esi
push esi
call fcn.0067af20
push esi
call fcn.00647770
add esp, 0x1c
mov eax, dword [0x91d3f0]
mov edx, dword [eax + 0x140c]
mov eax, dword [eax + 0x1414]
xor ecx, ecx
mov cl, byte [esi]
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
push ecx
call fcn.0063dd40
add esp, 4
cmp al, 0xff
je 0x6ffb8d
xor edx, edx
mov dl, byte [esi]
push edx
call fcn.0063dd40
movzx eax, al
cdq
mov ecx, 0x17
add esp, 4
idiv ecx
jmp 0x6ffb92
mov edx, 1
mov eax, dword [0x91d3f0]
imul edx, edx, 0x4c0
mov ecx, dword [eax + 0x1414]
mov eax, dword [eax + 0x140c]
push 0
push 1
push ecx
push eax
add edx, 0xd92230
push edx
call fcn.0065ad30
movzx eax, byte [esi + 0xd8]
fld dword [ebp - 8]
movzx edx, byte [esi + 0xd7]
fmul dword [ebp - 0xc]
lea ecx, [eax + eax*4]
fstp dword [ebp - 0x14]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
lea edx, [eax + eax*4]
shl edx, 2
mov dword [ebp - 0x34], edx
add esp, 0x1c
fild dword [ebp - 0x34]
fsub dword [0x8d367c]
fcomp dword [ebp - 0x14]
fnstsw ax
test ah, 0x41
jne 0x6ffc78
fld dword [ebp - 4]
call fcn.0043bd30
test eax, eax
jg 0x6ffc1f
neg eax
movzx ecx, byte [esi + 0xd7]
mov dword [ebp - 0x2c], eax
movzx eax, byte [esi + 0xd8]
fild dword [ebp - 0x2c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
fstp dword [ebp - 0x30]
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
shl eax, 1
mov dword [ebp - 0x34], eax
add esp, 8
fild dword [ebp - 0x34]
mov dword [ebp - 0x10], 1
fadd dword [0x8d2d40]
fcomp dword [ebp - 0x30]
fnstsw ax
test ah, 0x41
je 0x6ffc7f
mov dword [ebp - 0x10], 0
fld dword [ebp - 4]
call fcn.0043bd30
fld dword [ebp - 0xc]
mov edi, eax
mov dword [ebp - 0x28], edi
call fcn.0043bd30
fld dword [esi + 0x2cc]
mov ebx, eax
push edi
mov dword [ebp - 0x30], ebx
push ebx
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
push edi
mov edi, dword [0x91d3f0]
fld dword [edi + 0x18]
mov dword [ebp - 0x18], eax
push ebx
call fcn.0043bd30
fld dword [edi + 0x10]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
mov ecx, dword [0x91d3f0]
mov dword [ebp - 0x3c], eax
mov al, byte [ecx + 0x70]
movzx edx, al
mov dword [ebp - 0x38], edx
mov edx, dword [esi + 0x1a0]
add esp, 0x20
cmp edx, 0x100
jl 0x6fee45
mov edx, dword [ebp - 0x10]
test edx, edx
je 0x6ffd20
cmp word [esi + 0xf4], 0
je 0x6ffd20
cmp word [ecx + 0x8c], 4
je 0x6fee45
cmp al, 0xe0
jb 0x6ffd5f
cmp byte [esi + 0xda], 0x9d
jne case.0x6fe332.7
fild dword [esi + 0x194]
pop edi
fstp dword [ecx + 0x140c]
mov eax, dword [0x91d3f0]
fild dword [esi + 0x198]
fstp dword [eax + 0x1414]
mov dword [esi + 0x1b0], 0x800
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov bl, byte [esi + 0xda]
movzx edx, byte [esi + 0xd9]
mov eax, dword [0x91cfa4]
mov al, byte [eax + edx*2 + 0x1c]
xor ecx, ecx
cmp bl, 0x9d
sete cl
dec ecx
and ecx, 0x40000
cmp al, 0xff
mov dword [ebp - 0x20], ecx
je 0x6ffd98
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x6ffd9d
mov edx, 1
imul edx, edx, 0x4c0
add edx, 0xd92230
mov ebx, edx
push esi
push ebx
mov dword [ebp - 0x2c], ebx
call fcn.00647ac0
add esp, 8
test eax, eax
jne 0x6ffde8
mov edx, dword [ebx + 0x120]
push 0xfffffe80
push 0x60
push eax
push edx
push esi
push ebx
call fcn.0067af20
mov al, byte [ebx + 0xda]
add esp, 0x18
cmp al, 7
jne 0x6ffde8
push ebx
call fcn.00647770
add esp, 4
mov edi, dword [0x91d3f0]
fld dword [edi + 0x1414]
call fcn.0043bd30
fld dword [edi + 0x140c]
push eax
call fcn.0043bd30
fld dword [ebx + 0x2cc]
push eax
call fcn.0043bd30
fld dword [ebx + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
mov edi, dword [0x91d3f0]
fld dword [edi + 0x1414]
mov dword [ebp - 0x34], eax
call fcn.0043bd30
fld dword [edi + 0x140c]
push eax
call fcn.0043bd30
fld dword [edi + 0x18]
push eax
call fcn.0043bd30
fld dword [edi + 0x10]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
mov dword [ebp - 0x24], eax
mov eax, dword [0x91d3f0]
add esp, 0x20
cmp word [eax + 0x76], 1
jbe 0x6ffebe
xor ecx, ecx
mov cl, byte [esi]
push ecx
call fcn.0063dd40
add esp, 4
cmp al, 0xff
je 0x6ffe98
xor edx, edx
mov dl, byte [esi]
push edx
call fcn.0063dd40
movzx eax, al
cdq
mov ecx, 0x17
add esp, 4
idiv ecx
jmp 0x6ffe9d
mov edx, 1
mov eax, dword [0x91cfa4]
fild dword [eax + 0xb4]
push 0
push 1
sub esp, 8
fstp dword [esp + 4]
fild dword [eax + 0xb0]
fstp dword [esp]
jmp 0x6fff05
xor edx, edx
mov dl, byte [esi]
push edx
call fcn.0063dd40
add esp, 4
cmp al, 0xff
je 0x6ffee9
xor eax, eax
mov al, byte [esi]
push eax
call fcn.0063dd40
movzx eax, al
cdq
mov ecx, 0x17
add esp, 4
idiv ecx
jmp 0x6ffeee
mov edx, 1
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + 0xb5c]
mov eax, dword [eax + 0x45c]
push 0
push 1
push ecx
push eax
imul edx, edx, 0x4c0
add edx, 0xd92230
push edx
call fcn.0065ad30
movzx ecx, byte [esi + 0xd9]
mov edx, dword [0x91cfa4]
xor ecx, 1
mov al, byte [edx + ecx*2 + 0x20]
add esp, 0x14
cmp al, 0xff
je 0x6fff3f
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x6fff44
mov edx, 1
mov al, byte [ebx + 0xda]
imul edx, edx, 0x4c0
add edx, 0xd92230
cmp al, 0x18
mov edi, edx
mov dword [ebp - 0x1c], edi
je 0x6fffde
cmp al, 0x10
je 0x6fffde
mov eax, dword [0x91d3f0]
mov edx, dword [eax + 0x1414]
mov eax, dword [eax + 0x140c]
mov ecx, dword [ebx + 0x2cc]
push edx
mov edx, dword [ebx + 0x2c4]
push eax
push ecx
push edx
call fcn.006442f0
push eax
xor eax, eax
mov ax, word [ebx + 0xea]
push eax
call fcn.006442a0
add esp, 0x18
cmp ax, 0x20
ja 0x6fffde
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
add ecx, edx
cmp eax, ecx
jbe 0x6fffde
movzx eax, byte [esi + 0xd9]
mov ecx, dword [0x91cfa4]
mov dl, byte [eax + ecx + 0x8b]
test dl, dl
jne 0x6fffde
mov al, byte [esi + 0xda]
cmp al, 0x83
jb case.0x6fe332.7
cmp al, 0x84
jmp 0x6ff230
push esi
push edi
call fcn.00647ac0
add esp, 8
test eax, eax
jne 0x70001b
mov edx, dword [edi + 0x120]
push 0xfffffd40
push 0x100
push eax
push edx
push esi
push edi
call fcn.0067af20
mov al, byte [edi + 0xda]
add esp, 0x18
cmp al, 7
jne 0x70001b
push edi
call fcn.00647770
add esp, 4
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + 0x140c]
mov edx, dword [0x91cfa4]
mov dword [edx + 0x40c], ecx
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + 0x1414]
mov edx, dword [0x91cfa4]
mov dword [edx + 0x410], ecx
mov edi, dword [0x91d3f0]
fld dword [edi + 0x1414]
call fcn.0043bd30
fld dword [edi + 0x140c]
push eax
call fcn.0043bd30
mov edi, dword [ebp - 0x1c]
fld dword [edi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [edi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
movzx ecx, byte [esi + 0xd7]
mov ebx, eax
movzx eax, byte [esi + 0xd8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
add esp, 0x18
cmp eax, 0x32
jl 0x700131
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
mov edi, eax
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb663c]
shr edx, 0xe
and edx, 0x7f
push 0x28
push edx
sub edi, 0x32
call fcn.00614f40
sub eax, 0x32
add esp, 0x10
imul edi, eax
lea ebx, [ebx + edi*8]
jmp 0x7001b3
cmp byte [esi + 0xda], 0x9d
je 0x7001b3
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
movzx edx, byte [esi + 0xd7]
mov edi, 0x32
sub edi, eax
movzx eax, byte [esi + 0xd8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
mov edx, 0x32
sub edx, eax
mov eax, dword [ebp - 0x18]
add esp, 0x10
imul edi, edx
lea ecx, [eax + edi*8]
mov dword [ebp - 0x18], ecx
mov al, byte [esi + 0xda]
cmp al, 0x9d
jne 0x7001c3
add ebx, 0x10000
mov dl, byte [esi]
mov ecx, dword [0x91cfa4]
cmp dl, byte [ecx + 0xf]
jne 0x7001d6
add ebx, 0x40000
cmp al, 0x9d
je 0x7001e8
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x7001e8
add dword [ebp - 0x18], 0x100000
mov edx, dword [ebp - 0x10]
mov edi, dword [0x91d3f0]
fld dword [edi + 0x1414]
push edx
call fcn.0043bd30
fld dword [edi + 0x140c]
push eax
call fcn.0043bd30
fld dword [edi + 0x18]
push eax
call fcn.0043bd30
fld dword [edi + 0x10]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
mov ecx, dword [ebp - 0x30]
mov edi, dword [0x91d3f0]
fld dword [edi + 0x18]
add esp, 0x10
push eax
mov eax, dword [ebp - 0x28]
push ebx
push eax
push ecx
call fcn.0043bd30
fld dword [edi + 0x10]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
add esp, 0x10
push eax
mov eax, dword [ebp - 0x20]
add edx, eax
push edx
push ecx
push esi
call fcn.006fc9b0
add esp, 0x1c
test eax, eax
je 0x70076e
mov eax, dword [esi + 0x1a8]
test eax, eax
mov ecx, dword [0x91d3f0]
je 0x700568
fld dword [ebp - 0x14]
fcomp dword [0x8d3da8]
fnstsw ax
test ah, 5
jp 0x700568
mov edi, dword [ebp - 0x28]
test edi, edi
jle 0x7002a1
mov dword [ebp - 0x28], edi
jmp 0x7002a8
mov edx, edi
neg edx
mov dword [ebp - 0x28], edx
fild dword [ebp - 0x28]
fcomp dword [0x8cb958]
fnstsw ax
test ah, 5
jp 0x70056b
cmp byte [ecx + 0x70], 0xdf
jae 0x7002dc
fld dword [ebp - 8]
fmul dword [ecx + 0x140c]
fcomp dword [0x8cdf90]
fnstsw ax
test ah, 5
jp 0x70056b
push esi
call fcn.006c5da0
mov ecx, dword [0x91d3f0]
add esp, 4
test eax, eax
jne 0x70036b
mov eax, dword [ebp - 0x38]
cmp dword [ecx + eax*4 + 0xb4], 0x3000
jle 0x70036b
cmp word [esi + 0xf4], 0
jne 0x70036b
mov al, byte [esi + 0xd9]
xor edx, edx
test al, al
sete dl
lea edx, [edx + edx - 1]
mov dword [ebp - 0x38], edx
fild dword [ebp - 0x38]
fmul dword [ecx + 0x140c]
fcomp dword [0x8cb930]
fnstsw ax
test ah, 5
jp 0x70036b
mov byte [esi + 0x10d], 0x10
mov byte [esi + 0x110], 0
mov dword [esi + 0x1b0], 0x800
mov eax, dword [0x91d3f0]
mov byte [eax + 0x78], 3
pop edi
mov word [esi + 0x100], 8
mov byte [esi + 0x104], 8
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, word [ecx + 0x60]
xor edx, edx
mov dx, word [esi + 0x1ac]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x40
mov ebx, 0x800
ja 0x7003b8
mov eax, dword [0x91d3f0]
cmp dword [eax + 0x58], ebx
jle 0x7003b8
cmp dword [esi + 0x1a0], 0x300
jg 0x7003ac
cmp byte [esi + 0xda], 0x9d
je 0x7003b8
mov ecx, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], ecx
ja case.0x6fe332.7
mov eax, dword [esi + 0x1a8]
test eax, eax
je 0x70041c
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov ecx, dword [ecx + 0xeb6620]
shr ecx, 0x1a
add ecx, 0x94
imul ecx, ecx, 0x288
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, 0x40
sub ecx, edx
mov edx, dword [0x91cfa4]
mov dword [ebp - 0x3c], ecx
fild dword [ebp - 0x3c]
fstp dword [edx + 0x3c]
jmp 0x700428
mov eax, dword [0x91cfa4]
mov dword [eax + 0x3c], 0xc3800000
cmp dword [esi + 0x1a0], ebx
jge 0x70046a
push esi
call fcn.00674a60
add esp, 4
cmp eax, 0x900000
jle 0x70046a
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x60]
xor eax, eax
mov ax, word [esi + 0x1ac]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x60
mov edi, 9
jae 0x70046f
mov edi, 8
mov ecx, dword [0x91cfa4]
fld dword [ecx + 0x3c]
call fcn.0043bd30
mov ecx, dword [esi + 0x120]
push eax
imul ecx, ecx, 0x5f
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
push 0x40
shr eax, 0x1f
push edi
add edx, eax
push edx
push esi
push esi
call fcn.0067af20
mov byte [esi + 0x110], 0
mov dword [esi + 0x1b0], ebx
mov ecx, dword [0x91d3f0]
mov byte [ecx + 0x78], 2
mov edx, dword [0x91cfa4]
add esp, 0x18
cmp word [edx + 0xc], 0x20
jl case.0x6fe332.7
mov al, byte [esi + 0xda]
cmp al, 0x9d
je 0x7004e0
cmp al, 0x82
jne case.0x6fe332.7
cmp dword [esi + 0x1a0], 0x400
jge 0x700551
mov edi, dword [ebp - 0x1c]
fld dword [edi + 0x2cc]
call fcn.0043bd30
fld dword [edi + 0x2c4]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x10
cmp eax, 0x400000
ja 0x700537
cmp dword [ebp - 0x18], 0x24000
jae 0x700551
mov eax, 1
push eax
mov eax, dword [ebp - 0x2c]
push eax
push esi
call fcn.006fcc40
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
push eax
mov eax, dword [ebp - 0x2c]
push eax
push esi
call fcn.006fcc40
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x28]
movzx edx, byte [esi + 0xd8]
mov eax, dword [0x91cfa4]
cmp byte [edx + eax + 0x35], 1
jne 0x700631
cmp dword [ecx + 0x58], 0x2200
jl 0x700631
movzx ecx, word [ecx + 0x60]
xor edx, edx
mov dx, word [esi + 0x1ac]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x38
ja 0x700631
push esi
call fcn.006c5da0
add esp, 4
test eax, eax
jne 0x700631
cmp word [esi + 0xf4], ax
jne 0x700631
mov eax, dword [0x91d3f0]
fld dword [ebp - 8]
fmul dword [eax + 0x140c]
fcomp dword [0x8cb9a4]
fnstsw ax
test ah, 0x41
jp 0x700631
mov ecx, dword [ebp - 0x30]
fld dword [esi + 0x2cc]
push edi
push ecx
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x10
cmp eax, 0x400000
jb 0x6ff674
fld dword [ebp - 8]
mov edx, dword [0x91d3f0]
fmul dword [edx + 0x45c]
fcomp dword [0x8d2e04]
fnstsw ax
test ah, 5
jnp 0x6ff674
mov eax, dword [ebp - 0x10]
test eax, eax
mov byte [esi + 0x110], 0
je 0x7006ba
mov eax, dword [0x91d3f0]
fld dword [ebp - 0xc]
fstp dword [eax + 0x140c]
mov ecx, dword [0x91d3f0]
fld dword [ebp - 4]
fstp dword [ecx + 0x1414]
mov edi, dword [0x91d3f0]
fld dword [edi + 0xb34]
call fcn.0043bd30
fld dword [edi + 0x434]
push eax
call fcn.0043bd30
mov edi, dword [ebp - 0x1c]
fld dword [edi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [edi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x10
cmp eax, 0x400000
jae 0x7006ab
mov byte [esi + 0x110], 1
mov edx, dword [0x91d3f0]
mov byte [edx + 0x78], 0
jmp 0x70074e
cmp dword [esi + 0x1a0], 0x1400
jle 0x7006da
mov eax, dword [ebp - 0x1c]
push eax
push esi
call fcn.006fc090
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, dword [ebp - 0x34]
jbe 0x700704
mov ecx, dword [ebp - 0x2c]
mov al, byte [ecx + 0xda]
cmp al, 0x18
je 0x700704
cmp al, 0x10
je 0x700704
mov edx, dword [ebp - 0x1c]
push edx
push esi
call fcn.006fc090
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x91d3f0]
push esi
push esi
mov byte [eax + 0x78], 1
call fcn.00647ac0
add esp, 8
test eax, eax
jne 0x70074e
push 0xfffffec0
push 0x40
push eax
mov eax, dword [esi + 0x120]
lea ecx, [eax + eax*8]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
push esi
push esi
call fcn.0067af20
push esi
call fcn.00647770
add esp, 0x1c
mov edx, dword [ebp - 0x2c]
push 0
push edx
push esi
call fcn.006fcc40
add esp, 0xc
pop edi
mov dword [esi + 0x1b0], 0x800
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x700846
push esi
call fcn.00663b70
add esp, 4
test eax, eax
je 0x700846
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
add esp, 8
cmp eax, 0x5f
jl 0x700846
movzx ecx, byte [esi + 0xd9]
fld dword [ebp - 8]
mov edx, dword [0x91cfa4]
fmul dword [edx + ecx*4 + 0x64]
mov ecx, dword [0x91d3f0]
fld dword [ebp - 8]
fmul dword [ecx + 0x484]
fcompp
fnstsw ax
test ah, 5
jp 0x700846
fld dword [ebp - 8]
mov edx, dword [ecx + 0x1414]
fmul dword [0x8cb9a4]
xor eax, eax
mov ax, word [esi + 0xee]
push eax
mov eax, dword [ecx + 0x140c]
push 0
push ecx
fstp dword [esp]
push edx
push eax
call fcn.006442f0
add esp, 0x10
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x58
jb 0x700846
pop edi
mov byte [esi + 0x110], 1
mov dword [esi + 0x1b0], 0x800
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x1c]
push ecx
push esi
call fcn.006fc090
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x110], 0
mov dword [esi + 0x1b0], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret