Function at 0x6b58b0
Capabilities:
Encode data using base64
Encrypt data using chaskey
Parse credit card information
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push ebx
push esi
mov esi, dword [ebp + 8]
cmp word [esi + 0x2dc], 0x7f
push edi
je case.0x6b5bf1.81
movzx eax, byte [esi + 0xda]
mov ecx, dword [0x91cfa4]
add eax, 0xfffffffc
cmp eax, 0x3d
ja case.0x6b58e6.7
movzx eax, byte [eax + 0x6bb7f0]
jmp dword [eax*4 + 0x6bb7e8]
mov dl, byte [esi]
cmp dl, byte [ecx + 0x19]
je case.0x6b5bf1.81
movzx eax, byte [esi + 0xd9]
mov dl, byte [esi]
cmp dl, byte [ecx + eax*2 + 0x1c]
jne case.0x6b5bf1.81
mov edi, dword [0x91d3f0]
fld dword [edi + 0xb34]
call fcn.0043bd30
fld dword [edi + 0x434]
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 case.0x6b5bf1.81
mov eax, dword [0x91d3f0]
cmp word [eax + 0x8c], 5
jne 0x6b599b
movzx eax, byte [esi + 0x124]
lea ecx, [eax + eax*2]
shl ecx, 2
mov eax, 0x1900
sub eax, ecx
mov ecx, dword [esi + 0xe0]
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp ecx, eax
jle 0x6b599b
mov edx, dword [0x91cfa4]
cmp word [edx + 0xc], 4
jle case.0x6b5bf1.81
push esi
call fcn.006cd760
add esp, 4
test eax, eax
jne case.0x6b5bf1.81
push esi
call fcn.006c94e0
add esp, 4
mov ebx, eax
movzx eax, word [esi + 0x2dc]
cmp eax, 0x3d
mov dword [ebp - 0x18], ebx
jl 0x6b5a0c
cmp eax, 0x3f
jg 0x6b5a0c
xor eax, eax
mov ax, word [esi + 0xea]
push eax
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x70
jae 0x6b5a0c
mov eax, dword [esi + 0x1b0]
test ah, 0x10
je 0x6b5a0c
xor ecx, ecx
mov cx, word [esi + 0xea]
push 0x2000
push ecx
push ebx
call fcn.00643cb0
add esp, 0xc
mov ebx, eax
mov dword [ebp - 0x18], ebx
movzx edx, byte [esi + 0xd9]
mov eax, dword [0x91cfa4]
xor edx, 1
mov al, byte [eax + edx*2 + 0x1c]
cmp al, 0xff
je 0x6b5a30
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x6b5a35
mov edx, 1
imul edx, edx, 0x4c0
add edx, 0xd92230
mov ax, word [edx + 0x2dc]
cmp ax, 0x2a5
mov dword [ebp - 0x40], edx
je 0x6b5a57
cmp ax, 0x2a3
jne 0x6b5a74
movzx edx, word [edx + 0xea]
push 0x2000
push edx
push ebx
call fcn.00643cb0
add esp, 0xc
mov word [esi + 0xf0], ax
xor eax, eax
mov ax, word [esi + 0xea]
push eax
push ebx
call fcn.006442a0
mov dword [ebp - 0x24], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + 0xb34]
mov edx, dword [eax + 0x434]
mov eax, dword [esi + 0x2cc]
push ecx
mov ecx, dword [esi + 0x2c4]
push edx
push eax
push ecx
call fcn.006442f0
add esp, 0x18
mov edi, eax
mov eax, dword [0x91cfa4]
mov cl, byte [eax + 0x19]
test cl, cl
mov dword [ebp - 0x20], edi
jne 0x6b5b08
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x60]
push eax
push edi
call fcn.006442a0
add esp, 8
cmp ax, 0x70
jb 0x6b5b03
xor ecx, ecx
mov cx, word [esi + 0xea]
push ecx
push edi
call fcn.006442a0
add esp, 8
cmp ax, 8
ja 0x6b5b03
push edi
push ebx
call fcn.006442a0
add esp, 8
mov dword [ebp - 0x24], eax
mov eax, dword [0x91cfa4]
cmp word [ebp - 0x24], 0xe
jb case.0x6b5bf1.81
mov cl, byte [eax + 0x19]
test cl, cl
jne 0x6b5b31
cmp dword [eax + 0xc8], 0x7fff
je 0x6b5b31
mov dl, byte [esi]
cmp dl, byte [eax + 0xf]
jne case.0x6b5bf1.81
xor eax, eax
mov ax, word [esi + 0xea]
push eax
push ebx
call fcn.006442d0
mov edi, dword [0x91cfa4]
mov al, byte [edi + 0xf]
mov cl, byte [esi]
add esp, 8
cmp cl, al
mov byte [ebp + 0xb], al
jne 0x6b5b8b
cmp cl, byte [edi + 0xe]
je 0x6b5b8b
movzx eax, byte [esi + 0x124]
lea edx, [eax + eax*2]
shl edx, 2
mov eax, 0x1300
sub eax, edx
cmp dword [esi + 0xe0], eax
jle 0x6b5b8b
cmp byte [edi + 0xae], 1
ja 0x6b5b8b
cmp word [edi + 0xc], 0xc
jle case.0x6b5bf1.81
mov al, byte [edi + 0x19]
test al, al
mov edx, dword [0x91d3f0]
jne 0x6b5bad
cmp word [edx + 0x8c], 5
je 0x6b5bad
cmp word [edi + 0xc], 0xc
jle case.0x6b5bf1.81
cmp cl, byte [edi + 0xe]
jne 0x6b5bc8
cmp dword [esi + 0xe0], 0x800
jl 0x6b5bc8
cmp byte [edx + 0x6a], 0
jne case.0x6b5bf1.81
test al, al
je 0x6b5bdb
cmp cl, al
je 0x6b5bdb
cmp word [edi + 0xc], 0x12
jle case.0x6b5bf1.81
movzx eax, word [esi + 0x2dc]
add eax, 0xffffffb7
cmp eax, 9
ja case.0x6b5bf1.75
movzx eax, byte [eax + 0x6bb83c]
jmp dword [eax*4 + 0x6bb830]
fld dword [esi + 0x2e4]
fcomp dword [0x88515c]
fnstsw ax
test ah, 0x41
je case.0x6b5bf1.75
mov eax, dword [ebp - 0x24]
cmp ax, 0x48
jb 0x6b5c1d
mov dword [ebp - 0x24], 0x48
jmp case.0x6b5bf1.75
cmp ax, 0x30
ja case.0x6b5bf1.75
mov dword [ebp - 0x24], 0x31
cmp cl, byte [ebp + 0xb]
je 0x6b5c4d
cmp word [edi + 0xc], 0x10
jl 0x6b5c4d
push esi
call fcn.0064def0
add esp, 4
test eax, eax
je case.0x6b5bf1.81
mov edx, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [edx + 0x60]
mov edx, dword [ebp - 0x20]
push ecx
push edx
call fcn.006442a0
xor ecx, ecx
push ebx
mov dword [ebp - 0x30], eax
mov eax, dword [0x91d3f0]
mov cx, word [eax + 0x60]
add cx, 0x8000
push ecx
call fcn.006442a0
push 0xa
call fcn.00678f20
add esp, 0x14
cmp word [ebp - 0x24], 0x20
mov edi, eax
jb 0x6b5e2f
mov edx, dword [0x91d3f0]
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov ax, word [edx + 0x60]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x60
jb 0x6b5e2f
push esi
call fcn.00674a60
add esp, 4
cmp eax, 0x90000
jg 0x6b5ce1
push 0x24000
push ebx
push esi
call fcn.00674740
push eax
push ebx
call fcn.006442a0
add esp, 0x14
cmp ax, 0x40
ja 0x6b5e2f
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*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ecx + edi*4 + 0x7b4]
fnstsw ax
test ah, 5
jp 0x6b5e2f
movzx eax, byte [esi + 0x124]
mov ecx, dword [esi + 0xe0]
lea edx, [eax + eax*2]
shl edx, 2
mov eax, 0x1d00
sub eax, edx
cmp ecx, eax
jg 0x6b5e2f
mov ecx, dword [0x91cfa4]
mov al, byte [ecx + 0x19]
test al, al
jne 0x6b5e2f
mov edx, dword [ebp - 0x20]
xor eax, eax
mov ax, word [esi + 0xea]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x40
ja 0x6b5e2f
xor ecx, ecx
mov cx, word [esi + 0xea]
push ebx
push ecx
call fcn.006442a0
movzx edx, ax
push edx
push ebx
push esi
call fcn.006d89d0
add esp, 0x14
test eax, eax
jne 0x6b71c2
cmp word [ebp - 0x30], 0x78
jb 0x6b5e2f
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
mov eax, 0xffffff6c
sub eax, ecx
lea ecx, [eax + eax*8]
shl ecx, 4
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ecx + edi*4 + 0x7b8]
fnstsw ax
test ah, 5
jp 0x6b5e2f
cmp dword [ecx + 0xb4], 0x1000
jg case.0x6b5bf1.81
cmp byte [esi + 0xda], 0xe
jne 0x6b5e47
cmp word [esi + 0xdc], 0x80
je case.0x6b5bf1.81
mov cx, bx
sub cx, word [esi + 0xea]
mov dx, 0x8000
cmp dx, cx
movzx ecx, byte [esi + 0xd7]
sbb al, al
inc al
mov byte [ebp - 0x10], al
movzx eax, byte [esi + 0xd8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb664c]
and eax, 0x7f
push 0x14
push eax
call fcn.00614f40
movzx edx, byte [esi + 0xd7]
mov 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 + 0xeb6628]
shr ecx, 0x19
push 0x28
push ecx
call fcn.00614f40
add edi, eax
mov eax, dword [0x91cfa8]
add esp, 0x10
add eax, 0x4c
cmp edi, 0x64
jg 0x6b5ed0
mov edx, dword [eax]
mov dword [ebp - 8], edx
jmp 0x6b5ee7
add edi, 0x240
mov dword [ebp + 8], edi
fild dword [ebp + 8]
fmul dword [eax]
fmul dword [0x8d3be8]
fstp dword [ebp - 8]
fld dword [eax]
fmul dword [0x8cb034]
fld dword [ebp - 8]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x6b5f00
fstp dword [ebp - 8]
jmp 0x6b5f02
fstp st(0)
mov ecx, dword [0x91cfa4]
mov al, byte [esi]
cmp al, byte [ecx + 0xe]
jne 0x6b5f26
mov edx, dword [0x91d3f0]
push 0x18
mov dword [edx + 0x58], 0
call fcn.0062ea60
add esp, 4
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
xor edx, edx
mov dx, word [esi + 0xea]
push ecx
push edx
call fcn.006442a0
add esp, 8
mov dword [ebp - 0x2c], eax
mov eax, dword [0x91d3f0]
cmp dword [eax + 0x58], 0x1000
jge 0x6b5f5c
mov dword [ebp - 0x2c], 0
mov ecx, dword [ebp - 8]
push ecx
push 8
call fcn.006b37d0
add esp, 8
cmp word [ebp - 0x24], 0x2c
mov edi, eax
jb 0x6b61ff
cmp word [ebp - 0x24], 0x4c
ja 0x6b61ff
movzx eax, byte [esi + 0x124]
mov ecx, dword [esi + 0xe0]
lea edx, [eax + eax*2]
shl edx, 2
mov eax, 0x1100
sub eax, edx
cmp ecx, eax
jge 0x6b61ff
mov ecx, dword [0x91d3f0]
fld dword [ecx + edi*4 + 0x7b4]
fcomp dword [0x8d3bf4]
fnstsw ax
test ah, 0x41
jne 0x6b61ff
mov edx, dword [ebp - 0x20]
xor eax, eax
mov ax, word [esi + 0xea]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x18
ja 0x6b61ff
mov ecx, dword [0x91d3f0]
fld dword [ecx + 0x2c]
fabs
fcomp dword [0x8d3bf0]
fnstsw ax
test ah, 5
jp 0x6b61d0
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
mov al, byte [ebp - 0x10]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb662c]
and edx, 1
cmp dl, al
jne 0x6b61d0
xor eax, eax
mov ax, word [esi + 0xea]
push 0x93e
push eax
push ebx
call fcn.00643cb0
xor ecx, ecx
mov cl, byte [ebp - 0x10]
xor cl, 1
mov dword [ebp - 0x20], eax
push ecx
push eax
push 0
push 0x286
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x30
call fcn.0043bd30
mov dword [ebp + 8], eax
fild dword [ebp + 8]
mov eax, dword [0x91cfa8]
lea ecx, [edi + 1]
mov dword [ebp + 8], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp + 8]
call fcn.0043bd30
cmp eax, 0x1000
jge 0x6b61bb
mov dl, byte [esi]
mov ecx, dword [0x91cfa4]
cmp dl, byte [ecx + 0x19]
je 0x6b60cb
cmp eax, 0xc00
jge 0x6b61bb
push 0x10000
push ebx
push esi
call fcn.00674740
push eax
push ebx
call fcn.006442a0
add esp, 0x14
cmp ax, 0x50
jae case.0x6b5bf1.81
mov dl, byte [ebp - 0x10]
push 0
push 0x286
push esi
mov dword [esi + 0x1a4], 0
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], 0xd5
mov byte [esi + 0x2c1], dl
call fcn.0061e910
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
xor edx, edx
mov dx, word [esi + 0xea]
push ecx
mov dword [esi + 0x138], eax
mov dword [esi + 0x1ac], edi
push edx
call fcn.006442d0
movzx eax, ax
cdq
idiv edi
push esi
mov word [esi + 0xf0], bx
mov word [esi + 0xfc], ax
movzx eax, word [ebp - 0x24]
shl eax, 8
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov word [esi + 0xf2], ax
call fcn.006763b0
mov eax, dword [ebp - 0x20]
push 0
push edi
push 0
push eax
push esi
mov byte [esi + 0x134], 0
call fcn.00679b80
mov ecx, dword [esi + 0x120]
imul ecx, ecx, 0xb
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push 4
push esi
mov dword [esi + 0xe4], edx
call fcn.00655eb0
add esp, 0x34
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0xe0], 0x1000
jge 0x6b61ff
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 8]
movzx eax, byte [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
push edx
push eax
push ecx
push ebx
push esi
call fcn.006b5280
add esp, 0x14
test eax, eax
jne 0x6b71c2
cmp dword [esi + 0xe0], 0x1000
jl case.0x6b5bf1.81
push 0x40000
push ebx
push esi
call fcn.00674740
push eax
push ebx
call fcn.006442a0
mov edi, dword [0x91d3f0]
fld dword [edi + 0xb34]
mov ebx, eax
call fcn.0043bd30
fld dword [edi + 0x434]
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
mov dl, byte [esi]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x91cfa4]
mov cl, byte [eax + 0xe]
add esp, 0x24
cmp dl, cl
je 0x6b69e5
cmp word [ebp - 0x24], 0x50
jb 0x6b69e5
cmp bx, 0x40
ja 0x6b69e5
cmp word [ebp - 0x2c], 0x20
ja 0x6b69e5
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
mov edi, dword [esi + 0xe0]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb662c]
shr ecx, 4
and ecx, 0x7f
push 0x32
push ecx
call fcn.00614f40
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x120]
lea ecx, [edx + eax - 0x1a9]
add esp, 8
cmp edi, ecx
jge 0x6b6308
mov eax, dword [esi + 0x11c]
lea ecx, [eax + eax*2]
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edi, edx
jl 0x6b69e5
mov ecx, dword [0x91cfa4]
mov al, byte [ecx + 0x19]
test al, al
jne 0x6b69e5
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 + 0xeb662c]
shr edx, 4
and edx, 0x7f
push 0x32
push edx
call fcn.00614f40
mov ecx, dword [esi + 0x120]
lea eax, [eax + eax*2]
lea edx, [eax + ecx - 0x1a9]
mov eax, dword [esi + 0xe0]
add esp, 8
cmp eax, edx
mov eax, dword [ebp - 8]
push eax
jge 0x6b6690
push 0xc
call fcn.006b37d0
mov edi, eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [esi + 0x2cc]
push ecx
mov ecx, dword [esi + 0x2c4]
push edx
push eax
push ecx
call fcn.006442f0
push edi
push esi
mov ebx, eax
call fcn.006465b0
add esp, 0x20
test eax, eax
je case.0x6b5bf1.81
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*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ecx + edi*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je case.0x6b5bf1.81
xor edx, edx
mov dx, word [esi + 0xea]
push ebx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x10
ja case.0x6b5bf1.81
cmp word [ebp - 0x24], 0x7e
jb 0x6b644c
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 al, byte [edx + 0xeb662c]
and al, 1
mov byte [ebp - 0xc], al
jmp 0x6b6452
mov al, byte [ebp - 0x10]
mov byte [ebp - 0xc], al
neg al
mov ecx, dword [ebp - 0xc]
push ecx
sbb eax, eax
and eax, 0xfffe
inc eax
imul eax, eax, 0x1d26
xor ebx, ebx
mov bx, word [esi + 0xea]
sub bx, ax
push ebx
push 0
push 0x2e
push esi
mov dword [ebp - 0x20], ebx
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x24
call fcn.0043bd30
add eax, 4
mov dword [ebp + 8], eax
fild dword [ebp + 8]
mov eax, dword [0x91cfa8]
lea ecx, [edi + 1]
mov dword [ebp + 8], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp + 8]
call fcn.0043bd30
mov edx, dword [esi + 0xe0]
add edx, 0x400
cmp eax, edx
mov dword [ebp - 4], eax
jg 0x6b65e5
movzx eax, byte [esi + 0x124]
imul eax, eax, 0x84
mov ecx, 0x11300
sub ecx, eax
mov eax, 0x66666667
imul ecx
mov eax, dword [ebp - 4]
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp eax, edx
jg 0x6b65e5
push 0
push 0x2e
push esi
call fcn.0061e910
mov dl, byte [ebp - 0xc]
mov byte [esi + 0x134], 0
mov byte [esi + 0x2c1], dl
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
mov word [esi + 0xec], ax
mov eax, dword [ebp - 4]
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], eax
mov eax, dword [ebp - 8]
push esi
mov dword [esi + 0x138], eax
mov dword [esi + 0x1ac], edi
call fcn.006763b0
xor eax, eax
mov ax, word [esi + 0xea]
push ebx
mov word [esi + 0xf0], bx
lea ecx, [eax + 0x8000]
push eax
mov word [esi + 0xf2], cx
call fcn.006442d0
movzx eax, ax
cdq
idiv edi
push 4
push esi
mov dword [esi + 0x1a4], 0
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], 0x68
mov word [esi + 0xfc], ax
call fcn.00655eb0
add esp, 0x30
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
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 edi, dword [0x91d3f0]
mov ecx, 0xffffff6c
sub ecx, edx
shl ecx, 6
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [edi + 0x7b4]
fnstsw ax
test ah, 0x41
jp 0x6b6655
mov edx, dword [0x91cfa4]
mov cl, byte [esi]
cmp cl, byte [edx + 0x19]
jne 0x6b6655
mov byte [edi + 0x6d], 1
mov edi, dword [0x91d3f0]
mov eax, dword [0x91cfa4]
mov cl, byte [eax + 0x19]
test cl, cl
jne 0x6b69eb
movzx eax, byte [esi + 0x124]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0xe0]
shl ecx, 2
mov edx, 0x1900
sub edx, ecx
cmp eax, edx
jle 0x6b69eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push 0x10
call fcn.006b37d0
mov edi, eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [esi + 0x2cc]
push ecx
mov ecx, dword [esi + 0x2c4]
push edx
push eax
push ecx
call fcn.006442f0
push edi
push esi
mov ebx, eax
call fcn.006465b0
add esp, 0x20
test eax, eax
je case.0x6b5bf1.81
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*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ecx + edi*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je case.0x6b5bf1.81
xor edx, edx
mov dx, word [esi + 0xea]
push ebx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x10
ja case.0x6b5bf1.81
cmp word [ebp - 0x24], 0x7e
jb 0x6b6781
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 al, byte [edx + 0xeb662c]
and al, 1
mov byte [ebp - 0xc], al
jmp 0x6b6787
mov al, byte [ebp - 0x10]
mov byte [ebp - 0xc], al
neg al
mov ecx, dword [ebp - 0xc]
push ecx
sbb eax, eax
and eax, 0xfffe
inc eax
imul eax, eax, 0x238c
add ax, word [esi + 0xea]
mov ebx, eax
push ebx
push 0
push 0x27
push esi
mov dword [ebp - 0x20], ebx
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
push eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov ax, word [esi + 0xec]
push eax
call fcn.006442a0
add esp, 0x2c
cmp ax, 0x10
jae case.0x6b5bf1.81
mov ecx, dword [ebp - 8]
push ecx
push edi
push 0
push 0x27
push esi
call fcn.00691a30
mov dword [ebp - 0x38], eax
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x24
call fcn.0043bd30
mov dword [ebp + 8], eax
fild dword [ebp + 8]
mov eax, dword [0x91cfa8]
fmul dword [eax + 0x48]
fmul dword [0x871154]
fidiv dword [ebp - 0x38]
call fcn.0043bd30
mov ecx, dword [esi + 0xe0]
add ecx, 0x400
cmp eax, ecx
mov dword [ebp - 4], eax
jg 0x6b6950
movzx edx, byte [esi + 0x124]
mov ecx, dword [ebp - 4]
mov eax, 4
sub eax, edx
mov edx, dword [esi + 0x120]
shl eax, 7
add eax, edx
cmp ecx, eax
jg 0x6b6950
push 0
push 0x27
push esi
call fcn.0061e910
mov cl, byte [ebp - 0xc]
mov edx, dword [ebp - 4]
push esi
mov byte [esi + 0x134], 0
mov byte [esi + 0x2c1], cl
mov dword [esi + 0xe4], edx
call fcn.0068e3a0
mov ax, word [ebp - 0x14]
mov ecx, dword [ebp - 8]
push esi
mov word [esi + 0xec], ax
mov dword [esi + 0x138], ecx
mov dword [esi + 0x1ac], edi
call fcn.006763b0
xor eax, eax
mov ax, word [esi + 0xea]
push ebx
mov word [esi + 0xf0], bx
lea edx, [eax + 0x8000]
push eax
mov word [esi + 0xf2], dx
call fcn.006442d0
movzx eax, ax
cdq
idiv edi
push 4
push esi
mov word [esi + 0xfc], ax
mov ecx, dword [0x91cfa4]
mov dl, byte [ecx + 0x19]
mov al, byte [esi]
sub al, dl
neg al
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], 0x60
sbb eax, eax
and eax, 0x200
mov dword [esi + 0x1a4], eax
call fcn.00655eb0
add esp, 0x24
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
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 edi, dword [0x91d3f0]
mov ecx, 0xffffff6c
sub ecx, edx
shl ecx, 6
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [edi + 0x7b4]
fnstsw ax
test ah, 0x41
jp 0x6b69c0
mov edx, dword [0x91cfa4]
mov cl, byte [esi]
cmp cl, byte [edx + 0x19]
jne 0x6b69c0
mov byte [edi + 0x6d], 1
mov edi, dword [0x91d3f0]
movzx eax, byte [esi + 0x124]
lea eax, [eax + eax*2]
shl eax, 2
mov ecx, 0x1900
sub ecx, eax
cmp dword [esi + 0xe0], ecx
jle 0x6b69eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [0x91d3f0]
mov ecx, dword [esi + 0x11c]
imul ecx, ecx, 0x6c
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp word [ebp - 0x24], 0x50
mov dword [ebp - 0x1c], edx
jb 0x6b75f2
mov ecx, dword [ebp - 8]
push ecx
push 0xa
call fcn.006b37d0
mov ecx, dword [esi + 0x2cc]
mov ebx, eax
mov edx, dword [edi + ebx*4 + 0xb34]
mov eax, dword [edi + ebx*4 + 0x434]
push edx
mov edx, dword [esi + 0x2c4]
push eax
push ecx
push edx
call fcn.006442f0
movzx ecx, byte [esi + 0xd7]
add esp, 0x18
mov dword [ebp - 0x20], eax
movzx eax, byte [esi + 0xd8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
imul eax, eax, 0x110
mov edx, dword [eax + 0xeb6660]
and edx, 0xfe000000
cmp edx, 0x78000000
jae 0x6b6a99
movzx edx, byte [esi + 0x124]
mov ecx, 0x1c0
sub ecx, edx
mov edx, dword [esi + 0xe0]
lea ecx, [ecx + ecx*2]
shl ecx, 2
cmp edx, ecx
jge 0x6b71ce
movzx edx, byte [esi + 0x124]
mov edi, dword [esi + 0xe0]
mov ecx, 0x1c0
sub ecx, edx
lea ecx, [ecx + ecx*2]
shl ecx, 2
cmp edi, ecx
jl 0x6b6ac2
cmp word [ebp - 0x2c], 0x30
ja 0x6b71ce
lea edx, [edx + edx*2]
shl edx, 2
mov ecx, 0x1d00
sub ecx, edx
cmp edi, ecx
jg 0x6b71ce
mov edx, dword [eax + 0xeb6620]
shr edx, 0x1a
mov edi, dword [0x91d3f0]
mov ecx, 0xffffff6c
sub ecx, edx
shl ecx, 6
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcom dword [edi + 0x7b4]
fnstsw ax
test ah, 5
jp 0x6b71d6
fcomp dword [edi + ebx*4 + 0x7b4]
fnstsw ax
test ah, 5
jp 0x6b71d8
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov dx, word [esi + 0xea]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x18
ja 0x6b71ce
cmp word [ebp - 0x24], 0x68
jb 0x6b71ce
mov edi, dword [0x91d3f0]
fld dword [edi + 0x2c]
fabs
fcomp dword [0x8d3bec]
fnstsw ax
test ah, 5
jp 0x6b71d8
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 + 0xeb6620]
shr eax, 0x1a
mov ecx, 0xffffff6c
sub ecx, eax
shl ecx, 6
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [edi + ebx*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je case.0x6b5bf1.81
push ebx
push esi
call fcn.006465b0
add esp, 8
test eax, eax
je case.0x6b5bf1.81
mov edi, dword [ebp - 0x24]
cmp di, 0x7c
jb 0x6b6c0d
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 al, byte [ecx + 0xeb662c]
and al, 1
mov byte [ebp - 0xc], al
jmp 0x6b6c13
mov dl, byte [ebp - 0x10]
mov byte [ebp - 0xc], dl
push esi
call fcn.0064c660
add esp, 4
test eax, eax
je 0x6b6c38
movzx eax, byte [esi + 0x124]
lea eax, [eax + eax*2]
shl eax, 2
mov ecx, eax
mov eax, 0x1100
sub eax, ecx
jmp 0x6b6c3d
mov eax, 0x800
cmp dword [esi + 0xe0], eax
jle 0x6b6cb0
mov edx, dword [ebp - 8]
push edx
push 0xe
call fcn.006b37d0
add esp, 8
cmp di, 0x7c
mov ebx, eax
mov dword [ebp - 0x3c], 1
jb 0x6b6c89
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 al, byte [edx + 0xeb662c]
and al, 1
mov byte [ebp - 0xc], al
jmp 0x6b6c8f
mov al, byte [ebp - 0x10]
mov byte [ebp - 0xc], al
neg al
mov dword [ebp + 8], 0x5e
sbb eax, eax
and eax, 0xfffe
inc eax
mov edi, eax
mov dword [ebp - 0x38], edi
imul edi, edi, 0x216a
jmp 0x6b6d3f
push esi
mov dword [ebp - 0x3c], 0
call fcn.0064c660
add esp, 4
test eax, eax
je 0x6b6d0b
mov ecx, dword [ebp - 8]
push ecx
push 0xa
call fcn.006b37d0
mov dl, byte [ebp - 0xc]
add esp, 8
neg dl
mov ebx, eax
mov eax, dword [esi + 0x11c]
mov dword [ebp + 8], 0x282
sbb edx, edx
and edx, 0xfffe
inc edx
mov edi, edx
mov dword [ebp - 0x38], edi
imul edi, edi, 0x1b04
add di, word [esi + 0xea]
sub eax, 0x400
mov dword [ebp - 0x1c], eax
jmp 0x6b6d46
mov cl, byte [ebp - 0xc]
movzx eax, word [ebp - 0x24]
neg cl
mov dword [ebp + 8], 0x289
mov dword [ebp - 0x1c], 0x800
sbb ecx, ecx
shl eax, 0xd
cdq
and edx, 0x7f
add eax, edx
and ecx, 0xfffe
mov edi, eax
inc ecx
sar edi, 7
mov dword [ebp - 0x38], ecx
imul edi, ecx
add di, word [esi + 0xea]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
push eax
push edi
push 0
push ecx
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + ebx*4 + 0xb34]
mov eax, dword [eax + ebx*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
mov dword [ebp - 0x14], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x34
call fcn.0043bd30
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
mov eax, dword [0x91cfa8]
lea ecx, [ebx + 1]
mov dword [ebp - 0x34], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x34]
call fcn.0043bd30
mov dword [ebp - 4], eax
cmp dword [esi + 0xe0], 0x600
jle 0x6b6dfd
mov edx, dword [ebp - 0x14]
xor eax, eax
mov ax, word [esi + 0xec]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x28
ja case.0x6b5bf1.81
cmp word [ebp + 8], 0x5e
jne 0x6b6f00
mov ecx, dword [ebp - 4]
mov eax, dword [esi + 0xe0]
add ecx, 0xa00
cmp ecx, eax
jl 0x6b6e3b
mov edx, dword [ebp - 0x14]
xor eax, eax
mov ax, word [esi + 0xec]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x40
jb 0x6b6f00
movzx eax, word [esi + 0x2dc]
cmp eax, 0x2f
je 0x6b6e4e
cmp eax, 0x253
jne 0x6b6e7b
push 0
push 0x3d
push esi
call fcn.0061e910
mov ecx, dword [esi + 0xe0]
imul ecx, ecx, 0x5c
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add esp, 0xc
add edx, ecx
mov dword [esi + 0xe0], edx
push esi
mov dword [ebp - 0x3c], 0
call fcn.0064c660
add esp, 4
test eax, eax
je 0x6b6ec3
mov edx, dword [ebp - 8]
push edx
push 0xa
call fcn.006b37d0
mov edi, dword [ebp - 0x38]
imul edi, edi, 0x1998
add di, word [esi + 0xea]
mov ebx, eax
mov eax, dword [esi + 0x11c]
add esp, 8
mov dword [ebp + 8], 0x282
sub eax, 0x400
jmp 0x6b6efd
movzx eax, word [ebp - 0x24]
shl eax, 0xd
cdq
and edx, 0x7f
add eax, edx
mov edi, eax
movzx eax, byte [esi + 0x124]
sar edi, 7
imul edi, dword [ebp - 0x38]
add di, word [esi + 0xea]
lea eax, [eax + eax*2]
shl eax, 2
mov ecx, eax
mov eax, 0x1100
mov dword [ebp + 8], 0x289
sub eax, ecx
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
push edx
push edi
push 0
push eax
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x24
call fcn.0043bd30
mov dword [ebp - 0x38], eax
fild dword [ebp - 0x38]
mov eax, dword [0x91cfa8]
lea ecx, [ebx + 1]
mov dword [ebp - 0x38], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x38]
call fcn.0043bd30
mov ecx, dword [esi + 0xe0]
mov dword [ebp - 4], eax
add eax, 0x200
cmp eax, ecx
mov dword [ebp - 0x28], 0
jge 0x6b7048
mov dword [ebp - 0x28], 2
mov dword [ebp - 0x38], 8
lea esp, [esp]
movzx eax, word [ebp + 8]
cmp eax, 0x5e
je 0x6b6fb4
cmp eax, 0x282
je 0x6b6faa
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x38]
push edx
push eax
jmp 0x6b6fbf
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x38]
push ecx
push edx
jmp 0x6b6fbf
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x38]
push eax
add ecx, 4
push ecx
call fcn.006b37d0
mov ebx, eax
mov eax, dword [0x91d3f0]
mov edx, dword [eax + ebx*4 + 0xb34]
mov eax, dword [eax + ebx*4 + 0x434]
add esp, 8
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x10
call fcn.0043bd30
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
mov eax, dword [0x91cfa8]
lea ecx, [ebx + 1]
mov dword [ebp - 0x34], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x34]
call fcn.0043bd30
mov ecx, dword [esi + 0xe0]
mov dword [ebp - 4], eax
add eax, 0x200
cmp eax, ecx
jge 0x6b7048
mov eax, dword [ebp - 0x38]
cmp eax, 6
jle 0x6b7048
mov ecx, dword [ebp - 0x28]
sub eax, 2
add ecx, 2
cmp eax, 6
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x38], eax
jge 0x6b6f90
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0xe0]
add edx, 0xa00
cmp edx, eax
jl case.0x6b5bf1.81
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
add esp, 0x10
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
cmp eax, 0x1000
jle 0x6b70aa
mov ecx, dword [esi + 0xe0]
add ecx, 0x400
cmp eax, ecx
jg case.0x6b5bf1.81
cmp eax, dword [ebp - 0x1c]
jg case.0x6b5bf1.81
mov edx, dword [esi + 0xe0]
add edx, 0xa00
cmp eax, edx
jg case.0x6b5bf1.81
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
push eax
push ecx
push esi
call fcn.0061e910
mov edx, dword [ebp - 8]
mov ax, word [ebp - 0x14]
push esi
mov dword [esi + 0x138], edx
mov dword [esi + 0x1ac], ebx
mov word [esi + 0xec], ax
mov byte [esi + 0x134], 0
call fcn.006763b0
mov eax, dword [ebp - 4]
mov cl, byte [ebp - 0xc]
mov dx, word [ebp - 0x18]
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], eax
xor eax, eax
mov ax, word [esi + 0xea]
mov byte [esi + 0x2c1], cl
mov word [esi + 0xf0], di
mov word [esi + 0xf2], dx
push eax
push edi
call fcn.006442d0
movzx eax, ax
cdq
idiv ebx
add esp, 0x18
mov dword [esi + 0x1a4], 0
mov byte [esi + 0xda], 2
mov word [esi + 0xfc], ax
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x6b7169
mov word [esi + 0xdc], 0x58
jmp 0x6b71b7
cmp word [ebp + 8], 0x282
jne 0x6b717c
mov word [esi + 0xdc], 0xd8
jmp 0x6b71b7
mov cl, byte [esi + 0x2c1]
mov edx, dword [ebp - 0x18]
neg cl
push 0x1400
sbb ecx, ecx
and ecx, 0xfffe
inc ecx
imul ecx, ecx, 0x6c00
add ecx, edi
push ecx
push edx
call fcn.00643cb0
add esp, 0xc
mov word [esi + 0xf2], ax
mov word [esi + 0xdc], 0x59
push 6
push esi
call fcn.00655eb0
add esp, 8
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [0x91d3f0]
jmp 0x6b71d8
fstp st(0)
cmp word [ebp - 0x24], 0x70
jb 0x6b71ef
mov eax, dword [ebp - 8]
push eax
push 0x10
call fcn.006b37d0
add esp, 8
mov ebx, eax
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 + 0xeb6620]
shr ecx, 0x1a
mov eax, 0xffffff6c
sub eax, ecx
lea ecx, [eax + eax*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [edi + ebx*4 + 0x7b4]
fnstsw ax
test ah, 0x41
jne 0x6b7267
movzx ecx, byte [ebp - 0x10]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
push eax
push ecx
push esi
call fcn.006b5420
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xe0]
cmp eax, 0x1000
mov ecx, dword [ebp - 0x24]
jle 0x6b75f5
cmp cx, 0x70
jb 0x6b75f5
mov dl, byte [esi]
mov ecx, dword [0x91cfa4]
cmp dl, byte [ecx + 0xe]
jne 0x6b729d
cmp eax, 0xc00
jge case.0x6b5bf1.81
push ebx
push esi
call fcn.006465b0
add esp, 8
test eax, eax
je case.0x6b5bf1.81
mov edx, dword [0x91cfa4]
mov al, byte [edx + 0x19]
test al, al
jne 0x6b72de
mov eax, dword [0x91d3f0]
mov edx, dword [ebp - 0x18]
xor ecx, ecx
mov cx, word [eax + 0x60]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jbe case.0x6b5bf1.81
mov ecx, dword [0x91cfa4]
mov al, byte [esi]
cmp al, byte [ecx + 0x19]
jne 0x6b7316
cmp word [ebp - 0x24], 0x7c
jb 0x6b7316
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 al, byte [ecx + 0xeb662c]
and al, 1
jmp 0x6b7327
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x18]
mov dx, 0x8000
cmp dx, ax
sbb al, al
inc al
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 0xc], al
mov edx, dword [ebp - 0xc]
neg al
push edx
sbb eax, eax
and eax, 0xfffe
inc eax
imul eax, eax, 0x25ae
lea eax, [eax + ecx + 0x8000]
push eax
push 0
push 0x45
push esi
mov dword [ebp - 0x20], eax
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
mov dword [ebp - 0x14], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x34
call fcn.0043bd30
mov dword [ebp + 8], eax
fild dword [ebp + 8]
mov eax, dword [0x91cfa8]
lea ecx, [ebx + 1]
mov dword [ebp + 8], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp + 8]
call fcn.0043bd30
mov edi, eax
cmp dword [esi + 0xe0], 0x800
jle 0x6b7403
cmp edi, 0x800
jle 0x6b7403
mov edx, dword [ebp - 0x14]
xor eax, eax
mov ax, word [esi + 0xec]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x18
jae case.0x6b5bf1.81
mov eax, dword [esi + 0xe0]
lea ecx, [edi + 0xa00]
cmp eax, ecx
jg 0x6b89d4
mov edx, dword [esi + 0x11c]
mov eax, dword [ebp - 0x1c]
push edx
push eax
call fcn.00648620
add esp, 8
cmp edi, 0x1000
jl 0x6b74dc
mov ecx, dword [esi + 0xe0]
add ecx, 0x600
cmp edi, ecx
jg 0x6b744e
cmp edi, eax
jle 0x6b74dc
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 ecx, 0xffffff6c
sub ecx, edx
shl ecx, 6
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ecx + 0x7b4]
fnstsw ax
test ah, 0x41
jp case.0x6b5bf1.81
mov eax, dword [0x91cfa4]
mov dl, byte [esi]
cmp dl, byte [eax + 0x19]
jne case.0x6b5bf1.81
cmp word [ebp - 0x2c], 0x10
jbe 0x6b74cf
cmp dword [ebp - 0x3c], 0x10000
jl case.0x6b5bf1.81
pop edi
pop esi
mov byte [ecx + 0x6d], 1
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.006763b0
push 0
push 0x45
push esi
call fcn.0061e910
mov ecx, dword [ebp - 8]
mov dl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov byte [esi + 0x2c1], dl
mov dword [esi + 0x138], ecx
movzx ecx, ax
mov dl, 0x10
sub dl, bl
mov word [esi + 0xec], ax
mov al, byte [esi]
mov dword [esi + 0x1ac], ebx
mov byte [esi + 0x134], 0
mov dword [esi + 0x1a8], ecx
mov dword [esi + 0xe0], edi
mov dword [esi + 0xe4], edi
mov byte [esi + 0x119], dl
mov ecx, dword [0x91cfa4]
mov dl, byte [ecx + 0x19]
add esp, 0x10
cmp al, dl
je 0x6b7567
movzx eax, byte [esi + 0x124]
lea edx, [eax + eax*2]
shl edx, 2
mov eax, 0x1900
sub eax, edx
cmp edi, eax
jle 0x6b7567
mov byte [esi + 0x117], 8
jmp 0x6b756e
mov byte [esi + 0x117], 0
movzx eax, word [ebp - 0x24]
mov cx, word [ebp - 0x18]
shl eax, 8
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x20]
sar eax, 7
mov word [esi + 0xf2], ax
xor eax, eax
mov ax, word [esi + 0xea]
push edx
mov word [esi + 0xf0], cx
push eax
call fcn.006442d0
movzx eax, ax
cdq
idiv ebx
mov cl, byte [esi]
push 4
push esi
mov word [esi + 0xfc], ax
mov edx, dword [0x91cfa4]
sub cl, byte [edx + 0x19]
neg cl
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], 0x50
sbb ecx, ecx
and ecx, 0x200
mov dword [esi + 0x1a4], ecx
call fcn.00655eb0
add esp, 0x10
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x24]
xor eax, eax
cmp cx, 0x50
mov dword [ebp - 0x3c], eax
ja 0x6b7608
mov eax, 1
mov dword [ebp - 0x3c], eax
mov ebx, dword [0x91cfa4]
mov dl, byte [ebx + 0x19]
test dl, dl
jne 0x6b7642
cmp word [ebp - 0x2c], 0x50
jb 0x6b7629
cmp dword [edi + 0x58], 0x2000
jg 0x6b875f
cmp cx, 0x50
jae 0x6b764c
cmp dword [edi + 0x58], 0x1000
jle 0x6b875f
cmp cx, 0x40
jmp 0x6b7646
cmp cx, 0x50
jb 0x6b875f
mov al, byte [esi]
cmp al, byte [ebx + 0xe]
jne 0x6b7663
cmp dword [esi + 0xe0], 0xc00
jge case.0x6b5bf1.81
movzx eax, byte [esi + 0x124]
lea ecx, [eax + eax*2]
shl ecx, 2
mov eax, 0x1100
sub eax, ecx
cmp dword [esi + 0xe0], eax
jge 0x6b7bee
mov ecx, dword [ebp - 8]
push ecx
push 6
call fcn.006b37d0
mov edx, dword [0x91cfa4]
mov ebx, eax
mov al, byte [edx + 0xae]
add esp, 8
cmp al, 1
ja 0x6b76ae
mov al, byte [edi + 0x6d]
test al, al
jne case.0x6b5bf1.81
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 + 0xeb6620]
shr eax, 0x1a
mov ecx, 0xffffff6c
sub ecx, eax
mov dword [ebp - 0x3c], ecx
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [edi + ebx*4 + 0x7b4]
fnstsw ax
test ah, 0x41
jne 0x6b7729
movzx edx, byte [ebp - 0x10]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
push edx
mov edx, dword [ebp - 0x18]
push eax
push ecx
push edx
push esi
call fcn.006b5420
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + ebx*4 + 0x1074]
test eax, eax
jg 0x6b7736
neg eax
cmp eax, 0x408
jge 0x6b7a4c
mov eax, dword [ebp - 0x3c]
lea ecx, [eax + eax*2]
shl ecx, 4
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [edi + ebx*4 + 0x7b4]
fnstsw ax
test ah, 0x41
jp 0x6b7a4c
push ebx
push esi
call fcn.006465b0
add esp, 8
test eax, eax
je case.0x6b5bf1.81
mov ecx, dword [0x91cfa4]
mov al, byte [ecx + 0x19]
test al, al
jne 0x6b77a7
mov edx, dword [0x91d3f0]
cmp dword [edx + 0x58], 0x1800
jg case.0x6b5bf1.81
push esi
call fcn.0064c660
add esp, 4
test eax, eax
je 0x6b77f8
mov eax, dword [ebp - 8]
push eax
push 0xa
call fcn.006b37d0
mov cl, byte [ebp - 0x10]
add esp, 8
neg cl
mov ebx, eax
mov eax, dword [esi + 0x11c]
mov dword [ebp + 8], 0x27f
sbb ecx, ecx
and ecx, 0xfffe
inc ecx
imul ecx, ecx, 0x1c70
add cx, word [esi + 0xea]
sub eax, 0x400
mov dword [ebp - 0x1c], eax
mov edi, ecx
jmp 0x6b781f
mov dl, byte [ebp - 0x10]
neg dl
mov dword [ebp + 8], 0x281
sbb edx, edx
and edx, 0xfffe
inc edx
imul edx, edx, 0xe38
xor edi, edi
mov di, word [esi + 0xea]
sub di, dx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
push eax
push edi
push 0
push ecx
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + ebx*4 + 0xb34]
mov eax, dword [eax + ebx*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
add esp, 0x24
mov dword [ebp - 0x14], eax
cmp dword [esi + 0xe0], 0x600
jle 0x6b7889
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov cx, word [esi + 0xec]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x28
ja case.0x6b5bf1.81
mov eax, dword [0x91d3f0]
mov edx, dword [eax + ebx*4 + 0xb34]
mov eax, dword [eax + ebx*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x10
call fcn.0043bd30
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
mov eax, dword [0x91cfa8]
lea ecx, [ebx + 1]
mov dword [ebp - 0x3c], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x3c]
call fcn.0043bd30
cmp word [ebp - 0x2c], 0x20
mov dword [ebp - 4], eax
mov ecx, eax
ja 0x6b78f6
mov eax, dword [esi + 0xe0]
lea edx, [ecx + 0xa00]
cmp eax, edx
jg 0x6b89db
mov al, byte [esi]
mov edx, dword [0x91cfa4]
cmp al, byte [edx + 0x19]
jne 0x6b7920
cmp ecx, 0x800
jge 0x6b7920
mov eax, dword [esi + 0xe0]
cmp eax, 0x600
jle 0x6b7920
cmp eax, dword [ebp - 0x1c]
jge 0x6b7920
mov dword [ebp - 0x1c], eax
cmp ecx, 0x1000
jle 0x6b793b
mov eax, dword [esi + 0xe0]
add eax, 0xa00
cmp ecx, eax
jg case.0x6b5bf1.81
mov eax, dword [esi + 0xe0]
lea edx, [eax + 0xa00]
cmp ecx, edx
jge case.0x6b5bf1.81
cmp ecx, 0xc00
jle 0x6b7969
add eax, 0xfffffa00
cmp ecx, eax
jle 0x6b7969
cmp ecx, dword [ebp - 0x1c]
jg case.0x6b5bf1.81
push esi
call fcn.006763b0
mov eax, dword [ebp + 8]
push 0
push eax
push esi
call fcn.0061e910
mov al, byte [ebp - 0x10]
mov ecx, dword [ebp - 8]
xor edx, edx
cmp word [ebp + 8], 0x281
mov byte [esi + 0x2c1], al
mov eax, dword [ebp - 4]
setne dl
push 0x6800
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x138], ecx
mov cx, word [ebp - 0x14]
dec edx
and edx, 0xffffffd8
add edx, 0xd8
mov word [esi + 0xdc], dx
xor edx, edx
mov dx, word [esi + 0xea]
mov dword [esi + 0x1ac], ebx
mov byte [esi + 0xda], 2
mov byte [esi + 0x134], 0
mov word [esi + 0xec], cx
mov word [esi + 0xf0], di
push edx
push eax
call fcn.00643cb0
xor ecx, ecx
mov cx, word [esi + 0xea]
push edi
mov word [esi + 0xf2], ax
push ecx
call fcn.006442d0
movzx eax, ax
cdq
idiv ebx
movzx edx, word [ebp - 0x30]
push 4
push esi
mov dword [esi + 0x1a8], edx
mov dword [esi + 0x1a4], 0
mov byte [esi + 0x2fa], 0
mov word [esi + 0xfc], ax
call fcn.00655eb0
add esp, 0x2c
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov ax, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
jae case.0x6b5bf1.81
mov edx, dword [ebp - 8]
mov al, byte [ebp - 0x10]
push edx
xor al, 1
push 8
mov byte [ebp - 0xc], al
call fcn.006b37d0
mov ecx, dword [ebp - 0x18]
mov edi, eax
xor eax, eax
mov ax, word [esi + 0xea]
push 0x2000
push eax
push ecx
call fcn.00643cb0
mov edx, dword [ebp - 0xc]
push edx
mov ebx, eax
push ebx
push 0
push 0x280
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x38
call fcn.0043bd30
mov dword [ebp + 8], eax
fild dword [ebp + 8]
mov eax, dword [0x91cfa8]
lea ecx, [edi + 1]
mov dword [ebp + 8], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp + 8]
call fcn.0043bd30
cmp eax, 0x1000
jge case.0x6b5bf1.81
mov dl, byte [esi]
mov ecx, dword [0x91cfa4]
cmp dl, byte [ecx + 0x19]
je 0x6b7b1d
cmp eax, 0xc00
jge case.0x6b5bf1.81
mov edx, dword [ebp - 0x18]
push 0x10000
push edx
push esi
call fcn.00674740
push eax
mov eax, dword [ebp - 0x18]
push eax
call fcn.006442a0
add esp, 0x14
cmp ax, 0x50
jae case.0x6b5bf1.81
mov cl, byte [ebp - 0xc]
push 0
push 0x280
push esi
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], 0x39
mov dword [esi + 0x1a4], 0
mov byte [esi + 0x2c1], cl
call fcn.0061e910
mov edx, dword [ebp - 8]
xor eax, eax
mov ax, word [esi + 0xea]
push ebx
mov dword [esi + 0x138], edx
mov dword [esi + 0x1ac], edi
push eax
call fcn.006442d0
movzx eax, ax
cdq
idiv edi
mov edx, dword [ebp - 0x18]
xor ecx, ecx
mov cx, word [esi + 0xea]
push 0x6000
push ecx
push edx
mov word [esi + 0xfc], ax
call fcn.00643cb0
push esi
mov word [esi + 0xf0], ax
call fcn.006763b0
push 0
push edi
push 0
push ebx
push esi
mov byte [esi + 0x134], 0
call fcn.00679b80
push 6
push esi
call fcn.00655eb0
add esp, 0x40
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
test dl, dl
jne 0x6b7c05
mov eax, dword [ebp - 0x2c]
cmp ax, 0x20
jb 0x6b7c05
cmp ax, 0x60
jbe 0x6b7cad
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 + 0xeb6628]
shr eax, 0x19
push 0x28
push eax
call fcn.00614f40
add esp, 8
cmp eax, 0x32
jl 0x6b80a2
mov edx, dword [0x91cfa4]
mov cl, byte [esi]
cmp cl, byte [edx + 0x19]
jne 0x6b80a2
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
mov eax, 0xffffff6c
sub eax, ecx
lea ecx, [eax + eax*2]
shl ecx, 4
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ecx + 0x7b4]
fnstsw ax
test ah, 5
jp 0x6b80a2
mov edx, dword [ebp - 8]
push edx
push 0xa
call fcn.006b37d0
mov ebx, eax
push ebx
push esi
call fcn.006465b0
add esp, 0x10
test eax, eax
je case.0x6b5bf1.81
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
mov eax, 0xffffff6c
sub eax, ecx
lea ecx, [eax + eax*2]
shl ecx, 4
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ecx + ebx*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je case.0x6b5bf1.81
mov dl, byte [ebp - 0x10]
neg dl
mov ecx, dword [ebp - 0x10]
push ecx
mov dword [ebp - 0x28], 0
sbb edx, edx
and edx, 0xfffe
inc edx
imul edx, edx, 0xe38
xor eax, eax
mov ax, word [esi + 0xea]
sub ax, dx
push eax
push 0
push 0x40
push esi
mov dword [ebp - 0x20], eax
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + ebx*4 + 0xb34]
mov eax, dword [eax + ebx*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
mov dword [ebp - 0x14], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x34
call fcn.0043bd30
mov dword [ebp + 8], eax
fild dword [ebp + 8]
mov eax, dword [0x91cfa8]
lea ecx, [ebx + 1]
mov dword [ebp + 8], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp + 8]
call fcn.0043bd30
mov edi, eax
mov eax, dword [esi + 0xe0]
lea edx, [edi + 0xa00]
cmp eax, edx
jle 0x6b7f06
cmp word [ebp - 0x2c], 0x20
ja 0x6b7e08
push 0x400
push esi
call fcn.0063d620
add esp, 8
mov dword [ebp - 0x28], 2
mov dword [ebp + 8], 8
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
push eax
push ecx
call fcn.006b37d0
mov ebx, eax
mov eax, dword [0x91d3f0]
mov edx, dword [eax + ebx*4 + 0xb34]
mov eax, dword [eax + ebx*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x28
call fcn.0043bd30
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
mov eax, dword [0x91cfa8]
lea ecx, [ebx + 1]
mov dword [ebp - 0x3c], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x3c]
call fcn.0043bd30
mov edi, eax
mov eax, dword [esi + 0xe0]
lea edx, [edi + 0xa00]
cmp eax, edx
jl 0x6b7ecf
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x28]
sub eax, 2
add edi, 2
cmp eax, 6
mov dword [ebp - 0x28], edi
mov dword [ebp + 8], eax
jge 0x6b7e16
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x28], 4
jg case.0x6b5bf1.81
cmp dword [esi + 0xe0], 0xa00
jle 0x6b7f3a
cmp edi, 0x800
jle 0x6b7f3a
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov cx, word [esi + 0xec]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja case.0x6b5bf1.81
cmp edi, 0xe00
jl 0x6b7fcf
mov edx, dword [esi + 0xe0]
add edx, 0x400
cmp edi, edx
jg 0x6b7f62
mov eax, dword [ebp - 0x1c]
add eax, 0xffffff00
cmp edi, eax
jle 0x6b7fcf
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 + 0xeb6620]
shr ecx, 0x1a
mov eax, 0xffffff6c
sub eax, ecx
lea ecx, [eax + eax*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ecx + 0x7b4]
fnstsw ax
test ah, 0x41
jp case.0x6b5bf1.81
pop edi
pop esi
mov byte [ecx + 0x6d], 1
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.006763b0
mov ecx, dword [ebp - 0x28]
push ecx
push 0x40
push esi
call fcn.0061e910
mov al, byte [ebp - 0x10]
mov edx, dword [ebp - 8]
mov cx, word [ebp - 0x14]
mov byte [esi + 0x2c1], al
movzx eax, word [ebp - 0x30]
mov dword [esi + 0x138], edx
mov dx, word [ebp - 0x18]
mov dword [esi + 0x1a8], eax
mov word [esi + 0xf2], dx
mov eax, 0x2aaaaaab
imul edi
mov word [esi + 0xec], cx
mov ecx, dword [ebp - 0x20]
push ecx
mov word [esi + 0xf0], cx
xor ecx, ecx
mov cx, word [esi + 0xea]
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esi + 0x1ac], ebx
mov byte [esi + 0x134], 0
push ecx
mov dword [esi + 0xe0], edi
mov dword [esi + 0xe4], edi
mov dword [esi + 0x1a4], 0
mov byte [esi + 0x117], dl
call fcn.006442d0
movzx eax, ax
cdq
idiv ebx
push 8
push esi
mov byte [esi + 0x117], 0
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], 0x45
mov word [esi + 0xfc], ax
call fcn.00655eb0
add esp, 0x20
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x34], 0
lea esp, [esp]
mov edx, dword [ebp - 8]
push edx
push 0xe
call fcn.006b37d0
mov ebx, eax
push ebx
push esi
call fcn.006465b0
add esp, 0x10
test eax, eax
je 0x6b8587
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
mov eax, 0xffffff6c
sub eax, ecx
lea ecx, [eax + eax*2]
mov edi, dword [0x91d3f0]
shl ecx, 6
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [edi + ebx*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je 0x6b858d
mov ecx, dword [0x91cfa4]
mov al, byte [ecx + 0x19]
test al, al
jne 0x6b8181
mov edx, dword [edi + 0xb34]
mov eax, dword [edi + 0x434]
mov ecx, dword [esi + 0x2cc]
push edx
mov edx, dword [esi + 0x2c4]
push eax
push ecx
push edx
call fcn.006442f0
push eax
xor eax, eax
mov ax, word [esi + 0xea]
push eax
call fcn.006442a0
add esp, 0x18
cmp ax, 0x40
jae 0x6b8587
mov edi, dword [0x91d3f0]
mov ecx, dword [0x91cfa4]
mov al, byte [ecx + 0x19]
test al, al
jne 0x6b81df
cmp dword [edi + 0x58], 0x1000
jle 0x6b81df
mov edx, dword [ebp - 0x18]
xor eax, eax
mov ax, word [edi + 0x60]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x48
jae 0x6b81d9
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x60]
xor eax, eax
mov ax, word [esi + 0xea]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jae 0x6b8587
mov edi, dword [0x91d3f0]
mov ecx, dword [edi + ebx*4 + 0xb34]
mov edx, dword [edi + ebx*4 + 0x434]
mov eax, dword [esi + 0x2cc]
push ecx
mov ecx, dword [esi + 0x2c4]
push edx
push eax
push ecx
call fcn.006442f0
xor edx, edx
mov dx, word [esi + 0xea]
push edx
push eax
call fcn.006442a0
add esp, 0x18
cmp ax, 0x20
jae 0x6b8587
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
imul edi, edi, 0x110
mov edx, dword [edi + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea ecx, [eax + eax*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ecx + ebx*4 + 0x7b4]
fnstsw ax
test ah, 0x41
jne 0x6b82d5
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dx, word [esi + 0xea]
push 0x6000
mov dword [ebp + 8], 0x44
push edx
push eax
call fcn.00643cb0
xor ecx, ecx
mov cx, word [esi + 0xea]
add esp, 0xc
mov dx, 0x8000
mov dword [ebp - 0x18], eax
sub eax, ecx
cmp dx, ax
sbb al, al
inc al
xor al, 1
mov byte [ebp - 0xc], al
neg al
sbb eax, eax
and eax, 0xfffe
inc eax
imul eax, eax, 0x182c
add eax, ecx
mov edi, eax
jmp 0x6b835e
mov ecx, dword [edi + 0xeb662c]
mov al, byte [ebp - 0x10]
and ecx, 1
cmp al, cl
jne 0x6b8333
movzx ecx, byte [esi + 0x124]
lea edx, [ecx + ecx*2]
shl edx, 2
mov ecx, 0x1700
sub ecx, edx
cmp dword [esi + 0xe0], ecx
jg 0x6b8333
mov edx, dword [ebp - 0x24]
add edx, 0xffffffa0
mov di, word [esi + 0xea]
shl edx, 8
mov byte [ebp - 0xc], al
add edx, 0x2664
neg al
mov dword [ebp + 8], 0x42
sbb eax, eax
and eax, 0xfffe
inc eax
imul edx, eax
sub di, dx
jmp 0x6b835e
mov ecx, dword [ebp - 0x24]
xor al, 1
mov byte [ebp - 0xc], al
neg al
mov dword [ebp + 8], 0x41
sbb eax, eax
and eax, 0xfffe
inc eax
add ecx, 0xffffffc0
imul eax, ecx
shl eax, 8
mov edi, eax
add di, word [esi + 0xea]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
push edx
push edi
push 0
push eax
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
mov dword [ebp - 0x14], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
lea eax, [ebx + 1]
mov dword [ebp - 0x38], eax
fild dword [ebp - 0x38]
add esp, 0x34
fstp dword [ebp - 0x38]
fsqrt
call fcn.0043bd30
mov ecx, dword [0x91cfa8]
add eax, 4
mov dword [ebp - 0x28], eax
fild dword [ebp - 0x28]
fmul dword [ecx + 0x48]
fdiv dword [ebp - 0x38]
call fcn.0043bd30
mov dword [ebp - 4], eax
cmp dword [esi + 0xe0], 0xa00
jle 0x6b850f
mov eax, dword [ebp - 4]
cmp eax, 0x800
jle 0x6b8512
mov edx, dword [ebp - 0x14]
xor eax, eax
mov ax, word [esi + 0xec]
push edx
push eax
call fcn.006442d0
add esp, 8
cmp ax, 0x1000
mov dword [ebp - 0x24], eax
jbe 0x6b850f
mov eax, dword [ebp - 0x14]
sub ax, word [esi + 0xec]
cmp ax, 0x8000
ja 0x6b845a
mov cl, byte [ebp - 0xc]
neg cl
sbb ecx, ecx
and ecx, 0xfffe
inc ecx
imul ecx, dword [ebp - 0x24]
add edi, ecx
jmp 0x6b846e
mov dl, byte [ebp - 0xc]
neg dl
sbb edx, edx
and edx, 0xfffe
inc edx
imul edx, dword [ebp - 0x24]
sub edi, edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
push eax
push edi
push 0
push ecx
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + ebx*4 + 0xb34]
mov eax, dword [eax + ebx*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
mov dword [ebp - 0x14], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
call fcn.0043bd30
add eax, 4
mov dword [ebp - 0x28], eax
fild dword [ebp - 0x28]
mov eax, dword [0x91cfa8]
fmul dword [eax + 0x48]
fdiv dword [ebp - 0x38]
call fcn.0043bd30
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov dx, word [esi + 0xec]
push ecx
mov dword [ebp - 4], eax
push edx
call fcn.006442a0
add esp, 0x3c
cmp ax, 0x10
ja 0x6b8587
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 0xe0]
lea edx, [eax + 0xa00]
cmp ecx, edx
jg 0x6b8638
cmp word [ebp + 8], 0x44
jne 0x6b8545
movzx ecx, byte [esi + 0x124]
lea ecx, [ecx + ecx*2]
shl ecx, 2
mov edx, 0x1100
sub edx, ecx
cmp eax, edx
jge 0x6b8587
cmp eax, 0xe00
jl 0x6b8656
mov ecx, dword [esi + 0xe0]
lea edx, [eax + 0x400]
cmp edx, ecx
jl 0x6b8656
add ecx, 0x400
cmp eax, ecx
jg 0x6b8577
cmp eax, dword [ebp - 0x1c]
jle 0x6b8656
mov eax, dword [ebp - 0x34]
inc eax
cmp eax, 1
mov dword [ebp - 0x34], eax
jle 0x6b80b0
mov edi, dword [0x91d3f0]
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x6b876a
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
mov eax, 0xffffff6c
sub eax, ecx
lea ecx, [eax + eax*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [edi + 0x7b4]
fnstsw ax
test ah, 0x41
jp 0x6b8605
mov edx, dword [0x91cfa4]
mov cl, byte [esi]
cmp cl, byte [edx + 0x19]
jne 0x6b8605
mov byte [edi + 0x6d], 1
mov edi, dword [0x91d3f0]
xor eax, eax
mov ax, word [edi + 0x60]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja case.0x6b5bf1.81
pop edi
mov byte [esi + 0x134], 0
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp word [ebp - 0x2c], 0x20
ja 0x6b8587
push 0x400
push esi
call fcn.0063d620
add esp, 8
jmp 0x6b8587
push esi
call fcn.006763b0
mov eax, dword [ebp + 8]
push 0
push eax
push esi
call fcn.0061e910
mov ax, word [ebp - 0x14]
mov dl, byte [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov word [esi + 0xec], ax
movzx eax, word [ebp - 0x30]
mov byte [esi + 0x2c1], dl
mov dx, word [ebp - 0x18]
mov dword [esi + 0x138], ecx
mov ecx, dword [ebp - 4]
mov word [esi + 0xf2], dx
mov dword [esi + 0x1a8], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 8
mov dword [esi + 0xe0], ecx
mov dword [esi + 0xe4], ecx
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov byte [esi + 0x117], dl
xor edx, edx
mov dx, word [esi + 0xea]
push edi
mov dword [esi + 0x1ac], ebx
mov byte [esi + 0x134], 0
mov word [esi + 0xf0], di
mov dword [esi + 0x1a4], 0
push edx
call fcn.006442d0
movzx eax, ax
cdq
idiv ebx
add esp, 0x18
mov byte [esi + 0x117], 0
mov byte [esi + 0xda], 2
mov word [esi + 0xfc], ax
mov ax, word [esi + 0x2dc]
cmp ax, 0x41
je 0x6b873f
cmp ax, 0x42
je 0x6b873f
push 8
push esi
mov word [esi + 0xdc], 0x44
call fcn.00655eb0
add esp, 8
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
push 8
push esi
mov word [esi + 0xdc], 0x40
call fcn.00655eb0
add esp, 8
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
jne 0x6b8770
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [0x91cfa4]
mov al, byte [ebx + 0x19]
test al, al
jne 0x6b87fa
fld dword [edi + 0x2c]
call fcn.0043bd30
test eax, eax
jg 0x6b8789
neg eax
cmp eax, 0x158
jg 0x6b87fa
cmp word [ebp - 0x24], 0x2c
jb 0x6b87fa
cmp dword [edi + 0x58], 0x2000
jle 0x6b87fa
push esi
call fcn.00674a60
add esp, 4
cmp eax, 0x40000
jl 0x6b87f4
mov edx, dword [0x91d3f0]
mov ecx, dword [ebp - 0x18]
xor eax, eax
mov ax, word [edx + 0x60]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja 0x6b87f4
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x60]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x50
jbe 0x6b8851
mov ebx, dword [0x91cfa4]
cmp word [ebp - 0x24], 0x30
jbe 0x6b8e79
mov eax, dword [esi + 0x1b0]
test ah, 0x40
je 0x6b8e79
mov dl, byte [esi]
cmp dl, byte [ebx + 0x19]
jne 0x6b8e79
xor eax, eax
mov ax, word [esi + 0xec]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x10
jbe 0x6b8851
cmp dword [esi + 0xe0], 0x1000
jge 0x6b8e79
mov edx, dword [ebp - 8]
push edx
push 0xa
call fcn.006b37d0
movzx ecx, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb662c]
mov ebx, eax
mov al, byte [ebp - 0x10]
xor al, 1
and edx, 1
add esp, 8
cmp al, dl
mov byte [ebp - 0xc], al
jne 0x6b8b97
mov cl, byte [esi]
mov edx, dword [0x91cfa4]
cmp cl, byte [edx + 0x19]
jne 0x6b8b97
mov eax, dword [ebp - 0xc]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
push 0
push 0x55
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + ebx*4 + 0xb34]
mov eax, dword [eax + ebx*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x24
call fcn.0043bd30
mov dword [ebp + 8], eax
fild dword [ebp + 8]
mov eax, dword [0x91cfa8]
lea ecx, [ebx + 1]
mov dword [ebp + 8], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp + 8]
call fcn.0043bd30
mov ecx, dword [esi + 0xe0]
sub ecx, eax
test ecx, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 0x28], 0
jg 0x6b8922
neg ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], 2
mov edi, 8
mov edx, dword [ebp - 8]
push edx
push edi
call fcn.006b37d0
mov dword [ebp - 0x3c], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x18
call fcn.0043bd30
mov dword [ebp + 8], eax
fild dword [ebp + 8]
mov eax, dword [0x91cfa8]
lea ecx, [ebx + 1]
mov dword [ebp + 8], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp + 8]
call fcn.0043bd30
mov ecx, dword [esi + 0xe0]
sub ecx, eax
test ecx, ecx
jg 0x6b8999
neg ecx
cmp dword [ebp - 0x30], ecx
jle 0x6b89c1
mov edx, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x3c]
mov dword [ebp - 0x28], edx
add edx, 2
sub edi, 2
cmp edi, 6
mov dword [ebp - 4], eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], edx
jge 0x6b8931
jmp 0x6b89c4
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 0xe0]
lea edx, [eax + 0xa00]
cmp ecx, edx
jle 0x6b89f2
cmp word [ebp - 0x2c], 0x20
ja case.0x6b5bf1.81
push 0x400
push esi
call fcn.0063d620
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [ecx + 0x400]
cmp eax, edx
jg 0x6b8e4e
movzx edi, byte [esi + 0x124]
mov edx, 0x240
sub edx, edi
lea edx, [edx + edx*2]
shl edx, 2
cmp eax, edx
jge 0x6b8e4e
lea edx, [ecx - 0x400]
cmp eax, edx
jle 0x6b8a2f
cmp eax, dword [ebp - 0x1c]
jg 0x6b8e4e
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
mov ecx, dword [esi + 0xe0]
mov edi, eax
xor eax, eax
cmp ecx, 0x800
setg al
xor ecx, ecx
mov cx, word [esi + 0xec]
push edi
dec eax
and eax, 0x10
add eax, 0x20
push ecx
mov dword [ebp - 0x30], eax
call fcn.006442a0
add esp, 0x18
cmp ax, word [ebp - 0x30]
ja case.0x6b5bf1.81
mov edx, dword [ebp - 0x28]
push edx
push 0x55
push esi
call fcn.0061e910
mov eax, dword [ebp - 8]
mov dword [esi + 0x1ac], ebx
xor ebx, ebx
push esi
mov dword [esi + 0x138], eax
mov dword [esi + 0x1a8], ebx
mov word [esi + 0xec], di
mov byte [esi + 0x134], bl
call fcn.006763b0
mov eax, dword [ebp - 4]
mov cl, byte [ebp - 0xc]
mov edi, dword [ebp - 0x18]
xor edx, edx
mov dx, word [esi + 0xea]
push 0x3c00
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], eax
mov byte [esi + 0x2c1], cl
push edx
push edi
call fcn.00643cb0
mov word [esi + 0xf2], ax
xor eax, eax
mov ax, word [esi + 0xea]
push 0x4000
push eax
push edi
call fcn.00643cb0
mov ecx, dword [ebp - 0x1c]
mov word [esi + 0xf0], ax
mov eax, dword [esi + 0xe0]
add esp, 0x28
cmp eax, ecx
mov word [esi + 0xfc], bx
mov byte [esi + 0x119], 1
jle 0x6b8b55
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edi, 0x200
cmp eax, edi
mov dword [esi + 0x1a4], eax
jge 0x6b8b74
mov dword [esi + 0x1a4], edi
jmp 0x6b8b74
mov edx, dword [0x91cfa4]
mov cl, byte [esi]
cmp cl, byte [edx + 0x19]
jne 0x6b8b6a
mov dword [esi + 0x1a4], ebx
jmp 0x6b8b74
mov dword [esi + 0x1a4], 0x200
mov ecx, dword [esi + 0x1a4]
mov eax, 0x400
cmp ecx, eax
jle 0x6b8b89
mov dword [esi + 0x1a4], eax
mov word [esi + 0xdc], 0x70
jmp 0x6bb3b5
xor ecx, ecx
mov cx, word [esi + 0xea]
xor al, 1
mov byte [ebp - 0xc], al
mov eax, dword [ebp - 0xc]
push eax
push ecx
push 0
push 0x5a
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + ebx*4 + 0xb34]
mov eax, dword [eax + ebx*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x24
call fcn.0043bd30
mov dword [ebp + 8], eax
fild dword [ebp + 8]
mov eax, dword [0x91cfa8]
lea ecx, [ebx + 1]
mov dword [ebp + 8], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp + 8]
call fcn.0043bd30
mov ecx, dword [esi + 0xe0]
lea edx, [eax + 0xa00]
cmp ecx, edx
mov dword [ebp - 4], eax
jg 0x6b9dc6
lea edx, [ecx + 0x400]
cmp eax, edx
jg 0x6b8e4e
movzx edi, byte [esi + 0x124]
mov edx, 0x240
sub edx, edi
lea edx, [edx + edx*2]
shl edx, 2
cmp eax, edx
jge 0x6b8e4e
lea edx, [ecx - 0x400]
cmp eax, edx
jle 0x6b8c55
cmp eax, dword [ebp - 0x1c]
jg 0x6b8e4e
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
add esp, 0x10
mov edi, eax
cmp dword [esi + 0xe0], 0x800
mov eax, dword [0x91cfa4]
mov dword [ebp - 0x14], edi
jg 0x6b8c9e
mov dword [ebp - 0x30], 0x30
jmp 0x6b8cb0
mov cl, byte [esi]
sub cl, byte [eax + 0x19]
neg cl
sbb ecx, ecx
and ecx, 8
add ecx, 0x18
mov dword [ebp - 0x30], ecx
mov ecx, dword [0x91d3f0]
fld dword [esi + 0x2d8]
fadd dword [eax + 0x40]
xor edx, edx
mov dx, word [esi + 0xec]
push edx
mov edx, dword [ecx + ebx*4 + 0xb38]
mov ecx, dword [ecx + ebx*4 + 0x438]
push edx
push ecx
sub esp, 8
fstp dword [esp + 4]
fld dword [esi + 0x2d0]
fadd dword [eax + 0x38]
fstp dword [esp]
call fcn.006442f0
add esp, 0x10
push eax
call fcn.006442a0
xor edx, edx
mov dx, word [esi + 0xec]
mov word [ebp + 0xa], ax
push edx
push edi
call fcn.006442a0
mov cx, word [ebp + 0xa]
add esp, 0x10
cmp ax, cx
ja case.0x6b5bf1.81
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov cx, word [esi + 0xec]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, word [ebp - 0x30]
ja case.0x6b5bf1.81
xor edi, edi
push edi
push 0x5a
push esi
call fcn.0061e910
mov edx, dword [ebp - 8]
mov ax, word [ebp - 0x14]
push esi
mov word [esi + 0x2e0], di
mov dword [esi + 0x138], edx
mov dword [esi + 0x1ac], ebx
mov dword [esi + 0x1a8], edi
mov word [esi + 0xec], ax
mov byte [esi + 0x134], 0
call fcn.006763b0
mov eax, dword [ebp - 4]
mov cl, byte [ebp - 0xc]
mov ebx, dword [ebp - 0x18]
xor edx, edx
mov dx, word [esi + 0xea]
push 0x3c00
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], eax
mov byte [esi + 0x2c1], cl
push edx
push ebx
call fcn.00643cb0
mov word [esi + 0xf2], ax
xor eax, eax
mov ax, word [esi + 0xea]
push 0x4000
push eax
push ebx
call fcn.00643cb0
mov ecx, dword [ebp - 0x1c]
mov word [esi + 0xf0], ax
mov eax, dword [esi + 0xe0]
add esp, 0x28
cmp eax, ecx
mov word [esi + 0xfc], di
mov byte [esi + 0x119], 1
jle 0x6b8e0c
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edi, 0x200
cmp eax, edi
mov dword [esi + 0x1a4], eax
jge 0x6b8e2b
mov dword [esi + 0x1a4], edi
jmp 0x6b8e2b
mov edx, dword [0x91cfa4]
mov cl, byte [esi]
cmp cl, byte [edx + 0x19]
jne 0x6b8e21
mov dword [esi + 0x1a4], edi
jmp 0x6b8e2b
mov dword [esi + 0x1a4], 0x200
mov ecx, dword [esi + 0x1a4]
mov eax, 0x400
cmp ecx, eax
jle 0x6b8e40
mov dword [esi + 0x1a4], eax
mov word [esi + 0xdc], 0x74
jmp 0x6bb3b5
movzx edx, byte [esi + 0x124]
mov eax, 0x1c0
sub eax, edx
lea eax, [eax + eax*2]
shl eax, 2
cmp ecx, eax
jle 0x6b8e79
mov ecx, dword [0x91d3f0]
pop edi
pop esi
mov byte [ecx + 0x6d], 1
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp word [ebp - 0x24], 0x2c
jb 0x6ba96b
mov edx, dword [ebp - 8]
push edx
push 0xa
call fcn.006b37d0
mov edi, eax
push edi
push esi
call fcn.006465b0
add esp, 0x10
test eax, eax
je case.0x6b5bf1.81
mov eax, dword [0x91cfa4]
mov cl, byte [eax + 0x19]
test cl, cl
mov ebx, dword [0x91d3f0]
jne 0x6b920f
fld dword [ebx + 0x2c]
call fcn.0043bd30
test eax, eax
jg 0x6b8ec7
neg eax
cmp eax, 0x158
jg 0x6b920f
mov edx, dword [ebp - 0x18]
xor ecx, ecx
mov cx, word [ebx + 0x60]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja 0x6b9209
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
xor edx, edx
mov dx, word [esi + 0xea]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x50
ja 0x6b9209
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 + 0xeb6620]
shr eax, 0x1a
mov ecx, 0xffffff6c
sub ecx, eax
shl ecx, 6
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [ebp + 8], edx
mov edx, dword [0x91d3f0]
fild dword [ebp + 8]
fcomp dword [edx + edi*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je case.0x6b5bf1.81
mov eax, dword [ebp - 8]
push eax
push 8
call fcn.006b37d0
mov edx, dword [ebp - 0x18]
xor ecx, ecx
mov cx, word [esi + 0xea]
push 0x93e
mov edi, eax
push ecx
push edx
call fcn.00643cb0
xor ecx, ecx
mov cl, byte [ebp - 0x10]
xor cl, 1
mov byte [ebp + 8], cl
mov dword [ebp - 0x20], eax
push ecx
push eax
push 0
push 0x339
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x38
call fcn.0043bd30
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
mov eax, dword [0x91cfa8]
lea ecx, [edi + 1]
mov dword [ebp - 0x3c], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x3c]
call fcn.0043bd30
mov ebx, eax
mov eax, dword [esi + 0xe0]
lea edx, [ebx + 0xa00]
cmp eax, edx
jg 0x6b9dc6
cmp ebx, 0x800
jl 0x6b9030
lea ecx, [eax + 0x400]
cmp ebx, ecx
jg case.0x6b5bf1.81
mov edx, dword [esi + 0x11c]
add edx, 0x400
cmp ebx, edx
jge case.0x6b5bf1.81
cmp ebx, eax
jle 0x6b9051
cmp ebx, dword [ebp - 0x1c]
jg case.0x6b5bf1.81
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [esi + 0xe0], 0x800
jg 0x6b9093
mov dword [ebp - 0x30], 0x30
jmp 0x6b90ab
mov ecx, dword [0x91cfa4]
mov al, byte [esi]
sub al, byte [ecx + 0x19]
neg al
sbb eax, eax
and eax, 0xfffffffc
add eax, 0x10
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x14]
xor eax, eax
mov ax, word [esi + 0xec]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, word [ebp - 0x30]
ja case.0x6b5bf1.81
push 0
push 0x339
push esi
call fcn.0061e910
push 4
push esi
call fcn.00655eb0
mov ecx, dword [ebp - 8]
mov dx, word [ebp - 0x14]
xor eax, eax
push esi
mov word [esi + 0x2e0], ax
mov dword [esi + 0x138], ecx
mov dword [esi + 0x1ac], edi
mov dword [esi + 0x1a8], eax
mov word [esi + 0xec], dx
mov byte [esi + 0x134], al
call fcn.006763b0
mov edx, dword [ebp - 0x18]
mov al, byte [ebp + 8]
xor ecx, ecx
mov cx, word [esi + 0xea]
push 0x4000
mov dword [esi + 0xe0], ebx
mov dword [esi + 0xe4], ebx
mov byte [esi + 0x2c1], al
push ecx
push edx
call fcn.00643cb0
xor ecx, ecx
mov cx, word [esi + 0xea]
mov word [esi + 0xf0], ax
mov eax, dword [ebp - 0x20]
push eax
push ecx
call fcn.006442d0
movzx eax, ax
cdq
idiv edi
mov ecx, dword [esi + 0xe0]
add esp, 0x2c
mov edi, 0x200
mov word [esi + 0xfc], ax
cmp ecx, dword [ebp - 0x1c]
jle 0x6b91f1
mov edx, dword [ebp - 0x1c]
mov eax, ecx
sub eax, edx
cdq
sub eax, edx
sar eax, 1
cmp eax, edi
mov dword [esi + 0x1a4], eax
jge 0x6b9198
mov dword [esi + 0x1a4], edi
mov edx, dword [esi + 0x1a4]
mov eax, 0x400
cmp edx, eax
jle 0x6b91ad
mov dword [esi + 0x1a4], eax
movzx eax, byte [esi + 0x124]
lea edx, [eax + eax*2]
shl edx, 2
mov eax, 0x1900
sub eax, edx
xor edx, edx
cmp ecx, eax
setle dl
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], 0x3c
mov eax, 1
dec edx
and edx, 0xffffff80
add edx, edi
pop edi
mov word [esi + 0xf2], dx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x91cfa4]
mov dl, byte [esi]
cmp dl, byte [eax + 0x19]
jne 0x6b9192
mov dword [esi + 0x1a4], 0
jmp 0x6b9198
mov ebx, dword [0x91d3f0]
mov eax, dword [0x91cfa4]
mov cl, byte [eax + 0x19]
test cl, cl
jne 0x6b9247
cmp dword [ebx + 0x58], 0x1000
jle 0x6b9247
mov edx, dword [ebp - 0x18]
xor ecx, ecx
mov cx, word [ebx + 0x60]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jbe case.0x6b5bf1.81
mov ebx, dword [0x91d3f0]
xor ecx, ecx
cmp word [esi + 0x2dc], 0x4d
mov dword [ebp - 0x3c], ecx
je 0x6b933b
mov eax, dword [0x91cfa4]
mov al, byte [eax + 0x19]
test al, al
jne 0x6b9286
cmp word [ebp - 0x2c], 0x40
jb 0x6b927e
cmp dword [ebx + edi*4 + 0xb4], 0x1c00
jg 0x6b933b
test al, al
je 0x6b9332
fld dword [ebx + 0x2c]
fabs
fcomp dword [0x8d35dc]
fnstsw ax
test ah, 0x41
je 0x6b9332
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dl, byte [ebp - 0x10]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb662c]
and ecx, 1
cmp dl, cl
jne 0x6b9332
cmp word [ebp - 0x24], 0x46
jae 0x6b9332
mov edx, dword [eax + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea ecx, [eax + eax*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ebx + edi*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je 0x6b9332
cmp word [esi + 0x2dc], 0x49
je 0x6b9332
cmp word [esi + 0x2dc], 0x4a
je 0x6b9332
cmp word [esi + 0x2dc], 0x51
je 0x6b9332
cmp word [esi + 0x2dc], 0x52
jne 0x6b933e
mov dword [ebp - 0x3c], 1
jmp 0x6b933e
mov dword [ebp - 0x3c], ecx
xor eax, eax
mov ax, word [esi + 0x1c4]
xor ecx, ecx
mov cx, word [esi + 0xea]
mov edx, eax
sub edx, ecx
mov cx, 0x8000
cmp cx, dx
movzx ecx, byte [ebp - 0x10]
sbb edx, edx
inc edx
cmp edx, ecx
jne 0x6b9389
push eax
xor eax, eax
mov ax, word [esi + 0xea]
push eax
call fcn.006442a0
mov ebx, dword [0x91d3f0]
add esp, 8
cmp ax, 0x30
jae 0x6ba00d
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x6ba00d
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea eax, [eax + edx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb6660]
and ecx, 0xfe000000
cmp ecx, 0xa0000000
mov dword [ebp + 8], eax
jb 0x6b99ee
mov edx, eax
mov eax, dword [edx + 0xeb6620]
shr eax, 0x1a
mov ecx, 0xffffff6c
sub ecx, eax
lea edx, [ecx + ecx*2]
shl edx, 5
mov dword [ebp - 0x3c], edx
mov eax, 0xb30f6353
imul edx
add edx, dword [ebp - 0x3c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x3c], edx
fild dword [ebp - 0x3c]
fcomp dword [ebx + edi*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je 0x6b99ee
lea ecx, [ecx + ecx*2]
shl ecx, 6
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ebx + edi*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je case.0x6b5bf1.81
mov al, byte [ebp - 0x10]
xor al, 1
mov byte [ebp - 0xc], al
neg al
mov edx, dword [ebp - 0xc]
push edx
mov dword [ebp + 8], 0x54
sbb eax, eax
and eax, 0xfffe
inc eax
imul eax, eax, 0x1110
add ax, word [esi + 0xea]
push eax
push 0
push 0x54
push esi
mov dword [ebp - 0x20], eax
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fstp dword [ebp - 0x3c]
mov eax, dword [ebp - 8]
push eax
push edi
push 0
push 0x54
push esi
call fcn.00691a30
fld dword [ebp - 0x3c]
fsqrt
add esp, 0x38
mov dword [ebp - 0x38], eax
call fcn.0043bd30
mov ecx, dword [0x91cfa8]
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
fmul dword [ecx + 0x48]
fmul dword [0x871154]
fidiv dword [ebp - 0x38]
call fcn.0043bd30
mov ebx, eax
mov eax, dword [esi + 0xe0]
lea edx, [ebx + 0x400]
cmp eax, edx
jle 0x6b9576
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x20]
push eax
push ecx
push 0
push 0x56
push esi
mov dword [ebp + 8], 0x56
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fstp dword [ebp - 0x3c]
mov eax, dword [ebp - 8]
push eax
push edi
push 0
push 0x56
push esi
call fcn.00691a30
fld dword [ebp - 0x3c]
fsqrt
add esp, 0x38
mov dword [ebp - 0x38], eax
call fcn.0043bd30
mov ecx, dword [0x91cfa8]
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
fmul dword [ecx + 0x48]
fmul dword [0x871154]
fidiv dword [ebp - 0x38]
call fcn.0043bd30
mov ebx, eax
mov eax, dword [esi + 0xe0]
sub eax, ebx
test eax, eax
mov dword [ebp - 0x28], 0
jg 0x6b958b
neg eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], 2
mov dword [ebp - 0x24], 8
lea esp, [esp]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
push edx
push eax
call fcn.006b37d0
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 8]
push ecx
push eax
push 0
push edx
push esi
mov dword [ebp - 0x3c], eax
call fcn.00691a30
mov dword [ebp - 0x38], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x2c
call fcn.0043bd30
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
mov eax, dword [0x91cfa8]
fmul dword [eax + 0x48]
fmul dword [0x871154]
fidiv dword [ebp - 0x38]
call fcn.0043bd30
mov ecx, dword [esi + 0xe0]
sub ecx, eax
test ecx, ecx
jg 0x6b961f
neg ecx
cmp dword [ebp - 0x30], ecx
jle 0x6b964a
mov edx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x3c]
mov ebx, eax
mov eax, dword [ebp - 0x24]
sub eax, 2
mov dword [ebp - 0x28], edx
add edx, 2
cmp eax, 6
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x24], eax
jge 0x6b95a0
push edi
push esi
call fcn.006b5690
add esp, 8
test eax, eax
je 0x6b96f9
cmp ebx, dword [ebp - 0x1c]
jle 0x6b96f9
mov ecx, dword [ebp - 8]
push ecx
push 8
call fcn.006b37d0
xor edx, edx
mov dx, word [esi + 0xea]
push 0x4fa
mov edi, eax
mov eax, dword [ebp - 0x18]
mov dword [ebp + 8], 0x4b
mov dword [ebp - 0x28], 0
push edx
push eax
call fcn.00643cb0
mov ecx, dword [ebp - 0xc]
push ecx
push eax
push 0
push 0x4b
push esi
mov dword [ebp - 0x20], eax
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x38
call fcn.0043bd30
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
mov eax, dword [0x91cfa8]
lea ecx, [edi + 1]
mov dword [ebp - 0x3c], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x3c]
call fcn.0043bd30
mov ebx, eax
mov eax, dword [esi + 0xe0]
lea edx, [ebx + 0x800]
cmp eax, edx
jle 0x6b9732
cmp word [ebp - 0x2c], 0x10
ja case.0x6b5bf1.81
push 0x400
push esi
call fcn.0063d620
add esp, 8
pop edi
mov byte [esi + 0x134], 0
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x11c]
mov ecx, dword [ebp - 0x1c]
push eax
push ecx
call fcn.00648620
mov ecx, dword [esi + 0xe0]
lea edx, [ecx + 0x400]
add esp, 8
cmp ebx, edx
jg 0x6b9ff2
lea edx, [eax + 0x400]
cmp ebx, edx
jg 0x6b9ff2
cmp ebx, ecx
jle 0x6b9773
cmp ebx, eax
jg 0x6b9ff2
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
push eax
mov dword [ebp - 0x3c], eax
xor eax, eax
mov ax, word [esi + 0xec]
push eax
call fcn.006442a0
add esp, 0x18
cmp ax, 4
jbe 0x6b9873
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x3c]
push 0x1000
push ecx
push edx
push esi
call fcn.006b3770
mov ecx, dword [ebp + 8]
mov ebx, eax
mov eax, dword [ebp - 8]
push eax
push edi
push 0
push ecx
push esi
mov dword [ebp - 0x20], ebx
call fcn.00691a30
mov edx, dword [ebp - 0xc]
push edx
push ebx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 8]
push 0
push eax
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
add esp, 0x48
mov dword [ebp - 0x3c], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x10
call fcn.0043bd30
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
mov eax, dword [0x91cfa8]
fmul dword [eax + 0x48]
fmul dword [0x871154]
fidiv dword [ebp - 0x38]
call fcn.0043bd30
mov ebx, eax
cmp word [ebp - 0x2c], 0x40
jae 0x6b988d
cmp dword [esi + 0xe0], 0x800
mov dword [ebp - 0x38], 0x18
jg 0x6b9894
mov dword [ebp - 0x38], 0x20
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dx, word [esi + 0xec]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, word [ebp - 0x38]
ja case.0x6b5bf1.81
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
push eax
push ecx
push esi
call fcn.0061e910
push 6
push esi
call fcn.00655eb0
mov edx, dword [ebp - 8]
add esp, 0x14
cmp word [ebp + 8], 0x54
mov dword [esi + 0x138], edx
mov dword [esi + 0x1ac], edi
mov dword [esi + 0x1a8], 0
mov dword [esi + 0xe0], ebx
jne 0x6b9902
push esi
mov dword [esi + 0xe4], ebx
call fcn.0068e3a0
add esp, 4
mov ax, word [ebp - 0x3c]
push esi
mov word [esi + 0xec], ax
mov byte [esi + 0x134], 0
call fcn.006763b0
mov ebx, dword [ebp - 0x20]
mov cl, byte [ebp - 0xc]
mov dx, word [ebp - 0x18]
xor eax, eax
mov ax, word [esi + 0xea]
add esp, 4
push edi
push ebx
mov byte [esi + 0x2c1], cl
mov word [esi + 0xf0], dx
mov word [esi + 0xf2], bx
push eax
call fcn.006442d0
movzx ecx, ax
add esp, 8
push ecx
call fcn.00679480
mov ecx, dword [esi + 0x11c]
mov word [esi + 0xfc], ax
mov eax, dword [esi + 0xe0]
add esp, 8
cmp eax, ecx
mov dword [esi + 0x1a4], 0
jle 0x6b998d
sub eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esi + 0x1a4], eax
cmp word [ebp + 8], 0x56
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], 0x34
jne 0x6b99b9
pop edi
mov word [esi + 0xdc], 0x30
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp word [esi + 0x2dc], 0x4b
jne 0x6b71c2
mov dx, word [ebp - 0x18]
pop edi
mov word [esi + 0xf0], bx
mov word [esi + 0xf2], dx
mov word [esi + 0xdc], 0x88
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xeb6620]
shr edx, 0x1a
mov ecx, 0xffffff6c
sub ecx, edx
lea edx, [ecx + ecx*2]
shl edx, 6
mov dword [ebp + 8], edx
mov eax, 0xb30f6353
imul edx
add edx, dword [ebp + 8]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ebx + edi*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je case.0x6b5bf1.81
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ebx + edi*4 + 0x7b4]
fnstsw ax
test ah, 0x41
jne 0x6b9a7d
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dx, word [esi + 0xea]
push 0xe38
mov ebx, 0x5d
push edx
push eax
jmp 0x6b9a95
mov edx, dword [ebp - 0x18]
xor ecx, ecx
mov cx, word [esi + 0xea]
push 0x1332
mov ebx, 0x53
push ecx
push edx
call fcn.00643cb0
add esp, 0xc
mov dword [ebp - 0x20], eax
xor eax, eax
mov al, byte [ebp - 0x10]
xor al, 1
mov byte [ebp + 8], al
push eax
mov eax, dword [ebp - 0x20]
push eax
push 0
push ebx
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fstp dword [ebp - 0x3c]
mov eax, dword [ebp - 8]
push eax
push edi
push 0
push ebx
push esi
call fcn.00691a30
fld dword [ebp - 0x3c]
fsqrt
add esp, 0x38
mov dword [ebp - 0x38], eax
call fcn.0043bd30
mov ecx, dword [0x91cfa8]
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
fmul dword [ecx + 0x48]
fmul dword [0x871154]
fidiv dword [ebp - 0x38]
call fcn.0043bd30
cmp bx, 0x53
mov dword [ebp - 4], eax
jne 0x6b9bbe
mov edx, eax
mov eax, dword [esi + 0xe0]
add edx, 0x400
cmp eax, edx
jle 0x6b9bbe
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
push eax
push ecx
push 0
mov ebx, 0x56
push ebx
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fstp dword [ebp - 0x3c]
mov eax, dword [ebp - 8]
push eax
push edi
push 0
push ebx
push esi
call fcn.00691a30
fld dword [ebp - 0x3c]
fsqrt
add esp, 0x38
mov dword [ebp - 0x38], eax
call fcn.0043bd30
mov ecx, dword [0x91cfa8]
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
fmul dword [ecx + 0x48]
fmul dword [0x871154]
fidiv dword [ebp - 0x38]
call fcn.0043bd30
mov dword [ebp - 4], eax
mov eax, dword [esi + 0xe0]
sub eax, dword [ebp - 4]
test eax, eax
mov dword [ebp - 0x28], 0
jg 0x6b9bd4
neg eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], 2
mov dword [ebp - 0x24], 8
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
push edx
push eax
call fcn.006b37d0
fild dword [ebp - 0x34]
mov ecx, dword [ebp - 8]
add esp, 8
push ecx
push edi
push ecx
fstp dword [esp]
push ebx
push esi
mov dword [ebp - 0x3c], eax
call fcn.00691a30
mov dword [ebp - 0x38], eax
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fstp st(0)
fild dword [ebp - 4]
mov eax, dword [0x91cfa8]
add esp, 0x24
fmul dword [eax + 0x48]
fmul dword [0x871154]
fidiv dword [ebp - 0x38]
call fcn.0043bd30
mov ecx, dword [esi + 0xe0]
sub ecx, eax
test ecx, ecx
jg 0x6b9c61
neg ecx
cmp dword [ebp - 0x30], ecx
jle 0x6b9c8d
mov edx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x3c]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x24]
sub eax, 2
mov dword [ebp - 0x28], edx
add edx, 2
cmp eax, 6
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x24], eax
jge 0x6b9be5
push edi
push esi
call fcn.006b5690
add esp, 8
test eax, eax
je 0x6b9d42
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x1c]
jle 0x6b9d42
mov edx, dword [ebp - 8]
push edx
push 8
call fcn.006b37d0
mov ecx, dword [ebp - 0x18]
mov edi, eax
xor eax, eax
mov ax, word [esi + 0xea]
push 0x4fa
mov ebx, 0x4b
mov dword [ebp - 0x28], 0
push eax
push ecx
call fcn.00643cb0
xor edx, edx
mov dl, byte [esi + 0x2c1]
mov dword [ebp - 0x20], eax
push edx
push eax
push 0
push ebx
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x38
call fcn.0043bd30
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
mov eax, dword [0x91cfa8]
lea ecx, [edi + 1]
mov dword [ebp - 0x3c], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x3c]
call fcn.0043bd30
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0xe0]
add edx, 0x800
cmp eax, edx
jle 0x6b9ddb
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
mov eax, 0xffffff6c
sub eax, ecx
lea ecx, [eax + eax*2]
shl ecx, 4
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcom dword [ecx + 0x7b4]
fnstsw ax
test ah, 5
jp 0x6b9dd0
fcomp dword [ecx + 0x7d4]
fnstsw ax
test ah, 5
jp case.0x6b5bf1.81
cmp word [ebp - 0x2c], 0x10
jmp 0x6b89d9
pop edi
fstp st(0)
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x11c]
mov edx, dword [ebp - 0x1c]
push ecx
push edx
call fcn.00648620
mov ecx, dword [esi + 0xe0]
mov edx, dword [ebp - 4]
add ecx, 0x400
add esp, 8
cmp edx, ecx
jg 0x6b9f92
mov ecx, edx
cmp ecx, eax
jg 0x6b9f92
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
add esp, 0x10
cmp word [ebp - 0x2c], 0x40
mov dword [ebp - 0x3c], eax
jae 0x6b9e56
cmp dword [esi + 0xe0], 0x800
mov dword [ebp - 0x38], 0x20
jg 0x6b9e5d
mov dword [ebp - 0x38], 0x30
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov cx, word [esi + 0xec]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, word [ebp - 0x38]
ja case.0x6b5bf1.81
mov edx, dword [ebp - 0x28]
push edx
push ebx
push esi
call fcn.0061e910
push 6
push esi
call fcn.00655eb0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
add esp, 0x14
cmp bx, 0x53
mov dword [esi + 0x138], eax
mov dword [esi + 0x1ac], edi
mov dword [esi + 0x1a8], 0
mov dword [esi + 0xe0], ecx
jne 0x6b9ecc
mov edx, ecx
push esi
mov dword [esi + 0xe4], edx
call fcn.0068e3a0
add esp, 4
mov ax, word [ebp - 0x3c]
push esi
mov word [esi + 0xec], ax
mov byte [esi + 0x134], 0
call fcn.006763b0
mov ebx, dword [ebp - 0x20]
mov cl, byte [ebp + 8]
mov dx, word [ebp - 0x18]
xor eax, eax
mov ax, word [esi + 0xea]
push ebx
mov byte [esi + 0x2c1], cl
mov word [esi + 0xf0], dx
mov word [esi + 0xf2], bx
push eax
call fcn.006442d0
movzx eax, ax
cdq
idiv edi
mov ecx, dword [esi + 0x11c]
add esp, 0xc
mov dword [esi + 0x1a4], 0
mov word [esi + 0xfc], ax
mov eax, dword [esi + 0xe0]
cmp eax, ecx
jle 0x6b9f4d
sub eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esi + 0x1a4], eax
cmp word [esi + 0x2dc], 0x4b
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], 0x30
jne 0x6b71c2
mov cx, word [ebp - 0x18]
pop edi
mov word [esi + 0xf0], bx
mov word [esi + 0xf2], cx
mov word [esi + 0xdc], 0x88
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
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*2]
shl ecx, 4
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ecx + 0x7b4]
fnstsw ax
test ah, 5
jp case.0x6b5bf1.81
cmp word [ebp - 0x2c], 0x10
ja case.0x6b5bf1.81
pop edi
mov byte [esi + 0x134], 0
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea eax, [eax + edx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb6660]
and ecx, 0xfe000000
cmp ecx, 0xa0000000
mov dword [ebp + 8], eax
jb 0x6ba4c6
mov edx, dword [eax + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea ecx, [eax + eax*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x3c], edx
fild dword [ebp - 0x3c]
fcom dword [ebx + edi*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je 0x6ba4c1
fcomp dword [ebx + edi*4 + 0x7b4]
mov ecx, dword [ebp - 0x10]
push ecx
fnstsw ax
test ah, 0x41
jne 0x6ba0a9
mov edx, dword [ebp - 0x18]
push edx
push esi
call fcn.006b4d60
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [ebp - 0x10]
neg al
mov dword [ebp + 8], 0x59
sbb eax, eax
and eax, 0xfffe
inc eax
imul eax, eax, 0xd82
xor ebx, ebx
mov bx, word [esi + 0xea]
sub bx, ax
push ebx
push 0
push 0x59
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
mov dword [ebp - 0x14], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [esi + 0x2cc]
push ecx
mov ecx, dword [esi + 0x2c4]
push edx
push eax
push ecx
call fcn.006442f0
xor edx, edx
mov dx, word [esi + 0xea]
push eax
mov dword [ebp - 0x30], eax
push edx
call fcn.006442a0
add esp, 0x3c
cmp ax, 0x20
jae case.0x6b5bf1.81
mov eax, dword [ebp - 0x30]
push eax
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x60
jae case.0x6b5bf1.81
cmp word [ebp - 0x2c], 0x40
jae 0x6ba17d
cmp dword [esi + 0xe0], 0x800
mov dword [ebp - 0x38], 0x20
jg 0x6ba184
mov dword [ebp - 0x38], 0x30
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov dx, word [esi + 0xec]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, word [ebp - 0x38]
jae case.0x6b5bf1.81
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x10
call fcn.0043bd30
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
mov eax, dword [0x91cfa8]
lea ecx, [edi + 1]
mov dword [ebp - 0x3c], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x3c]
call fcn.0043bd30
mov ecx, dword [esi + 0xe0]
sub ecx, eax
test ecx, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 0x28], 0
jg 0x6ba209
neg ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], 2
mov dword [ebp - 0x38], 8
lea ebx, [ebx]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x38]
push edx
push eax
call fcn.006b37d0
mov dword [ebp - 0x3c], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x18
call fcn.0043bd30
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
mov eax, dword [0x91cfa8]
lea ecx, [edi + 1]
mov dword [ebp - 0x2c], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x2c]
call fcn.0043bd30
mov ecx, dword [esi + 0xe0]
sub ecx, eax
test ecx, ecx
jg 0x6ba28b
neg ecx
cmp dword [ebp - 0x30], ecx
jle 0x6ba2b7
mov edx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x3c]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x38]
sub eax, 2
mov dword [ebp - 0x28], edx
add edx, 2
cmp eax, 6
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], eax
jge 0x6ba220
push edi
push esi
call fcn.006b5690
add esp, 8
test eax, eax
je 0x6ba393
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1c]
jle 0x6ba393
mov eax, dword [ebp - 8]
push eax
push 8
call fcn.006b37d0
mov edx, dword [ebp - 0x18]
xor ecx, ecx
mov cx, word [esi + 0xea]
push 0x5b0
mov edi, eax
mov dword [ebp + 8], 0x4f
mov dword [ebp - 0x28], 0
push ecx
push edx
call fcn.00643cb0
mov ebx, eax
mov eax, dword [ebp - 0x10]
push eax
push ebx
push 0
push 0x4f
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
call fcn.0043bd30
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
mov eax, dword [0x91cfa8]
lea ecx, [edi + 1]
mov dword [ebp - 0x3c], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x3c]
call fcn.0043bd30
mov dword [ebp - 4], eax
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
add esp, 0x48
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 0xe0]
add eax, 0x800
cmp ecx, eax
jg case.0x6b5bf1.81
mov ecx, dword [esi + 0x11c]
mov edx, dword [ebp - 0x1c]
add ecx, 0x100
push ecx
push edx
call fcn.00648620
mov ecx, dword [esi + 0xe0]
mov edx, dword [ebp - 4]
add ecx, 0x600
add esp, 8
cmp edx, ecx
jg case.0x6b5bf1.81
mov ecx, edx
cmp ecx, eax
jg case.0x6b5bf1.81
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 8]
push edx
push eax
push esi
call fcn.0061e910
push 6
push esi
call fcn.00655eb0
mov ecx, dword [ebp - 8]
mov dx, word [ebp - 0x14]
push esi
mov dword [esi + 0x138], ecx
mov dword [esi + 0x1ac], edi
mov word [esi + 0xec], dx
call fcn.006763b0
mov al, byte [ebp - 0x10]
mov cx, word [ebp - 0x18]
xor edx, edx
mov dx, word [esi + 0xea]
push ebx
mov byte [esi + 0x134], 0
mov byte [esi + 0x2c1], al
mov word [esi + 0xf0], bx
mov word [esi + 0xf2], cx
push edx
call fcn.006442d0
movzx eax, ax
cdq
idiv edi
mov ecx, dword [esi + 0x11c]
add esp, 0x20
mov dword [esi + 0x1a4], 0
mov word [esi + 0xfc], ax
mov eax, dword [esi + 0xe0]
cmp eax, ecx
jle 0x6ba486
sub eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esi + 0x1a4], eax
cmp word [ebp + 8], 0x4f
mov eax, dword [ebp - 4]
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], eax
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], 0x2c
jne 0x6ba4b5
mov word [esi + 0xdc], 0x98
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
fstp st(0)
mov ecx, dword [eax + 0xeb6620]
shr ecx, 0x1a
mov eax, 0xffffff6c
sub eax, ecx
lea ecx, [eax + eax*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x10]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
push ecx
fild dword [ebp + 8]
fcomp dword [ebx + edi*4 + 0x7b4]
fnstsw ax
test ah, 0x41
je 0x6ba095
mov al, cl
neg al
mov dword [ebp + 8], 0x58
sbb eax, eax
and eax, 0xfffe
inc eax
imul eax, eax, 0x182c
xor ebx, ebx
mov bx, word [esi + 0xea]
sub bx, ax
push ebx
push 0
push 0x58
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
lea eax, [edi + 1]
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
add esp, 0x24
fstp dword [ebp - 0x38]
fsqrt
call fcn.0043bd30
mov ecx, dword [0x91cfa8]
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
fmul dword [ecx + 0x48]
fdiv dword [ebp - 0x38]
call fcn.0043bd30
mov ecx, dword [esi + 0xe0]
mov dword [ebp - 4], eax
add eax, 0x600
cmp ecx, eax
jle 0x6ba601
mov edx, dword [ebp - 0x10]
push edx
push ebx
push 0
push 0x5b
push esi
mov dword [ebp + 8], 0x5b
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x24
call fcn.0043bd30
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
mov eax, dword [0x91cfa8]
fmul dword [eax + 0x48]
fdiv dword [ebp - 0x38]
call fcn.0043bd30
mov dword [ebp - 4], eax
mov eax, dword [esi + 0xe0]
sub eax, dword [ebp - 4]
test eax, eax
mov dword [ebp - 0x28], 0
jg 0x6ba617
neg eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], 2
mov dword [ebp - 0x38], 8
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x38]
push ecx
push edx
call fcn.006b37d0
mov dword [ebp - 0x3c], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x18
call fcn.0043bd30
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x24]
mov eax, dword [0x91cfa8]
lea ecx, [edi + 1]
mov dword [ebp - 0x24], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x24]
call fcn.0043bd30
mov ecx, dword [esi + 0xe0]
sub ecx, eax
test ecx, ecx
jg 0x6ba693
neg ecx
cmp dword [ebp - 0x30], ecx
jle 0x6ba6bf
mov edx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x3c]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x38]
sub eax, 2
mov dword [ebp - 0x28], edx
add edx, 2
cmp eax, 6
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], eax
jge 0x6ba628
push edi
push esi
call fcn.006b5690
add esp, 8
test eax, eax
je 0x6ba771
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x1c]
jle 0x6ba771
mov eax, dword [ebp - 8]
push eax
push 8
call fcn.006b37d0
mov edx, dword [ebp - 0x18]
xor ecx, ecx
mov cx, word [esi + 0xea]
push 0x5b0
mov edi, eax
mov dword [ebp + 8], 0x4f
mov dword [ebp - 0x28], 0
push ecx
push edx
call fcn.00643cb0
mov ebx, eax
mov eax, dword [ebp - 0x10]
push eax
push ebx
push 0
push 0x4f
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x38
call fcn.0043bd30
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
mov eax, dword [0x91cfa8]
lea ecx, [edi + 1]
mov dword [ebp - 0x3c], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp - 0x3c]
call fcn.0043bd30
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0xe0]
add edx, 0x800
cmp eax, edx
jg case.0x6b5bf1.81
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
mov dword [ebp - 0x14], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [esi + 0x2cc]
push ecx
mov ecx, dword [esi + 0x2c4]
push edx
push eax
push ecx
call fcn.006442f0
xor edx, edx
mov dx, word [esi + 0xea]
push eax
mov dword [ebp - 0x30], eax
push edx
call fcn.006442a0
add esp, 0x28
cmp ax, 0x20
jae case.0x6b5bf1.81
mov eax, dword [ebp - 0x30]
push eax
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x60
jae case.0x6b5bf1.81
cmp word [ebp - 0x2c], 0x40
jae 0x6ba82b
cmp dword [esi + 0xe0], 0x800
mov dword [ebp - 0x38], 0x10
jg 0x6ba832
mov dword [ebp - 0x38], 0x30
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov dx, word [esi + 0xec]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, word [ebp - 0x38]
jae case.0x6b5bf1.81
mov eax, dword [esi + 0x11c]
mov ecx, dword [ebp - 0x1c]
add eax, 0x100
push eax
push ecx
call fcn.00648620
mov edx, dword [esi + 0xe0]
mov ecx, dword [ebp - 4]
add edx, 0x600
add esp, 8
cmp ecx, edx
jg case.0x6b5bf1.81
cmp ecx, eax
jg case.0x6b5bf1.81
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
push eax
push ecx
push esi
call fcn.0061e910
push 6
push esi
call fcn.00655eb0
mov edx, dword [ebp - 8]
mov ax, word [ebp - 0x14]
push esi
mov dword [esi + 0x138], edx
mov dword [esi + 0x1ac], edi
mov word [esi + 0xec], ax
call fcn.006763b0
mov cl, byte [ebp - 0x10]
mov dx, word [ebp - 0x18]
xor eax, eax
mov ax, word [esi + 0xea]
push ebx
mov byte [esi + 0x134], 0
mov byte [esi + 0x2c1], cl
mov word [esi + 0xf0], bx
mov word [esi + 0xf2], dx
push eax
call fcn.006442d0
movzx eax, ax
cdq
idiv edi
mov ecx, dword [esi + 0x11c]
add esp, 0x20
mov dword [esi + 0x1a4], 0
mov word [esi + 0xfc], ax
mov eax, dword [esi + 0xe0]
cmp eax, ecx
jle 0x6ba92c
sub eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esi + 0x1a4], eax
cmp word [ebp + 8], 0x4f
mov eax, dword [ebp - 4]
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], eax
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], 0x28
jne 0x6ba4b5
pop edi
mov word [esi + 0xdc], 0x98
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
push 6
call fcn.00678f20
mov ebx, eax
mov eax, dword [esi + 0xe0]
add esp, 4
cmp eax, 0x1000
mov dword [ebp - 0x3c], eax
jge 0x6bad92
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea edi, [edx + ecx*8]
imul edi, edi, 0x110
mov ecx, dword [edi + 0xeb6620]
shr ecx, 0x1a
mov eax, 0xffffff6c
sub eax, ecx
lea ecx, [eax + eax*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fcomp dword [ecx + ebx*4 + 0x7b4]
fnstsw ax
test ah, 5
jp 0x6bad9a
movzx eax, word [esi + 0x2dc]
add eax, 0xffffffc3
cmp eax, 0x13
ja case.0x6baa02.64
movzx edx, byte [eax + 0x6bb850]
jmp dword [edx*4 + 0x6bb848]
mov eax, dword [ebp - 8]
push eax
push esi
call fcn.006b3bb0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [0x91cfa4]
mov al, byte [edx + 0x19]
test al, al
jne 0x6baa37
cmp dword [ecx + 0x58], 0x1000
jg case.0x6b5bf1.81
mov ecx, dword [edi + 0xeb662c]
mov al, byte [ebp - 0x10]
and ecx, 1
cmp al, cl
jne 0x6babe8
mov dl, al
neg dl
mov ecx, dword [ebp - 0x10]
push ecx
sbb edx, edx
and edx, 0xfffe
inc edx
imul edx, edx, 0x5b0
xor eax, eax
mov ax, word [esi + 0xea]
sub ax, dx
push eax
push 0
push 0x284
push esi
mov dword [ebp - 0x20], eax
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov edx, dword [eax + ebx*4 + 0xb34]
mov eax, dword [eax + ebx*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x24
call fcn.0043bd30
mov dword [ebp + 8], eax
fild dword [ebp + 8]
mov eax, dword [0x91cfa8]
lea ecx, [ebx + 1]
mov dword [ebp + 8], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp + 8]
call fcn.0043bd30
mov edi, eax
mov eax, dword [esi + 0xe0]
lea edx, [edi + 0xa00]
cmp eax, edx
jg 0x6b9dc6
cmp edi, 0xe00
jg case.0x6b5bf1.81
lea ecx, [eax + 0x800]
cmp edi, ecx
jg case.0x6b5bf1.81
cmp edi, eax
jle 0x6bab09
cmp edi, dword [ebp - 0x1c]
jg case.0x6b5bf1.81
mov eax, dword [0x91d3f0]
mov edx, dword [eax + ebx*4 + 0xb34]
mov eax, dword [eax + ebx*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
push eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov ax, word [esi + 0xec]
push eax
call fcn.006442a0
add esp, 0x18
cmp ax, 0x40
ja case.0x6b5bf1.81
push 0
push 0x284
push esi
call fcn.0061e910
mov cx, word [ebp - 0x14]
push esi
mov word [esi + 0xec], cx
mov byte [esi + 0x134], 0
call fcn.006763b0
mov dl, byte [ebp - 0x10]
mov ecx, dword [ebp - 0x20]
mov ax, word [ebp - 0x18]
mov byte [esi + 0x2c1], dl
xor edx, edx
mov dx, word [esi + 0xea]
mov dword [esi + 0xe0], edi
mov dword [esi + 0xe4], edi
push ecx
xor edi, edi
mov dword [esi + 0x1a4], edi
mov dword [esi + 0x1ac], ebx
push edx
mov word [esi + 0xf0], ax
call fcn.006442d0
movzx eax, ax
cdq
idiv ebx
push 4
push esi
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], di
mov word [esi + 0xfc], ax
call fcn.00655eb0
add esp, 0x20
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
xor al, 1
mov cl, al
neg cl
mov byte [ebp - 0x10], al
mov edx, dword [ebp - 0x10]
push edx
sbb ecx, ecx
and ecx, 0xfffe
inc ecx
imul ecx, ecx, 0x7d2
xor eax, eax
mov ax, word [esi + 0xea]
sub ax, cx
push eax
push 0
push 0x283
push esi
mov dword [ebp - 0x20], eax
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + ebx*4 + 0xb34]
mov edx, dword [eax + ebx*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x24
call fcn.0043bd30
mov dword [ebp + 8], eax
fild dword [ebp + 8]
mov eax, dword [0x91cfa8]
lea ecx, [ebx + 1]
mov dword [ebp + 8], ecx
fmul dword [eax + 0x48]
fidiv dword [ebp + 8]
call fcn.0043bd30
mov edi, eax
mov eax, dword [esi + 0xe0]
lea edx, [edi + 0xa00]
cmp eax, edx
jg 0x6b9dc6
mov dl, byte [esi]
mov ecx, dword [0x91cfa4]
cmp dl, byte [ecx + 0xe]
je 0x6bacb4
cmp edi, 0xe00
jl 0x6bacb4
lea edx, [eax + 0xa00]
cmp edi, edx
jg case.0x6b5bf1.81
cmp edi, eax
jle 0x6bacb4
cmp edi, dword [ebp - 0x1c]
jg case.0x6b5bf1.81
mov eax, dword [0x91d3f0]
mov edx, dword [eax + ebx*4 + 0xb34]
mov eax, dword [eax + ebx*4 + 0x434]
push edx
mov edx, dword [ecx + 0x40]
push eax
mov eax, dword [ecx + 0x38]
push edx
push eax
call fcn.006442f0
xor ecx, ecx
mov cx, word [esi + 0xec]
push eax
mov dword [ebp - 0x14], eax
push ecx
call fcn.006442a0
add esp, 0x18
cmp ax, 0x40
ja case.0x6b5bf1.81
push 0
push 0x283
push esi
call fcn.0061e910
push 5
push esi
call fcn.00655eb0
mov dx, word [ebp - 0x14]
push esi
mov word [esi + 0xec], dx
mov byte [esi + 0x134], 0
call fcn.006763b0
mov al, byte [ebp - 0x10]
mov edx, dword [ebp - 0x20]
mov cx, word [ebp - 0x18]
mov byte [esi + 0x2c1], al
xor eax, eax
mov ax, word [esi + 0xea]
push edx
mov dword [esi + 0xe0], edi
mov dword [esi + 0xe4], edi
mov dword [esi + 0x1a4], 0
mov dword [esi + 0x1ac], ebx
mov word [esi + 0xf0], cx
push eax
call fcn.006442d0
movzx eax, ax
add esp, 0x20
cdq
idiv ebx
pop edi
mov byte [esi + 0xda], 2
mov word [esi + 0xdc], 4
mov word [esi + 0xfc], ax
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x91d3f0]
jmp 0x6bad9d
mov eax, dword [ebp - 0x3c]
mov edx, dword [0x91cfa4]
mov bl, byte [edx + 0x19]
test bl, bl
jne 0x6badd1
mov edx, dword [ecx + 0x58]
add eax, 0x400
cmp edx, eax
jle 0x6badd1
mov eax, dword [ebp - 0x18]
movzx ecx, word [ecx + 0x60]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x10
jbe case.0x6b5bf1.81
mov ebx, dword [ebp - 8]
push ebx
push 8
call fcn.006b37d0
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 + 0xeb6620]
shr edx, 0x1a
mov eax, 0xffffff6c
sub eax, edx
lea ecx, [eax + eax*2]
shl ecx, 5
mov eax, 0xb30f6353
imul ecx
add edx, ecx
mov ecx, dword [0x91d3f0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 8], edx
add esp, 8
fild dword [ebp + 8]
fcomp dword [ecx + edi*4 + 0x7b4]
fnstsw ax
test ah, 0x41
jne 0x6bae56
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
push edx
push eax
push esi
call fcn.006b4d60
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [0x91cfa4]
mov cl, byte [esi]
cmp cl, byte [edx + 0x19]
jne 0x6baeaf
movzx eax, word [esi + 0x2dc]
add eax, 0xffffffc3
cmp eax, 0x13
ja case.0x6bae79.64
movzx eax, byte [eax + 0x6bb86c]
jmp dword [eax*4 + 0x6bb864]
push ebx
push esi
call fcn.006b3bb0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [esi + 0x124]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0xe0]
shl ecx, 2
mov edx, 0x1100
sub edx, ecx
cmp eax, edx
jl case.0x6bae79.61
push edi
push esi
call fcn.006465b0
add esp, 8
test eax, eax
je case.0x6b5bf1.81
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [esi + 0x2cc]
push ecx
mov ecx, dword [esi + 0x2c4]
push edx
push eax
push ecx
call fcn.006442f0
mov edx, dword [0x91cfa4]
add esp, 0x10
mov ebx, eax
mov al, byte [edx + 0x19]
test al, al
jne 0x6baf3e
xor eax, eax
mov ax, word [esi + 0xec]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jae case.0x6b5bf1.81
xor edx, edx
mov dx, word [esi + 0xea]
push ebx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x28
jae case.0x6b5bf1.81
mov eax, dword [esi + 0x1b0]
test ah, 0x20
jne 0x6baf95
mov ax, word [esi + 0x2dc]
cmp ax, 0x1c
je 0x6baf95
cmp ax, 0x17
je 0x6baf95
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 + 0xeb6628]
shr eax, 0x19
push 0x28
push eax
call fcn.00614f40
mov ecx, dword [esi + 0x11c]
lea edx, [ecx + eax*4]
mov dword [ebp - 0x1c], edx
jmp 0x6bafd6
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 + 0xeb662c]
shr eax, 4
and eax, 0x7f
push 0x32
push eax
call fcn.00614f40
mov edx, dword [esi + 0x120]
lea ecx, [eax + eax*2]
lea eax, [ecx + edx - 0x3a9]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x40]
movzx eax, byte [ecx + 0xda]
add eax, 0xfffffff4
add esp, 8
cmp eax, 0x38
ja case.0x6baff2.14
movzx edx, byte [eax + 0x6bb888]
jmp dword [edx*4 + 0x6bb880]
add dword [ebp - 0x1c], 0x200
mov ecx, 0x30
cmp word [ebp - 0x24], cx
jae 0x6bb3d3
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
imul eax, eax, 0x110
mov edx, dword [eax + 0xeb662c]
mov al, byte [ebp - 0x10]
and edx, 1
cmp al, dl
jne 0x6bb3d3
cmp word [ebp - 0x2c], cx
ja 0x6bb3d3
mov ecx, dword [0x91cfa4]
mov al, byte [esi]
cmp al, byte [ecx + 0x19]
jne 0x6bb3d3
mov edx, dword [ebp - 0x10]
push edx
push ebx
push 0
push 0x4d
push esi
mov dword [ebp + 8], 0x4d
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
lea eax, [edi + 1]
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x40]
fstp dword [ebp - 0x38]
fsqrt
call fcn.0043bd30
mov ecx, dword [0x91cfa8]
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x40]
fmul dword [ecx + 0x48]
fdiv dword [ebp - 0x38]
call fcn.0043bd30
push edi
push esi
mov dword [ebp - 4], eax
call fcn.006b5690
add esp, 0x2c
test eax, eax
mov eax, dword [ebp - 4]
je 0x6bb138
cmp eax, dword [ebp - 0x1c]
jle 0x6bb138
mov edx, dword [ebp - 0x18]
push 0x5b0
push ebx
push edx
mov dword [ebp + 8], 0x4f
call fcn.00643cb0
mov ebx, eax
mov eax, dword [ebp - 0x10]
push eax
push ebx
push 0
push 0x4f
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x30
call fcn.0043bd30
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x40]
jmp 0x6bb1ad
mov edx, dword [esi + 0xe0]
lea ecx, [eax + 0xa00]
cmp edx, ecx
jg 0x6bb160
movzx ecx, byte [esi + 0x124]
lea edx, [ecx + ecx*2]
shl edx, 2
mov ecx, 0x1600
sub ecx, edx
cmp eax, ecx
jge 0x6bb1c0
mov edx, dword [ebp - 0x10]
push edx
push ebx
push 0
push 0x4e
push esi
mov dword [ebp + 8], 0x4e
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x24
call fcn.0043bd30
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x40]
mov eax, dword [0x91cfa8]
fmul dword [eax + 0x48]
fdiv dword [ebp - 0x38]
call fcn.0043bd30
mov dword [ebp - 4], eax
mov ecx, dword [esi + 0xe0]
lea edx, [eax + 0xa00]
cmp ecx, edx
jg 0x6bb5e5
lea edx, [ecx + 0x800]
cmp eax, edx
jg case.0x6b5bf1.81
cmp eax, ecx
jle 0x6bb1f7
mov ecx, dword [ebp - 0x1c]
add ecx, 0x200
cmp eax, ecx
jg case.0x6b5bf1.81
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
push eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov ax, word [esi + 0xec]
push eax
call fcn.006442a0
add esp, 0x18
cmp word [ebp + 8], 0x4f
je 0x6bb291
cmp ax, 4
jbe 0x6bb291
mov ecx, dword [ebp - 0x14]
push 0x1000
push ebx
push ecx
push esi
call fcn.006b3770
mov edx, dword [ebp - 0x10]
push edx
mov ebx, eax
mov eax, dword [ebp + 8]
push ebx
push 0
push eax
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
add esp, 0x34
mov dword [ebp - 0x14], eax
cmp word [ebp - 0x2c], 0x40
jae 0x6bb2ab
cmp dword [esi + 0xe0], 0x800
mov dword [ebp - 0x38], 0x10
jg 0x6bb2b2
mov dword [ebp - 0x38], 0x30
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov cx, word [esi + 0xec]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, word [ebp - 0x38]
ja case.0x6b5bf1.81
mov edx, dword [ebp + 8]
push 0
push edx
push esi
call fcn.0061e910
mov eax, dword [ebp - 8]
mov cx, word [ebp - 0x14]
push esi
mov dword [esi + 0x138], eax
mov dword [esi + 0x1ac], edi
mov word [esi + 0xec], cx
mov byte [esi + 0x134], 0
call fcn.006763b0
mov eax, dword [ebp - 4]
mov dl, byte [ebp - 0x10]
xor ecx, ecx
mov cx, word [esi + 0xea]
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], eax
mov ax, word [ebp - 0x18]
push ebx
mov byte [esi + 0x2c1], dl
mov word [esi + 0xf0], bx
push ecx
mov word [esi + 0xf2], ax
call fcn.006442d0
movzx eax, ax
cdq
idiv edi
mov dl, byte [esi]
add esp, 0x18
mov word [esi + 0xfc], ax
mov eax, dword [0x91cfa4]
cmp dl, byte [eax + 0x19]
jne 0x6bb367
mov dword [esi + 0x1a4], 0
jmp 0x6bb371
mov dword [esi + 0x1a4], 0x180
mov eax, dword [esi + 0xe0]
mov ecx, dword [ebp - 0x1c]
cmp eax, ecx
jle 0x6bb397
sub eax, ecx
mov ecx, dword [esi + 0x1a4]
cdq
and edx, 3
add eax, edx
sar eax, 2
add ecx, eax
mov dword [esi + 0x1a4], ecx
xor ecx, ecx
cmp word [esi + 0x2dc], 0x4f
setne cl
dec ecx
and ecx, 0x88
add ecx, 0x10
mov word [esi + 0xdc], cx
push 4
push esi
mov byte [esi + 0xda], 2
call fcn.00655eb0
add esp, 8
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
mov ecx, dword [esi + 0x2cc]
push edx
mov edx, dword [esi + 0x2c4]
push eax
push ecx
push edx
call fcn.006442f0
mov al, byte [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
xor al, 1
mov byte [ebp - 0xc], al
xor eax, eax
mov ax, word [esi + 0xea]
push 0x888
push eax
push ecx
call fcn.00643cb0
mov edx, dword [0x91cfa4]
add esp, 0x1c
mov ebx, eax
mov al, byte [edx + 0x19]
test al, al
jne 0x6bb469
mov ecx, dword [0x91d3f0]
cmp dword [ecx + 0x58], 0xc00
jle 0x6bb469
mov al, byte [ebp - 0xc]
movzx ecx, word [ecx + 0x60]
neg al
sbb eax, eax
and eax, 0xfffe
inc eax
lea eax, [eax + eax*2]
shl eax, 0xc
add eax, ebx
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jbe case.0x6b5bf1.81
mov edx, dword [ebp - 0xc]
push edx
push ebx
push 0
push 0x49
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
lea eax, [edi + 1]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
add esp, 0x24
fstp dword [ebp - 0x38]
fsqrt
call fcn.0043bd30
mov ecx, dword [0x91cfa8]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fmul dword [ecx + 0x48]
fdiv dword [ebp - 0x38]
call fcn.0043bd30
movzx ecx, byte [esi + 0x124]
lea edx, [ecx + ecx*2]
shl edx, 2
mov ecx, 0x1600
sub ecx, edx
cmp eax, ecx
mov dword [ebp - 4], eax
jge 0x6bb54c
mov edx, dword [ebp - 0xc]
push edx
push ebx
push 0
push 0x4a
push esi
mov dword [ebp + 8], 0x4a
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x24
call fcn.0043bd30
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x40]
mov eax, dword [0x91cfa8]
fmul dword [eax + 0x48]
fdiv dword [ebp - 0x38]
call fcn.0043bd30
mov dword [ebp - 4], eax
jmp 0x6bb5d5
push edi
push esi
call fcn.006b5690
add esp, 8
test eax, eax
mov eax, dword [ebp - 4]
je 0x6bb5ce
cmp eax, dword [ebp - 0x1c]
jle 0x6bb5ce
mov edx, dword [ebp - 0x18]
xor ecx, ecx
mov cx, word [esi + 0xea]
push 0x4fa
mov dword [ebp + 8], 0x4b
push ecx
push edx
call fcn.00643cb0
mov ebx, eax
mov eax, dword [ebp - 0xc]
push eax
push ebx
push 0
push 0x4b
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
add esp, 0x30
call fcn.0043bd30
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x40]
jmp 0x6bb534
mov dword [ebp + 8], 0x49
mov ecx, dword [esi + 0xe0]
lea edx, [eax + 0xa00]
cmp ecx, edx
jle 0x6bb602
cmp word [ebp - 0x2c], 0x10
ja case.0x6b5bf1.81
add eax, 0xc00
cmp ecx, eax
jge case.0x6b5bf1.81
jmp 0x6b89db
lea edx, [ecx + 0x800]
cmp eax, edx
jg case.0x6b5bf1.81
cmp eax, ecx
jle 0x6bb625
mov ecx, dword [ebp - 0x1c]
add ecx, 0x200
cmp eax, ecx
jg case.0x6b5bf1.81
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
push eax
mov eax, dword [0x91cfa4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
push eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov ax, word [esi + 0xec]
push eax
call fcn.006442a0
add esp, 0x18
cmp ax, 4
jbe 0x6bb6b8
mov ecx, dword [ebp - 0x14]
push 0x1000
push ebx
push ecx
push esi
call fcn.006b3770
mov edx, dword [ebp - 0xc]
push edx
mov ebx, eax
mov eax, dword [ebp + 8]
push ebx
push 0
push eax
push esi
call fcn.00643e50
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
add esp, 0x34
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov cx, word [esi + 0xec]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x10
ja case.0x6b5bf1.81
mov edx, dword [ebp + 8]
push 0
push edx
push esi
call fcn.0061e910
mov eax, dword [ebp - 8]
push esi
mov dword [esi + 0x138], eax
mov dword [esi + 0x1ac], edi
mov byte [esi + 0x134], 0
mov byte [esi + 0x119], 0
call fcn.006763b0
mov eax, dword [ebp - 4]
mov cx, word [ebp - 0x14]
mov dl, byte [ebp - 0xc]
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], eax
mov eax, dword [ebp - 0x18]
mov word [esi + 0xf2], ax
mov word [esi + 0xf4], ax
xor eax, eax
mov ax, word [esi + 0xea]
push ebx
mov word [esi + 0xec], cx
mov byte [esi + 0x2c1], dl
mov word [esi + 0xf0], bx
push eax
call fcn.006442d0
movzx eax, ax
cdq
idiv edi
add esp, 0x18
cmp word [ebp + 8], 0x4a
mov word [esi + 0xfc], ax
jne 0x6bb775
mov dword [esi + 0x1a4], 0xfffffc00
jmp 0x6bb798
mov edx, dword [0x91cfa4]
mov cl, byte [esi]
cmp cl, byte [edx + 0x19]
jne 0x6bb78e
mov dword [esi + 0x1a4], 0
jmp 0x6bb798
mov dword [esi + 0x1a4], 0x180
mov eax, dword [esi + 0xe0]
mov ecx, dword [ebp - 0x1c]
cmp eax, ecx
jle 0x6bb7be
sub eax, ecx
mov ecx, dword [esi + 0x1a4]
cdq
and edx, 3
add eax, edx
sar eax, 2
add ecx, eax
mov dword [esi + 0x1a4], ecx
xor eax, eax
cmp word [esi + 0x2dc], 0x4b
mov byte [esi + 0x2fa], 0
setne al
dec eax
and eax, 0x80
add eax, 8
mov word [esi + 0xdc], ax
jmp 0x6bb3b5