Function at 0x66b4ac
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov esi, ecx
call fcn.0068c2ac
mov ebx, dword [ebp + 9]
mov cl, al
movzx eax, bl
mov byte [ebp - 4], cl
cmp eax, 0x8c
ja case.0x66b4d2.28
jmp dword [eax*4 + 0x66ed58]
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0x80
push ecx
mov ecx, esi
call fcn.006719b2
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0xcf
push ecx
mov ecx, esi
call fcn.006719b2
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0xb0
push ecx
mov ecx, esi
call fcn.006719b2
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0x88
push ecx
mov ecx, esi
call fcn.006719b2
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + esi + 0x581]
lea eax, [edx + edx*4]
lea edi, [esi + eax*8]
or cl, 0x10
mov byte [edx + esi + 0x581], cl
mov eax, dword [edi + 0x58]
or eax, dword [edi + 0x5c]
je 0x66b5e3
or cl, 1
mov byte [edx + esi + 0x581], cl
cmp dword [edi + 0x48], 2
je 0x66cdc0
push edx
push 0xb00d
mov ecx, esi
call fcn.00671867
xor ebx, ebx
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0xe5
push ecx
mov ecx, esi
call fcn.006719b2
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
mov ebx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
test eax, eax
jne 0x66b6e3
cmp ebx, 0xc
jae 0x66b6e3
movzx eax, byte [ebx + ebx*4 + 0x44c8a4]
mov ecx, esi
cdq
push edx
push eax
push 0x70
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
movzx eax, byte [ebx + ebx*4 + 0x44c8a5]
mov ecx, esi
cdq
push edx
push eax
push 0x8c
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
movzx eax, byte [ebx + ebx*4 + 0x44c8a6]
mov ecx, esi
cdq
push edx
push eax
push 0x88
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
movzx eax, byte [ebx + ebx*4 + 0x44c8a7]
cdq
mov ecx, esi
push edx
push eax
push 0x65
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
pop edi
mov ebx, 1
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push edi
jmp 0x66b5e4
mov edi, dword [ebp + 0xc]
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
mov ebx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
test eax, eax
jne 0x66b6e3
cmp ebx, 8
jae 0x66b6e3
movzx eax, byte [ebx + ebx*4 + 0x44c934]
mov ecx, esi
cdq
push edx
push eax
push 0x70
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
movzx eax, byte [ebx + ebx*4 + 0x44c935]
mov ecx, esi
cdq
push edx
push eax
push 0x8c
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
movzx eax, byte [ebx + ebx*4 + 0x44c936]
mov ecx, esi
cdq
push edx
push eax
push 0x88
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
movzx eax, byte [ebx + ebx*4 + 0x44c937]
jmp 0x66b6be
mov edi, dword [ebp + 0xc]
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
mov ebx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
test eax, eax
jne 0x66b6e3
cmp ebx, 3
jae 0x66b6e3
movzx eax, byte [ebx + ebx*4 + 0x44c924]
mov ecx, esi
cdq
push edx
push eax
push 0x70
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
movzx eax, byte [ebx + ebx*4 + 0x44c925]
mov ecx, esi
cdq
push edx
push eax
push 0x8c
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
movzx eax, byte [ebx + ebx*4 + 0x44c926]
mov ecx, esi
cdq
push edx
push eax
push 0x88
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
movzx eax, byte [ebx + ebx*4 + 0x44c927]
jmp 0x66b6be
mov edi, dword [ebp + 0xc]
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
mov ebx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
test eax, eax
jne 0x66b6e3
cmp ebx, 0x20
jae 0x66b6e3
movzx eax, byte [ebx + ebx*4 + 0x44c960]
mov ecx, esi
cdq
push edx
push eax
push 0x70
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
movzx eax, byte [ebx + ebx*4 + 0x44c961]
mov ecx, esi
cdq
push edx
push eax
push 0x8c
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
movzx eax, byte [ebx + ebx*4 + 0x44c962]
mov ecx, esi
cdq
push edx
push eax
push 0x88
push edi
call fcn.006719b2
test al, al
je case.0x66b4d2.28
movzx eax, byte [ebx + ebx*4 + 0x44c963]
jmp 0x66b6be
mov edx, dword [ebp + 0xc]
or byte [edx + esi + 0x581], 0x10
lea eax, [edx + edx*4]
mov ecx, dword [esi + eax*8 + 0x58]
push dword [esi + eax*8 + 0x5c]
or ecx, 0x8000
push ecx
push 0x205
push edx
mov ecx, esi
call fcn.006719b2
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [ebp + 0xc]
or byte [edx + esi + 0x581], 0x10
lea eax, [edx + edx*4]
mov ecx, dword [esi + eax*8 + 0x58]
mov edi, ecx
mov ebx, dword [esi + eax*8 + 0x5c]
and edi, 0xc000
mov eax, edi
or eax, 0
jne 0x66b8fe
or ecx, 0x4000
push ebx
jmp 0x66b8b0
cmp edi, 0x4000
jne 0x66b5e3
push ebx
jmp 0x66b8b0
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0x70
push ecx
mov ecx, esi
call fcn.006719b2
push 0
xor ebx, ebx
mov ecx, esi
test al, al
push 1
push 0x53
setne bl
call fcn.00671905
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0x65
push ecx
jmp 0x66b8b7
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0x8c
push ecx
jmp 0x66b8b7
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0x19470
push ecx
jmp 0x66b8b7
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0x2cc3f
push ecx
jmp 0x66b8b7
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + esi + 0x581]
lea eax, [edx + edx*4]
or cl, 1
mov byte [edx + esi + 0x581], cl
cmp dword [esi + eax*8 + 0x48], 2
jne 0x66ba00
or cl, 0x40
mov byte [edx + esi + 0x581], cl
cmp dword [esi + eax*8 + 0x64], 2
je 0x66cdc0
push edx
push 0xb002
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0x29470
push ecx
jmp 0x66b8b7
mov eax, dword [ebp + 0xc]
or byte [eax + esi + 0x581], 0x10
lea eax, [eax + eax*4]
mov ebx, dword [esi + eax*8 + 0x58]
mov edx, dword [esi + eax*8 + 0x5c]
movzx eax, bl
mov dword [ebp - 8], eax
test bl, bl
je 0x66ba75
cmp eax, 0xff
je 0x66ba75
push 0
or edx, 0xffffffff
push edx
push 0x29470
push dword [ebp + 0xc]
jmp 0x66b8b7
mov ecx, ebx
mov eax, edx
shrd ecx, eax, 8
movzx eax, cl
mov dword [ebp - 0xc], eax
test cl, cl
je 0x66ba8e
cmp eax, 0xff
jne 0x66ba62
mov ecx, ebx
mov eax, edx
shrd ecx, eax, 0x10
movzx eax, cl
mov dword [ebp + 8], eax
test cl, cl
je 0x66baa7
cmp eax, 0xff
jne 0x66ba62
mov eax, edx
shrd ebx, eax, 0x18
movzx ebx, bl
test ebx, ebx
je 0x66babc
cmp ebx, 0xff
jne 0x66ba62
movzx ecx, dl
test dl, dl
je 0x66bacb
cmp ecx, 0xff
jne 0x66ba62
mov eax, edx
shr eax, 8
movzx edi, al
test al, al
je 0x66badf
cmp edi, 0xff
jne 0x66ba62
mov eax, edx
shr eax, 0x10
movzx eax, al
test eax, eax
je 0x66baf6
cmp eax, 0xff
jne 0x66ba62
shr edx, 0x18
test edx, edx
je 0x66bb09
cmp edx, 0xff
jne 0x66ba62
and edx, 1
and eax, 1
add edx, edx
and edi, 1
or edx, eax
and ecx, 1
mov eax, dword [ebp + 8]
add edx, edx
or edx, edi
and ebx, 1
add edx, edx
and eax, 1
or edx, ecx
add edx, edx
or edx, ebx
add edx, edx
or edx, eax
mov eax, dword [ebp - 0xc]
and eax, 1
add edx, edx
or edx, eax
mov eax, dword [ebp - 8]
add edx, edx
and eax, 1
push 0
or edx, eax
push edx
push 0x29470
push dword [ebp + 0xc]
jmp 0x66b8b7
mov edi, dword [ebp + 0xc]
mov ecx, esi
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
call fcn.0065fdba
push 0
push eax
push 0x29470
push edi
jmp 0x66b8b7
mov edi, dword [ebp + 0xc]
mov ecx, esi
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
call fcn.0065fdba
push 0
push eax
push 0x10d
push edi
jmp 0x66b8b7
mov edi, dword [ebp + 0xc]
mov cl, byte [edi + esi + 0x581]
lea eax, [edi + edi*4]
or cl, 1
mov byte [edi + esi + 0x581], cl
cmp dword [esi + eax*8 + 0x48], 2
jne 0x66bc3b
or cl, 0x40
mov byte [edi + esi + 0x581], cl
cmp dword [esi + eax*8 + 0x64], 2
jne 0x66bc3b
or cl, 0x10
mov byte [edi + esi + 0x581], cl
lea ecx, [ebp - 0x1c]
push ecx
push 0x15
push dword [esi + eax*8 + 0x5c]
mov ecx, esi
push dword [esi + eax*8 + 0x58]
call fcn.0068cc29
test al, al
je 0x66b6e3
mov edi, dword [ebp - 0x1c]
mov ecx, edi
mov eax, dword [ebp - 0x18]
shrd ecx, eax, 2
shr eax, 2
push eax
push ecx
push 0x265
mov ecx, esi
call fcn.00671905
test al, al
je case.0x66b4d2.28
push 0
and edi, 3
mov ecx, esi
push edi
push 0x5d
call fcn.00671905
jmp 0x66b6cb
push edi
push 0xb002
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov cl, byte [edi + esi + 0x581]
lea eax, [edi + edi*4]
or cl, 1
lea edx, [esi + eax*8]
mov byte [edi + esi + 0x581], cl
cmp dword [edx + 0x48], 2
jne 0x66bd3c
or cl, 0x40
mov byte [edi + esi + 0x581], cl
cmp dword [edx + 0x64], 1
jne 0x66bd3c
or cl, 0x10
mov byte [edi + esi + 0x581], cl
cmp dword [esi + 0x57c], 0x67
mov eax, dword [edx + 0x58]
mov ecx, dword [edx + 0x5c]
mov edx, dword [esi + 0x28]
mov ebx, dword [esi + 0x2c]
jne 0x66bce2
and edx, 0xfffff000
sub eax, edx
lea edx, [ebp - 0x1c]
push edx
sbb ecx, ebx
mov dword [ebp - 0x1c], eax
push 0x21
push ecx
mov dword [ebp - 0x18], ecx
mov ecx, esi
push eax
call fcn.0068cc29
test al, al
je 0x66b6e3
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
shrd edi, ecx, 0xc
shr ecx, 0xc
jmp 0x66bd09
sub eax, edx
lea edx, [ebp - 0x1c]
push edx
sbb ecx, ebx
mov dword [ebp - 0x1c], eax
push 0x15
push ecx
mov dword [ebp - 0x18], ecx
mov ecx, esi
push eax
call fcn.0068cc29
test al, al
je 0x66b6e3
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
mov eax, edi
shrd eax, ecx, 2
shr ecx, 2
push ecx
push eax
push 0x265
mov ecx, esi
call fcn.00671905
test al, al
je case.0x66b4d2.28
push 0
and edi, 3
mov ecx, esi
push edi
push 0x5d
call fcn.00671905
jmp 0x66b6cb
push edi
push 0xb004
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov cl, byte [edi + esi + 0x581]
lea eax, [edi + edi*4]
or cl, 1
mov byte [edi + esi + 0x581], cl
cmp dword [esi + eax*8 + 0x48], 2
jne 0x66bd3c
or cl, 0x40
mov byte [edi + esi + 0x581], cl
cmp dword [esi + eax*8 + 0x64], 1
jne 0x66bd3c
or cl, 0x10
mov byte [edi + esi + 0x581], cl
mov ecx, dword [esi + eax*8 + 0x58]
sub ecx, dword [esi + 0x28]
mov edx, dword [esi + eax*8 + 0x5c]
mov eax, ecx
sbb edx, dword [esi + 0x2c]
and eax, 3
or eax, 0
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edx
je 0x66bdc7
push edi
push 0xb012
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp - 0x1c]
push eax
push 0x13
push 0
push 4
push edx
push ecx
call fcn.006bfb5d
push edx
push eax
mov ecx, esi
call fcn.0068cc29
mov ecx, esi
test al, al
jne 0x66bdff
push edi
push 0xb00d
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push 0x265
call fcn.00671905
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov cl, byte [edi + esi + 0x581]
lea eax, [edi + edi*4]
or cl, 1
mov byte [edi + esi + 0x581], cl
cmp dword [esi + eax*8 + 0x48], 2
jne 0x66bd3c
or cl, 0x40
mov byte [edi + esi + 0x581], cl
cmp dword [esi + eax*8 + 0x64], 1
jne 0x66bd3c
or cl, 0x10
mov byte [edi + esi + 0x581], cl
mov ecx, dword [esi + eax*8 + 0x58]
sub ecx, dword [esi + 0x28]
mov ebx, dword [esi + eax*8 + 0x5c]
sbb ebx, dword [esi + 0x2c]
mov dword [ebp + 8], ecx
mov dword [ebp - 0x1c], ecx
mov ecx, esi
mov dword [ebp - 0x18], ebx
call fcn.00671e2c
test al, al
jne 0x66beba
mov eax, dword [esi + 0x57c]
cmp eax, 0x4b
je 0x66beba
cmp eax, 0x4c
je 0x66beba
cmp eax, 0x4d
je 0x66beac
cmp eax, 0x4e
je 0x66beac
mov eax, 0x1a
mov dword [ebp + 0xc], 0x340
jmp 0x66bec6
mov eax, 0xe
mov dword [ebp + 0xc], 0x1c5
jmp 0x66bec6
mov eax, 0x13
mov dword [ebp + 0xc], 0x265
lea ecx, [ebp - 0x1c]
push ecx
push eax
push 0
push 4
push ebx
push dword [ebp + 8]
call fcn.006bfb5d
push edx
push eax
mov ecx, esi
call fcn.0068cc29
mov ecx, esi
test al, al
je 0x66bde7
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [ebp + 0xc]
call fcn.00671905
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
lea eax, [edi + 2]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [ebx]
cmp eax, 0xffffffff
jne 0x66bf38
push edi
push 0xb001
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x1f
je 0x66c0a7
cmp eax, 0x41
je 0x66c0a7
push edi
mov ecx, esi
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
mov ecx, dword [esi + 0x578]
mov eax, ecx
or byte [esi + 0x580], 4
shr eax, 8
and eax, 0xf
add eax, 0xfffffffe
cmp eax, 7
ja case.0x66bf77.3
jmp dword [eax*4 + 0x66ef90]
and ecx, 0xfffff8ff
or ecx, 0x800
mov dword [esi + 0x578], ecx
cmp dword [ebx], 0x22
jge 0x66bfa2
push edi
push 0xb008
mov ecx, esi
call fcn.00671867
mov eax, dword [esi + 0x578]
shr eax, 8
and eax, 0xf
mov dword [ebp - 0xc], eax
cmp eax, 8
jne 0x66bfbd
mov dword [ebp - 0xc], 3
lea eax, [edi + edi*4]
mov ecx, esi
lea eax, [esi + eax*8]
mov dword [ebp - 0x10], eax
movzx eax, word [eax + 0x68]
cdq
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
call fcn.0068b7cc
movzx eax, al
cdq
mov ecx, eax
mov eax, edx
mov edx, dword [ebp + 8]
cmp edx, ecx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 8], eax
jne 0x66bff4
cmp ecx, eax
je 0x66c01f
mov eax, edx
or eax, ecx
je 0x66c01f
push edi
push 0xb008
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [ebx], 0x21
jg case.0x66bf77.3
jmp 0x66bfa2
mov eax, dword [ebp - 4]
or eax, dword [ebp - 8]
je 0x66c03a
push dword [ebp - 8]
push dword [ebp - 4]
push ecx
push edx
call fcn.006bfc07
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x10]
mov ecx, esi
or byte [edi + esi + 0x581], 2
push dword [eax + 0x4c]
push 0xa5
push edi
call fcn.00671a70
test al, al
je case.0x66b4d2.28
or byte [edi + esi + 0x581], 4
mov ecx, esi
push dword [ebx]
push 0xb0
push edi
call fcn.00671a70
test al, al
je case.0x66b4d2.28
push 0
push dword [ebp - 0xc]
mov ecx, esi
push 0x6d
call fcn.00671905
test al, al
je case.0x66b4d2.28
push dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, esi
push eax
push 0x2c
call fcn.00671905
jmp 0x66b6cb
push edi
push 0xb014
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
or byte [edi + esi + 0x582], 2
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x74], 0xffffffff
jne 0x66c0f0
push 0xb001
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
or byte [edi + esi + 0x582], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x74]
mov ecx, esi
call fcn.0068c6c4
cmp eax, 0x22
je 0x66c130
push edi
push 0xb017
mov ecx, esi
call fcn.00671867
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x74], 0x22
jl 0x66bffa
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x74], 0x43
jg 0x66bffa
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x4c], 0x22
lea edx, [esi + eax*8]
jl 0x66bffa
cmp dword [edx + 0x4c], 0x43
jg 0x66bffa
mov cl, byte [edi + esi + 0x582]
lea eax, [edi + edi*4]
or cl, 1
mov byte [edi + esi + 0x582], cl
cmp dword [esi + eax*8 + 0x70], 1
jne 0x66bf1e
or cl, 2
lea eax, [edi + edi*4]
mov byte [edi + esi + 0x582], cl
mov ecx, esi
cmp dword [esi + eax*8 + 0x74], 0x41
jl 0x66c1bc
push edi
push 0xb016
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
or byte [edi + esi + 0x581], 2
push dword [edx + 0x4c]
push 0xa5
push edi
call fcn.00671a70
test al, al
je case.0x66b4d2.28
or byte [edi + esi + 0x582], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x74]
mov ecx, esi
push 0xb0
push edi
call fcn.00671a70
jmp 0x66e0bf
mov ebx, dword [ebp + 0xc]
lea eax, [ebx + ebx*4]
cmp dword [esi + eax*8 + 0x50], 0xffffffff
je 0x66c222
push ebx
push 0xb002
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
test dword [esi + 0x578], 0x1000
mov ecx, esi
push ebx
jne 0x66c3a4
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
lea eax, [ebx + 0x581]
mov ecx, esi
add eax, esi
mov dword [ebp + 8], eax
or byte [eax], 0x10
lea eax, [ebx + ebx*4]
mov ebx, dword [esi + eax*8 + 0x58]
lea eax, [esi + eax*8]
mov edi, dword [eax + 0x5c]
mov dword [ebp - 0x10], eax
call fcn.0068c19b
push ebx
movzx eax, al
cdq
push edx
push eax
push edi
push ebx
call fcn.0063c0f9
or ecx, ebx
pop ebx
mov ecx, esi
je 0x66c296
push dword [ebp + 0xc]
push 0xb012
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push edx
push eax
push 0x18a
call fcn.00671905
test al, al
je case.0x66b4d2.28
mov eax, dword [ebp + 8]
mov ecx, esi
or byte [eax], 2
mov eax, dword [ebp - 0x10]
push dword [eax + 0x4c]
push 0xa5
push dword [ebp + 0xc]
call fcn.00671a70
jmp 0x66b6cb
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x4c]
mov ecx, esi
push 0xa5
push edi
call fcn.00671a70
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x50], 0xffffffff
je 0x66c332
push 0xb002
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
mov cl, byte [edi + esi + 0x582]
lea eax, [edi + edi*4]
or cl, 1
mov byte [edi + esi + 0x582], cl
mov eax, dword [esi + eax*8 + 0x70]
cmp eax, 2
mov dword [ebp + 8], eax
lea eax, [edi + edi*4]
jne 0x66c37c
or cl, 0x10
mov byte [edi + esi + 0x582], cl
mov ebx, dword [esi + eax*8 + 0x80]
mov eax, dword [esi + eax*8 + 0x84]
jmp 0x66c38c
or byte [edi + esi + 0x581], 0x10
mov ebx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
test dword [esi + 0x578], 0x1000
mov ecx, esi
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], eax
jne 0x66c3bb
push edi
push 0xb008
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push 9
mov eax, ebx
and eax, 0x1ff
push 0
push eax
call fcn.0068cbe7
cmp eax, ebx
jne 0x66b6e3
mov eax, dword [ebp + 0xc]
cmp edx, eax
jne 0x66b6e3
lea ecx, [ebp - 0x1c]
push ecx
push 9
push eax
push ebx
mov ecx, esi
call fcn.0068cc29
mov ecx, esi
test al, al
je 0x66bde7
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x4c]
push 0xa5
push edi
call fcn.00671a70
test al, al
je case.0x66b4d2.28
push dword [ebp - 0x18]
mov ecx, esi
push dword [ebp - 0x1c]
push 0x12c
call fcn.00671905
test al, al
je case.0x66b4d2.28
xor eax, eax
mov ecx, esi
cmp dword [ebp + 8], 2
push 0
setne al
push eax
push 0x2b
call fcn.00671905
xor ebx, ebx
cmp dword [ebp + 8], 2
pop edi
sete bl
inc ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x50], 0xffffffff
jne 0x66c31b
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
mov bl, byte [edi + esi + 0x581]
lea eax, [edi + edi*4]
lea ecx, [esi + eax*8]
or bl, 0x10
mov byte [edi + esi + 0x581], bl
mov eax, dword [ecx + 0x58]
push 0xa
mov dword [ebp + 0xc], ecx
mov ecx, dword [ecx + 0x5c]
mov dword [ebp - 0x1c], eax
and eax, 0x3ff
push 0
mov dword [ebp - 0x18], ecx
mov ecx, esi
push eax
call fcn.0068cbe7
mov dword [ebp + 8], edx
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x58]
cmp eax, ecx
jne 0x66b6e3
mov eax, dword [edx + 0x5c]
cmp dword [ebp + 8], eax
jne 0x66b6e3
lea edx, [ebp - 0x1c]
push edx
push 0xa
push eax
push ecx
mov ecx, esi
call fcn.0068cc29
mov ecx, esi
test al, al
je 0x66bde7
mov eax, dword [ebp + 0xc]
or bl, 2
mov byte [edi + esi + 0x581], bl
push dword [eax + 0x4c]
push 0xa5
push edi
call fcn.00671a70
test al, al
je case.0x66b4d2.28
mov edi, dword [ebp - 0x1c]
mov ecx, esi
mov eax, edi
push 0
and eax, 0x1ff
push eax
push 0x12c
call fcn.00671905
test al, al
je case.0x66b4d2.28
mov eax, dword [ebp - 0x18]
mov ecx, esi
shrd edi, eax, 9
push 0
and edi, 1
push edi
push 0x36
call fcn.00671905
test al, al
je case.0x66b4d2.28
mov eax, dword [esi + 0x578]
mov ebx, 1
shr eax, 0xc
mov ecx, esi
push 0
and eax, ebx
push eax
push 0x2b
call fcn.00671905
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x50], 0xffffffff
jne 0x66c31b
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
test dword [esi + 0x578], 0x1000
jne 0x66bffa
mov bl, byte [edi + esi + 0x581]
lea ecx, [ebp - 0x1c]
push ecx
lea eax, [edi + edi*4]
or bl, 0x10
lea eax, [esi + eax*8]
mov byte [edi + esi + 0x581], bl
push 9
push dword [eax + 0x5c]
mov ecx, esi
mov dword [ebp + 0xc], eax
push dword [eax + 0x58]
call fcn.0068cc29
mov ecx, esi
test al, al
je 0x66bde7
mov eax, dword [ebp + 0xc]
or bl, 2
mov byte [edi + esi + 0x581], bl
push dword [eax + 0x4c]
push 0xa5
push edi
call fcn.00671a70
test al, al
je case.0x66b4d2.28
push dword [ebp - 0x18]
mov ecx, esi
push dword [ebp - 0x1c]
push 0x12c
call fcn.00671905
jmp 0x66b6cb
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x50], 0xffffffff
jne 0x66c31b
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
mov cl, byte [edi + esi + 0x582]
lea eax, [edi + edi*4]
or cl, 1
mov byte [edi + esi + 0x582], cl
mov eax, dword [esi + eax*8 + 0x70]
cmp eax, 2
mov dword [ebp - 0xc], eax
lea eax, [edi + edi*4]
jne 0x66c675
or cl, 0x10
mov byte [edi + esi + 0x582], cl
mov ecx, dword [esi + eax*8 + 0x80]
mov ebx, dword [esi + eax*8 + 0x84]
jmp 0x66c685
or byte [edi + esi + 0x581], 0x10
mov ecx, dword [esi + eax*8 + 0x58]
mov ebx, dword [esi + eax*8 + 0x5c]
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x1c], ecx
mov ecx, esi
mov dword [ebp - 0x18], ebx
call fcn.0068c19b
movzx eax, al
cdq
mov ecx, edx
mov dword [ebp - 0x10], eax
push ecx
push eax
push ebx
push dword [ebp + 0xc]
mov dword [ebp + 8], ecx
call fcn.0063c381
or eax, edx
jne 0x66bdad
lea eax, [ebp - 0x1c]
push eax
push 7
push dword [ebp + 8]
push dword [ebp - 0x10]
push ebx
push dword [ebp + 0xc]
call fcn.006bfb5d
push edx
push eax
mov ecx, esi
call fcn.0068cc29
mov ecx, esi
test al, al
je 0x66bde7
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push 0xef
call fcn.00671905
test al, al
je case.0x66b4d2.28
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x4c]
mov ecx, esi
push 0xa5
push edi
call fcn.00671a70
test al, al
je case.0x66b4d2.28
mov eax, dword [esi + 0x578]
mov ecx, esi
shr eax, 0xc
push 0
and eax, 1
push eax
push 0x37
call fcn.00671905
xor eax, eax
mov ecx, esi
cmp dword [ebp - 0xc], 2
push 0
setne al
push eax
push 0x38
call fcn.00671905
xor ebx, ebx
cmp dword [ebp - 0xc], 2
pop edi
sete bl
inc ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x50], 0xffffffff
jne 0x66c31b
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
mov ecx, dword [esi + eax*8 + 0x58]
lea ebx, [esi + eax*8]
mov eax, dword [ebx + 0x5c]
mov dword [ebp + 8], ecx
mov dword [ebp - 0x1c], ecx
mov ecx, esi
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x18], eax
call fcn.0068c19b
movzx eax, al
cdq
mov ecx, edx
mov dword [ebp - 0xc], eax
push ecx
push eax
push dword [ebp + 0xc]
mov dword [ebp - 0x10], ecx
push dword [ebp + 8]
call fcn.0063c381
or eax, edx
jne 0x66bdad
lea eax, [ebp - 0x1c]
push eax
push 7
push dword [ebp - 0x10]
push dword [ebp - 0xc]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.006bfb5d
push edx
push eax
mov ecx, esi
call fcn.0068cc29
mov ecx, esi
test al, al
je 0x66bde7
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push 0xef
call fcn.00671905
test al, al
je case.0x66b4d2.28
or byte [edi + esi + 0x581], 2
mov ecx, esi
push dword [ebx + 0x4c]
push 0xa5
push edi
call fcn.00671a70
jmp 0x66b6cb
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x50], 0xffffffff
jne 0x66c31b
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
mov cl, byte [edi + esi + 0x582]
lea eax, [edi + edi*4]
or cl, 1
mov byte [edi + esi + 0x582], cl
mov ebx, dword [esi + eax*8 + 0x70]
lea eax, [edi + edi*4]
mov dword [ebp + 0xc], ebx
cmp ebx, 2
jne 0x66c881
or cl, 0x10
mov byte [edi + esi + 0x582], cl
mov ecx, dword [esi + eax*8 + 0x80]
mov edx, dword [esi + eax*8 + 0x84]
jmp 0x66c891
or byte [edi + esi + 0x581], 0x10
mov ecx, dword [esi + eax*8 + 0x58]
mov edx, dword [esi + eax*8 + 0x5c]
mov eax, ecx
mov dword [ebp - 0x1c], ecx
and eax, 3
mov dword [ebp - 0x18], edx
or eax, 0
jne 0x66bdad
lea eax, [ebp - 0x1c]
push eax
push 7
push 0
push 4
push edx
push ecx
call fcn.006bfb5d
push edx
push eax
mov ecx, esi
call fcn.0068cc29
mov ecx, esi
test al, al
je 0x66bde7
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push 0xef
call fcn.00671905
test al, al
je case.0x66b4d2.28
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x4c]
mov ecx, esi
push 0xa5
push edi
call fcn.00671a70
test al, al
je case.0x66b4d2.28
mov eax, dword [esi + 0x578]
mov ecx, esi
shr eax, 0xc
push 0
and eax, 1
push eax
push 0x37
call fcn.00671905
xor eax, eax
mov ecx, esi
cmp ebx, 2
push 0
setne al
push eax
push 0x38
call fcn.00671905
xor ebx, ebx
cmp dword [ebp + 0xc], 2
pop edi
sete bl
inc ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0068c532
mov ecx, esi
test al, al
je 0x66c96f
push edi
push 0xb014
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0xa0
push edi
call fcn.00671ae6
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0068c555
mov ecx, esi
test al, al
je 0x66c96f
push edi
push 0xb013
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0068c532
mov ecx, esi
test al, al
jne 0x66c957
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
mov ebx, dword [esi + eax*8 + 0x4c]
lea eax, [edi + edi*4]
or byte [edi + esi + 0x580], 2
push dword [esi + eax*8 + 0x24]
call fcn.0068c6c4
push ebx
mov ecx, esi
mov edi, eax
call fcn.0068c6c4
cmp eax, edi
jne case.0x66b4d2.28
push 0xaa
push dword [ebp + 0xc]
mov ecx, esi
call fcn.00671ae6
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0068c532
mov ecx, esi
test al, al
jne 0x66c957
push 0xb0
push edi
call fcn.00671ae6
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0xa0
push ecx
jmp 0x66b8b7
mov edi, dword [ebp + 0xc]
cmp edi, dword [esi + 0x40]
jae 0x66ca8d
or byte [edi + esi + 0x581], 1
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x48], 2
jne 0x66bc3b
xor ebx, ebx
mov ecx, esi
cmp edi, dword [esi + 0x40]
jb 0x66caa5
push ebx
push 0x1f
push 0xa5
call fcn.00671905
jmp 0x66caca
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0xa5
push edi
call fcn.006719b2
xor ebx, ebx
test al, al
setne bl
inc edi
cmp edi, dword [esi + 0x40]
jae 0x66caff
or byte [edi + esi + 0x581], 1
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x48], 2
je 0x66cafa
push edi
push 0xb002
mov ecx, esi
call fcn.00671867
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp edi, dword [esi + 0x40]
jb 0x66cb1a
push 0
push 0
push 0x90
mov ecx, esi
call fcn.00671905
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
mov ecx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
add ecx, 0xffffffff
adc eax, 0xffffffff
push eax
push ecx
push 0x90
push edi
mov ecx, esi
call fcn.006719b2
xor ecx, ecx
test al, al
pop edi
setne cl
add ebx, ecx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [ebp + 0xc]
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp + 0xc]
push ecx
push dword [ebp - 4]
or byte [ebx + esi + 0x581], 0x10
lea eax, [ebx + ebx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
call fcn.006683d7
test al, al
jne 0x66cb86
push ebx
jmp 0x66b5e4
mov edi, dword [ebp + 0xc]
cmp edi, 0xa0
je 0x66cbf0
cmp edi, 0xa1
je 0x66cbf0
cmp edi, 0xa2
je 0x66cbd2
cmp edi, 0xa3
je 0x66cbd2
push 0
push 0
push 0x3e
mov ecx, esi
call fcn.00671905
mov dword [ebp - 4], 0xa5
mov eax, 0x3d
mov dword [ebp + 8], 0x1f
mov dword [ebp + 0xc], 0x37
jmp 0x66cc0a
mov dword [ebp - 4], 0x37
mov eax, 0x3e
mov dword [ebp + 8], 1
xor ecx, ecx
mov dword [ebp + 0xc], 0x3d
jmp 0x66cc0f
mov dword [ebp - 4], 0x37
mov eax, 0x3e
mov dword [ebp + 8], 1
mov dword [ebp + 0xc], 0x3d
mov ecx, 1
push 0
push ecx
push eax
mov ecx, esi
call fcn.00671905
push 0
push 0
push dword [ebp + 0xc]
mov ecx, esi
call fcn.00671905
push 0
push dword [ebp + 8]
mov ecx, esi
push dword [ebp - 4]
call fcn.00671905
lea eax, [edi - 0xa4]
neg eax
push 0
push dword [ebp - 8]
sbb eax, eax
sub edi, 0xa4
and eax, 0xa0
add eax, 0x1a0
neg edi
sbb edi, edi
and edi, 0xfffffffb
add edi, 0xa
or eax, edi
push eax
push ebx
jmp 0x66b8b7
mov edi, dword [ebp + 0xc]
lea ecx, [ebp - 8]
push ecx
push dword [ebp - 4]
mov ecx, 0x721a98
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
call fcn.00671fa0
test al, al
je case.0x66b4d2.28
push 0
push dword [ebp - 8]
push 0x1aa
push edi
jmp 0x66b8b7
mov edi, dword [ebp + 0xc]
mov cl, byte [edi + esi + 0x581]
lea eax, [edi + edi*4]
or cl, 1
lea edx, [esi + eax*8]
mov byte [edi + esi + 0x581], cl
cmp dword [edx + 0x48], 2
jne 0x66ccee
or cl, 0x40
mov byte [edi + esi + 0x581], cl
cmp dword [edx + 0x64], 2
jne 0x66ccee
or cl, 0x10
mov byte [edi + esi + 0x581], cl
mov eax, dword [edx + 0x58]
or eax, dword [edx + 0x5c]
je 0x66cdc0
push edi
push 0xb005
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov cl, byte [edi + esi + 0x581]
lea eax, [edi + edi*4]
or cl, 1
mov byte [edi + esi + 0x581], cl
cmp dword [esi + eax*8 + 0x48], 2
jne 0x66bc3b
or cl, 0x40
mov byte [edi + esi + 0x581], cl
cmp dword [esi + eax*8 + 0x64], 2
jne 0x66bc3b
or cl, 0x10
mov byte [edi + esi + 0x581], cl
mov ecx, dword [esi + eax*8 + 0x58]
mov edx, dword [esi + eax*8 + 0x5c]
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], edx
cmp bl, 0x50
je 0x66cd61
cmp bl, 0x52
jne 0x66cd93
mov eax, ecx
or eax, edx
je 0x66b6e3
push 1
mov ecx, esi
call fcn.0068bf29
movzx eax, al
cdq
shld edx, eax, 3
shl eax, 3
cmp dword [ebp + 0xc], edx
ja 0x66b6e3
jb 0x66cd93
cmp dword [ebp + 8], eax
ja 0x66b6e3
cmp bl, 0x51
jne 0x66cdc0
push 1
mov ecx, esi
call fcn.0068bf29
movzx eax, al
cdq
shld edx, eax, 3
shl eax, 3
cmp dword [ebp + 0xc], edx
ja 0x66b6e3
jb 0x66cdc0
cmp dword [ebp + 8], eax
jae 0x66b6e3
pop edi
mov ebx, 1
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov cl, byte [edi + esi + 0x581]
lea eax, [edi + edi*4]
or cl, 1
mov byte [edi + esi + 0x581], cl
cmp dword [esi + eax*8 + 0x48], 2
jne 0x66bc3b
or cl, 0x40
mov byte [edi + esi + 0x581], cl
cmp dword [esi + eax*8 + 0x64], 2
jne 0x66bc3b
or cl, 0x10
mov byte [edi + esi + 0x581], cl
mov ecx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
cmp ecx, 8
jne 0x66ce22
test eax, eax
je 0x66ce3c
cmp ecx, 0x10
jne 0x66ce2b
test eax, eax
je 0x66ce3c
cmp ecx, 0x20
jne 0x66ea68
test eax, eax
jne 0x66ea68
shrd ecx, eax, 4
shr eax, 4
push eax
push ecx
push 0x56
push edi
jmp 0x66b8b7
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0x205
push ecx
jmp 0x66b8b7
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
mov edi, dword [esi + eax*8 + 0x58]
mov edx, dword [esi + eax*8 + 0x5c]
mov eax, edi
and eax, 0xf
or eax, 0
je 0x66cea8
push ecx
push 0xb009
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
shrd edi, edx, 4
shr edx, 4
test edx, edx
jne 0x66cef7
cmp edi, 3
ja 0x66cef7
mov eax, dword [esi + 0x578]
or byte [esi + 0x580], 2
and eax, 0xe0
je 0x66ceed
cmp eax, 0xa0
je 0x66ceed
push ecx
push 0xb00a
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push edx
push edi
push 0x55
push ecx
jmp 0x66b8b7
push ecx
push 0xb00f
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0x18a
push ecx
jmp 0x66b8b7
mov eax, dword [ebp + 0xc]
mov edx, 0xaaaaaaab
or byte [eax + esi + 0x581], 0x10
lea eax, [eax + eax*4]
mov ebx, dword [esi + eax*8 + 0x58]
mov ecx, dword [esi + eax*8 + 0x5c]
mov eax, ebx
mul edx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x14], eax
mov edi, edx
mov eax, ebx
mov dword [ebp - 0x18], ebx
mov edx, 0xaaaaaaaa
mul edx
mov ebx, eax
mov dword [ebp - 8], edx
mov eax, ecx
mov ecx, 0xaaaaaaab
mul ecx
mov ecx, eax
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0xc]
mov edx, 0xaaaaaaaa
mul edx
add ecx, edi
mov dword [ebp - 4], edx
mov edx, dword [ebp - 0x10]
adc edx, 0
mov dword [ebp + 8], eax
add ebx, ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 4]
adc ecx, 0
xor eax, eax
add edx, ecx
mov ecx, dword [ebp + 8]
adc eax, eax
add ecx, edx
adc ebx, eax
shrd ecx, ebx, 3
shr ebx, 3
mov edx, ecx
mov dword [ebp + 8], ecx
mov eax, ecx
mov ecx, ebx
mov edi, ebx
shld ecx, eax, 1
add eax, eax
add edx, eax
mov eax, dword [ebp - 0xc]
adc edi, ecx
mov ecx, dword [ebp - 0x18]
shld edi, edx, 2
shl edx, 2
sub ecx, edx
sbb eax, edi
or ecx, eax
je 0x66cff8
push dword [ebp + 0xc]
mov ecx, esi
push 0xb009
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
test ebx, ebx
jne 0x66d047
mov ecx, dword [ebp + 8]
cmp ecx, 1
ja 0x66d047
mov eax, dword [esi + 0x578]
or byte [esi + 0x580], 2
and eax, 0xe0
je 0x66d03b
cmp eax, 0xa0
je 0x66d03b
push dword [ebp + 0xc]
mov ecx, esi
push 0xb00a
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push ebx
push ecx
push 0x56
push dword [ebp + 0xc]
jmp 0x66b8b7
push dword [ebp + 0xc]
mov ecx, esi
push 0xb00f
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [esi + 0x578]
or byte [esi + 0x580], 2
shr edi, 5
and edi, 7
cmp edi, 5
jae 0x66d01f
mov edx, dword [ebp + 0xc]
or byte [edx + esi + 0x581], 0x10
lea eax, [edx + edx*4]
mov ebx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
test eax, eax
ja 0x66d0d3
jb 0x66d0a5
cmp ebx, 0x3f
ja 0x66d0d3
test eax, eax
jne 0x66d0a5
cmp ebx, 0x1f
jbe 0x66d0aa
cmp cl, 4
je 0x66d0d3
push eax
push ebx
push 0xca
push edx
mov ecx, esi
call fcn.006719b2
push 0
push edi
push 0x56
mov ecx, esi
movzx ebx, al
call fcn.00671905
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push edx
push 0xb00f
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
mov ecx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
mov dword [ebp - 0x18], ecx
mov dword [ebp + 8], eax
test eax, eax
jne 0x66d265
cmp ecx, 4
ja 0x66d265
mov ebx, dword [esi + 0x578]
mov eax, ebx
or byte [esi + 0x580], 6
shr ebx, 8
shr eax, 5
and ebx, 0xf
mov dword [ebp + 0xc], ebx
and eax, 7
jne 0x66d198
mov ecx, esi
cmp ebx, 9
je 0x66d166
push edi
push 0xb00a
call fcn.00671867
push edi
push 0xb00c
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0
call fcn.0068c532
test al, al
jne 0x66d1bc
push 1
mov ecx, esi
call fcn.0068c532
test al, al
jne 0x66d1bc
push edi
push 0xb013
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 5
je 0x66d1b7
push edi
push 0xb00a
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp ebx, 8
jne 0x66d1ec
push 0
mov ecx, esi
call fcn.0068c532
test al, al
jne 0x66d1d6
push 1
mov ecx, esi
call fcn.0068c532
test al, al
je 0x66d17e
mov ecx, esi
call fcn.0068c2ac
xor ecx, ecx
cmp al, 8
sete cl
add ecx, 2
mov dword [ebp + 0xc], ecx
jmp 0x66d239
mov ecx, esi
call fcn.0068c2ac
cmp al, 4
jne 0x66d230
cmp ebx, 2
jne 0x66d230
push 0
mov ecx, esi
call fcn.0068c532
test al, al
jne 0x66d216
push 1
mov ecx, esi
call fcn.0068c532
test al, al
je 0x66d239
push edi
push 0xb015
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp ebx, 9
je 0x66d14c
push dword [ebp + 8]
mov ecx, esi
push dword [ebp - 0x18]
push 0x6a
push edi
call fcn.006719b2
push 0
push dword [ebp + 0xc]
mov ecx, esi
movzx ebx, al
push 0x6d
call fcn.00671905
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push edi
push 0xb010
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0xd0
push ecx
jmp 0x66b8b7
mov ebx, dword [ebp + 0xc]
or byte [ebx + esi + 0x581], 0x10
lea eax, [ebx + ebx*4]
mov edx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
mov dword [ebp - 0xc], eax
mov dword [ebp + 8], edx
movzx eax, cl
cdq
mov edi, eax
shld edx, edi, 3
shl edi, 3
mov eax, edi
mov dword [ebp - 0x10], edx
sub eax, dword [ebp + 8]
mov dword [ebp - 0x18], eax
mov eax, 0x3f
sbb edx, dword [ebp - 0xc]
cmp cl, 8
je 0x66d2e6
mov eax, 0x1f
and eax, dword [ebp - 0x18]
xor ecx, ecx
and ecx, edx
push ecx
push eax
push 0xd0
push ebx
mov ecx, esi
call fcn.006719b2
xor ebx, ebx
mov ecx, esi
test al, al
mov eax, dword [ebp - 0x10]
setne bl
sub edi, dword [ebp + 8]
sbb eax, dword [ebp - 0xc]
add edi, 0xffffffff
adc eax, 0xffffffff
push eax
push edi
push 0xca
push dword [ebp + 0xc]
call fcn.006719b2
xor ecx, ecx
test al, al
pop edi
setne cl
and ebx, ecx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx eax, byte [ebp - 4]
mov edi, dword [ebp + 0xc]
cdq
shld edx, eax, 3
or byte [edi + esi + 0x581], 0x10
lea ecx, [edi + edi*4]
shl eax, 3
sub eax, dword [esi + ecx*8 + 0x58]
sbb edx, dword [esi + ecx*8 + 0x5c]
cmp byte [ebp - 4], 8
mov dword [ebp - 0x18], edx
jne 0x66d373
push 0
and eax, 0x3f
push eax
push 0xd0
push edi
jmp 0x66b8b7
push 0
and eax, 0x1f
push eax
push 0xd0
push edi
jmp 0x66b8b7
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
push dword [esi + eax*8 + 0x5c]
push dword [esi + eax*8 + 0x58]
push 0xca
push ecx
jmp 0x66b8b7
mov edi, dword [ebp + 0xc]
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
mov ecx, dword [esi + eax*8 + 0x5c]
mov ebx, dword [esi + eax*8 + 0x58]
mov eax, ebx
or eax, ecx
mov dword [ebp + 0xc], ecx
je 0x66b6e3
mov eax, dword [esi + 0x57c]
cmp eax, 0xdc
je 0x66d3e5
cmp eax, 0xdd
je 0x66d3e5
mov ecx, esi
call fcn.0068bff3
jmp 0x66d3ec
mov ecx, esi
call fcn.0068b989
mov edx, dword [ebp + 0xc]
cmp al, 4
jne 0x66d406
test edx, edx
ja 0x66b6e3
jb 0x66d406
cmp ebx, 0x20
ja 0x66b6e3
mov ecx, 0x40
mov eax, 0
sub ecx, ebx
sbb eax, edx
push eax
push ecx
push 0xca
push edi
jmp 0x66b8b7
mov edx, dword [ebp + 0xc]
or byte [edx + esi + 0x581], 0x10
lea eax, [edx + edx*4]
mov ecx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
add ecx, 0xffffffff
adc eax, 0xffffffff
push eax
push ecx
push 0xca
jmp 0x66b8b6
mov edi, dword [ebp + 0xc]
or byte [edi + esi + 0x580], 0x10
lea eax, [edi + edi*4]
mov edx, dword [esi + eax*8 + 0x30]
mov ecx, dword [esi + eax*8 + 0x34]
lea eax, [edi + edi*4]
or byte [edi + esi + 0x581], 0x10
add edx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
adc eax, ecx
add edx, 0xffffffff
adc eax, 0xffffffff
push eax
push edx
push 0xca
push edi
jmp 0x66b8b7
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 0x10
lea eax, [ecx + ecx*4]
mov edx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
cmp edx, 0x5a
jne 0x66d4b0
test eax, eax
jne 0x66d4b0
push eax
push eax
push 0x2c
push ecx
jmp 0x66b8b7
cmp edx, 0x10e
jne 0x66d4cc
test eax, eax
jne 0x66d4cc
push 0
mov eax, 1
push eax
push 0x2c
push ecx
jmp 0x66b8b7
push ecx
jmp 0x66b5e4
mov ebx, dword [ebp + 0xc]
or byte [ebx + esi + 0x581], 0x10
lea eax, [ebx + ebx*4]
mov edx, dword [esi + eax*8 + 0x5c]
mov ecx, dword [esi + eax*8 + 0x58]
mov eax, ecx
or eax, edx
mov dword [ebp + 8], edx
je 0x66d51a
cmp ecx, 0x5a
jne 0x66d4fa
test edx, edx
je 0x66d51a
cmp ecx, 0xb4
jne 0x66d506
test edx, edx
je 0x66d51a
cmp ecx, 0x10e
jne 0x66cb80
test edx, edx
jne 0x66cb80
mov eax, ecx
mov edx, 0x82d82d83
mul edx
mov ebx, 0x2d82d82d
mov dword [ebp - 0x1c], eax
mov edi, edx
mov eax, ecx
mov ecx, 0x82d82d83
mul ebx
mov ebx, eax
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 8]
mul ecx
mov ecx, eax
mov dword [ebp - 0x18], edx
mov eax, dword [ebp + 8]
mov edx, 0x2d82d82d
mul edx
add ecx, edi
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x18]
adc edx, 0
mov dword [ebp + 8], eax
add ebx, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp + 8]
adc ecx, 0
xor eax, eax
add edx, ecx
mov ecx, dword [ebp - 0xc]
adc eax, eax
add ebx, edx
adc ecx, eax
shrd ebx, ecx, 4
shr ecx, 4
push ecx
push ebx
push 0x4b
push dword [ebp + 0xc]
jmp 0x66b8b7
mov ebx, dword [ebp + 0xc]
or byte [ebx + esi + 0x581], 0x10
lea eax, [ebx + ebx*4]
mov edx, dword [esi + eax*8 + 0x5c]
mov ecx, dword [esi + eax*8 + 0x58]
mov eax, ecx
or eax, edx
mov dword [ebp + 8], edx
je 0x66d5d3
cmp ecx, 0x5a
jne 0x66d5b3
test edx, edx
je 0x66d5d3
cmp ecx, 0xb4
jne 0x66d5bf
test edx, edx
je 0x66d5d3
cmp ecx, 0x10e
jne 0x66cb80
test edx, edx
jne 0x66cb80
mov eax, ecx
mov edx, 0x82d82d83
mul edx
mov ebx, 0x2d82d82d
mov dword [ebp - 0x1c], eax
mov edi, edx
mov eax, ecx
mov ecx, 0x82d82d83
mul ebx
mov ebx, eax
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 8]
mul ecx
mov ecx, eax
mov dword [ebp - 0x18], edx
mov eax, dword [ebp + 8]
mov edx, 0x2d82d82d
mul edx
add ecx, edi
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x18]
adc edx, 0
mov dword [ebp + 8], eax
add ebx, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp + 8]
adc ecx, 0
xor eax, eax
add edx, ecx
mov ecx, dword [ebp - 0xc]
adc eax, eax
add ebx, edx
adc ecx, eax
shrd ebx, ecx, 4
shr ecx, 4
push ecx
push ebx
push 0x4d
push dword [ebp + 0xc]
jmp 0x66b8b7
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0068c532
test al, al
jne 0x66c0a7
or byte [edi + esi + 0x581], 1
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x48], 1
lea ebx, [esi + eax*8]
jne 0x66d70d
or byte [edi + esi + 0x582], 1
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x70], 1
jne 0x66d70d
or byte [edi + esi + 0x581], 2
mov ecx, esi
push dword [ebx + 0x4c]
call fcn.0068c6c4
cmp eax, 0x22
jne 0x66d70d
or byte [edi + esi + 0x582], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x74]
mov ecx, esi
call fcn.0068c6c4
test eax, eax
jne 0x66d70d
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
mov ebx, dword [ebx + 0x4c]
mov ecx, esi
or byte [edi + esi + 0x582], 2
push dword [esi + eax*8 + 0x74]
call fcn.0068b6a3
push ebx
mov ecx, esi
mov edi, eax
call fcn.0068b6a3
cmp eax, edi
jne 0x66d70a
push 0xa0
push dword [ebp + 0xc]
mov ecx, esi
call fcn.00671ae6
movzx ebx, al
neg ebx
pop edi
sbb ebx, ebx
and ebx, 2
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
lea eax, [edi + 1]
mov ecx, esi
push eax
push 0xb001
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0068c555
mov ecx, esi
test al, al
jne 0x66c99d
jmp 0x66ca31
mov edx, dword [ebp + 0xc]
or byte [edx + esi + 0x581], 1
lea eax, [edx + edx*4]
cmp dword [esi + eax*8 + 0x48], 1
je 0x66d773
push edx
push 0xb001
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov cl, byte [esi + 0xaa]
mov al, byte [esi + 0xa8]
and cl, 1
shl cl, 4
and al, 0xf
or cl, al
cmp cl, 4
je 0x66d7cb
cmp cl, 7
mov ecx, esi
je 0x66d7ae
push 2
push 0xa006
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0xb0
push edx
call fcn.00671ae6
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x90
push edx
mov ecx, esi
call fcn.00671ae6
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
or byte [ecx + esi + 0x581], 1
lea eax, [ecx + ecx*4]
cmp dword [esi + eax*8 + 0x48], 1
je 0x66d819
push ecx
push 0xb001
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x90
push ecx
mov ecx, esi
call fcn.00671ae6
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0068c555
mov ecx, esi
test al, al
jne 0x66c99d
push 0xa5
push edi
call fcn.00671ae6
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0068c532
mov ecx, esi
test al, al
jne 0x66c957
jmp 0x66d84d
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0068c532
mov ecx, esi
test al, al
jne 0x66c957
push 0xa5
push edi
call fcn.00671ae6
xor ebx, ebx
mov ecx, esi
test al, al
push 0xb0
push edi
setne bl
call fcn.00671ae6
xor ecx, ecx
test al, al
pop edi
setne cl
and ebx, ecx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0068c532
mov ecx, esi
test al, al
jne 0x66c957
push 0xaa
push edi
call fcn.00671ae6
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
or byte [edi + esi + 0x581], 0x10
lea eax, [edi + edi*4]
mov ebx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + eax*8 + 0x5c]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x57c]
add eax, 0xfffffecd
cmp eax, 0xb7
ja case.0x66d92d.308
movzx eax, byte [eax + 0x66efc4]
jmp dword [eax*4 + 0x66efb0]
mov ecx, 1
jmp 0x66d958
mov ecx, 2
jmp 0x66d958
mov ecx, 3
jmp 0x66d958
push edi
push 0xa003
mov ecx, esi
call fcn.00671867
xor ecx, ecx
mov edx, dword [ebp + 0xc]
mov eax, ebx
call fcn.0063c2d0
push edx
push eax
push 0x8b
push edi
jmp 0x66b8b7
mov ebx, dword [ebp + 0xc]
mov ecx, esi
push ebx
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
lea eax, [ebx + ebx*4]
lea ecx, [esi + eax*8]
mov eax, dword [ecx + 0x4c]
sub eax, 0x22
cmp eax, 0x21
ja 0x66dacc
or byte [ebx + esi + 0x582], 1
lea edi, [ebx + 1]
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x48], 2
jne 0x66c208
or byte [ebx + esi + 0x581], 2
push dword [ecx + 0x4c]
mov ecx, esi
push 0xa5
push ebx
call fcn.00671a70
xor ebx, ebx
test al, al
lea eax, [edi + edi*4]
setne bl
or byte [edi + esi + 0x581], 0x10
mov ecx, dword [esi + eax*8 + 0x58]
mov edx, dword [esi + eax*8 + 0x5c]
mov eax, dword [esi + 0x57c]
add eax, 0xfffffe3a
cmp eax, 6
ja case.0x66da23.5
jmp dword [eax*4 + 0x66f07c]
test edx, edx
ja case.0x66da23.5
jb 0x66da10
cmp ecx, 0x20
ja case.0x66da23.5
add ecx, 0xfffffffc
cmp ecx, 0x1c
ja case.0x66da23.5
movzx eax, byte [ecx + 0x66f0ac]
jmp dword [eax*4 + 0x66f098]
test edx, edx
ja case.0x66da23.5
jb 0x66da39
cmp ecx, 0x18
ja case.0x66da23.5
add ecx, 0xfffffffd
cmp ecx, 0x15
ja case.0x66da23.5
movzx eax, byte [ecx + 0x66f0e0]
jmp dword [eax*4 + 0x66f0cc]
test edx, edx
ja case.0x66da23.5
jb 0x66da5a
cmp ecx, 0x10
ja case.0x66da23.5
add ecx, 0xfffffffe
cmp ecx, 0xe
ja case.0x66da23.5
movzx eax, byte [ecx + 0x66f10c]
jmp dword [eax*4 + 0x66f0f8]
test edx, edx
ja case.0x66da23.5
jb 0x66da7b
cmp ecx, 8
ja case.0x66da23.5
dec ecx
cmp ecx, 7
ja case.0x66da23.5
jmp dword [ecx*4 + 0x66f11c]
push 0
push 0
push 0x4a
jmp 0x66cb3a
push 0
push 1
push 0x4a
jmp 0x66cb3a
push 0
push 2
push 0x4a
jmp 0x66cb3a
push 0
push 3
push 0x4a
jmp 0x66cb3a
push edi
push 0xb00d
mov ecx, esi
call fcn.00671867
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push ebx
push 0xb008
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [ebp + 0xc]
mov ecx, esi
push ebx
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
lea eax, [ebx + ebx*4]
lea ecx, [esi + eax*8]
mov eax, dword [ecx + 0x4c]
sub eax, 0x22
cmp eax, 0x21
ja 0x66dacc
or byte [ebx + esi + 0x582], 1
lea edi, [ebx + 1]
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x48], 2
jne 0x66c208
or byte [ebx + esi + 0x581], 2
push dword [ecx + 0x4c]
mov ecx, esi
push 0xa5
push ebx
call fcn.00671a70
xor ebx, ebx
test al, al
lea eax, [edi + edi*4]
setne bl
or byte [edi + esi + 0x581], 0x10
mov edx, dword [esi + eax*8 + 0x58]
mov ecx, dword [esi + eax*8 + 0x5c]
mov eax, dword [esi + 0x57c]
add eax, 0xfffffe3b
cmp eax, 0xb
ja case.0x66db70.454
movzx eax, byte [eax + 0x66f150]
jmp dword [eax*4 + 0x66f13c]
cmp edx, 0x18
jne 0x66dbe0
test ecx, ecx
jne 0x66dbe0
push 0
push 0
push 0x3e
jmp 0x66cb3a
cmp edx, 0x10
jne 0x66dc08
test ecx, ecx
jne 0x66dc08
push ecx
push ecx
push 0x3e
jmp 0x66cb3a
mov eax, dword [esi + 0x40]
add eax, 0xfffffffd
cmp eax, 3
ja case.0x66da23.5
jmp dword [eax*4 + 0x66f15c]
cmp edx, 0x20
jne 0x66dbbc
test ecx, ecx
je 0x66db80
cmp edx, 0x40
jne case.0x66da23.5
test ecx, ecx
jne case.0x66da23.5
push ecx
push 1
push 0x3e
jmp 0x66cb3a
cmp edx, 0x18
jne 0x66dbe0
test ecx, ecx
je 0x66db80
cmp edx, 0x30
jne case.0x66da23.5
test ecx, ecx
jne case.0x66da23.5
push ecx
push 1
push 0x3e
jmp 0x66cb3a
cmp edx, 0x10
jne 0x66dc08
test ecx, ecx
je 0x66db80
cmp edx, 0x20
jne case.0x66da23.5
test ecx, ecx
jne case.0x66da23.5
push ecx
push 1
push 0x3e
jmp 0x66cb3a
cmp edx, 8
jne 0x66dc30
test ecx, ecx
je 0x66db80
cmp edx, 0x10
jne case.0x66da23.5
test ecx, ecx
jne case.0x66da23.5
push ecx
push 1
push 0x3e
jmp 0x66cb3a
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
lea eax, [edi + edi*4]
lea ecx, [esi + eax*8]
mov eax, dword [ecx + 0x4c]
sub eax, 0x22
cmp eax, 0x21
ja 0x66bffa
or byte [edi + esi + 0x582], 1
lea ebx, [edi + 1]
lea eax, [ebx + ebx*4]
cmp dword [esi + eax*8 + 0x48], 2
jne 0x66bc3b
or byte [edi + esi + 0x581], 2
push dword [ecx + 0x4c]
mov ecx, esi
push 0xa5
push edi
call fcn.00671a70
xor ecx, ecx
test al, al
lea eax, [ebx + ebx*4]
setne cl
or byte [ebx + esi + 0x581], 0x10
mov edx, dword [esi + eax*8 + 0x5c]
mov dword [ebp + 0xc], ecx
mov ecx, dword [esi + eax*8 + 0x58]
mov eax, dword [esi + 0x57c]
add eax, 0xfffffe3b
cmp eax, 0xb
ja case.0x66dd09.5
movzx eax, byte [eax + 0x66f180]
jmp dword [eax*4 + 0x66f16c]
test edx, edx
ja case.0x66dd09.5
jb 0x66dcf6
cmp ecx, 0x20
ja case.0x66dd09.5
add ecx, 0xfffffffc
cmp ecx, 0x1c
ja case.0x66dd09.5
movzx eax, byte [ecx + 0x66f1a0]
jmp dword [eax*4 + 0x66f18c]
mov eax, dword [esi + 0x570]
and eax, 0xe000
cmp eax, 0x8000
je 0x66dd2d
cmp eax, 0xa000
jne case.0x66dd09.5
push 0
push 0
push 0x2a
mov ecx, esi
call fcn.00671905
mov ebx, dword [ebp + 0xc]
pop edi
inc ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
test edx, edx
ja case.0x66dd09.5
jb 0x66dd54
cmp ecx, 0x18
ja case.0x66dd09.5
add ecx, 0xfffffffd
cmp ecx, 0x15
ja case.0x66dd09.5
movzx eax, byte [ecx + 0x66f1d4]
jmp dword [eax*4 + 0x66f1c0]
test edx, edx
ja case.0x66dd09.5
jb 0x66dd75
cmp ecx, 0x10
ja case.0x66dd09.5
add ecx, 0xfffffffe
cmp ecx, 0xe
ja case.0x66dd09.5
movzx eax, byte [ecx + 0x66f200]
jmp dword [eax*4 + 0x66f1ec]
test edx, edx
ja case.0x66dd09.5
jb 0x66dd96
cmp ecx, 8
ja case.0x66dd09.5
dec ecx
cmp ecx, 7
ja case.0x66dd09.5
jmp dword [ecx*4 + 0x66f210]
mov eax, dword [esi + 0x570]
and eax, 0xe000
je 0x66de0e
cmp eax, 0x2000
je 0x66de0e
push ebx
push 0xb00d
mov ecx, esi
call fcn.00671867
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 0x570]
and eax, 0xe000
cmp eax, 0x4000
je 0x66de0e
cmp eax, 0x6000
jmp 0x66ddb5
mov eax, dword [esi + 0x570]
and eax, 0xe000
cmp eax, 0x8000
je 0x66de01
cmp eax, 0xa000
jne case.0x66dd09.5
push 0
push 1
push 0x2a
mov ecx, esi
call fcn.00671905
mov ebx, dword [ebp + 0xc]
pop edi
inc ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [ebp + 0xc]
mov ecx, esi
or byte [ebx + esi + 0x581], 2
lea eax, [ebx + ebx*4]
push dword [esi + eax*8 + 0x4c]
call fcn.0068b6a3
or byte [ebx + esi + 0x582], 2
lea ecx, [ebx + 1]
mov edi, eax
mov dword [ebp + 8], ecx
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x18], eax
lea eax, [ecx + ecx*4]
mov edx, dword [esi + eax*8 + 0x4c]
lea eax, [ebx + 2]
or byte [eax + esi + 0x581], 2
add ebx, 3
lea eax, [eax + eax*4]
mov eax, dword [esi + eax*8 + 0x4c]
mov dword [ebp - 0x18], eax
or byte [ebx + esi + 0x581], 2
lea eax, [ebx + ebx*4]
mov eax, dword [esi + eax*8 + 0x4c]
or byte [ecx + esi + 0x581], 1
mov dword [ebp - 0x10], eax
lea eax, [ecx + ecx*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66df61
push edx
mov ecx, esi
call fcn.0068b6a3
lea ecx, [edi + 1]
and ecx, 0x1f
cmp eax, ecx
jne 0x66df5e
mov eax, dword [ebp + 0xc]
add eax, 2
or byte [eax + esi + 0x581], 1
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66df3e
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0068b6a3
lea ecx, [edi + 2]
and ecx, 0x1f
cmp eax, ecx
jne 0x66df3e
or byte [ebx + esi + 0x581], 1
lea eax, [ebx + ebx*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66df24
push dword [ebp - 0x10]
mov ecx, esi
call fcn.0068b6a3
add edi, 3
and edi, 0x1f
cmp eax, edi
jne 0x66df24
push 0xa5
push dword [ebp + 0xc]
mov ecx, esi
call fcn.00671ae6
test al, al
je case.0x66b4d2.28
pop edi
mov ebx, 4
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push ebx
push 0xc009
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
mov ecx, esi
add eax, 2
push eax
push 0xc009
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 8]
push ecx
push 0xc009
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x4c]
call fcn.0068b6a3
or byte [edi + esi + 0x582], 2
lea ebx, [edi + 1]
mov dword [ebp + 8], eax
add edi, 2
lea eax, [ebx + ebx*4]
mov dword [ebp - 0x18], 0
mov ecx, dword [esi + eax*8 + 0x4c]
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
mov eax, dword [esi + eax*8 + 0x4c]
or byte [ebx + esi + 0x581], 1
mov dword [ebp - 0x18], eax
lea eax, [ebx + ebx*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66df24
push ecx
mov ecx, esi
call fcn.0068b6a3
mov ecx, dword [ebp + 8]
inc ecx
and ecx, 0x1f
cmp eax, ecx
jne 0x66df24
or byte [edi + esi + 0x581], 1
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66e042
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0068b6a3
mov ecx, dword [ebp + 8]
add ecx, 2
and ecx, 0x1f
cmp eax, ecx
jne 0x66e042
push 0xa5
push dword [ebp + 0xc]
mov ecx, esi
call fcn.00671ae6
test al, al
je case.0x66b4d2.28
pop edi
mov ebx, 3
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push edi
push 0xc009
mov ecx, esi
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x4c]
call fcn.0068b6a3
or byte [edi + esi + 0x582], 2
inc edi
mov ebx, eax
mov dword [ebp - 0x18], 0
lea eax, [edi + edi*4]
mov edx, dword [esi + eax*8 + 0x4c]
lea eax, [edi + edi*4]
or byte [edi + esi + 0x581], 1
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66e042
push edx
mov ecx, esi
call fcn.0068b6a3
inc ebx
and ebx, 0x1f
cmp eax, ebx
jne 0x66e042
push 0xa5
push dword [ebp + 0xc]
mov ecx, esi
call fcn.00671ae6
test al, al
je case.0x66b4d2.28
pop edi
mov ebx, 2
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
mov ecx, esi
push 0xa5
push eax
or byte [eax + esi + 0x581], 2
call fcn.00671ae6
test al, al
je case.0x66b4d2.28
pop edi
mov ebx, 1
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [ebp + 0xc]
mov ecx, esi
or byte [ebx + esi + 0x581], 2
lea eax, [ebx + ebx*4]
push dword [esi + eax*8 + 0x4c]
call fcn.0068b6a3
or byte [ebx + esi + 0x582], 2
lea ecx, [ebx + 1]
mov edi, eax
mov dword [ebp + 8], ecx
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x18], eax
lea eax, [ecx + ecx*4]
mov edx, dword [esi + eax*8 + 0x4c]
lea eax, [ebx + 2]
or byte [eax + esi + 0x581], 2
add ebx, 3
lea eax, [eax + eax*4]
mov eax, dword [esi + eax*8 + 0x4c]
mov dword [ebp - 0x18], eax
or byte [ebx + esi + 0x581], 2
lea eax, [ebx + ebx*4]
mov eax, dword [esi + eax*8 + 0x4c]
or byte [ecx + esi + 0x581], 1
mov dword [ebp - 0x10], eax
lea eax, [ecx + ecx*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66df61
push edx
mov ecx, esi
call fcn.0068b6a3
lea ecx, [edi + 1]
and ecx, 0x1f
cmp eax, ecx
jne 0x66df5e
mov eax, dword [ebp + 0xc]
add eax, 2
or byte [eax + esi + 0x581], 1
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66df3e
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0068b6a3
lea ecx, [edi + 2]
and ecx, 0x1f
cmp eax, ecx
jne 0x66df3e
or byte [ebx + esi + 0x581], 1
lea eax, [ebx + ebx*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66df24
push dword [ebp - 0x10]
mov ecx, esi
call fcn.0068b6a3
add edi, 3
and edi, 0x1f
cmp eax, edi
jne 0x66df24
push 0xa0
jmp 0x66df02
mov edi, dword [ebp + 0xc]
mov ecx, esi
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x4c]
call fcn.0068b6a3
or byte [edi + esi + 0x582], 2
lea ebx, [edi + 1]
mov dword [ebp + 8], eax
add edi, 2
lea eax, [ebx + ebx*4]
mov dword [ebp - 0x18], 0
mov ecx, dword [esi + eax*8 + 0x4c]
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
mov eax, dword [esi + eax*8 + 0x4c]
or byte [ebx + esi + 0x581], 1
mov dword [ebp - 0x18], eax
lea eax, [ebx + ebx*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66df24
push ecx
mov ecx, esi
call fcn.0068b6a3
mov ecx, dword [ebp + 8]
inc ecx
and ecx, 0x1f
cmp eax, ecx
jne 0x66df24
or byte [edi + esi + 0x581], 1
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66e042
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0068b6a3
mov ecx, dword [ebp + 8]
add ecx, 2
and ecx, 0x1f
cmp eax, ecx
jne 0x66e042
push 0xa0
jmp 0x66e020
mov edi, dword [ebp + 0xc]
mov ecx, esi
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x4c]
call fcn.0068b6a3
or byte [edi + esi + 0x582], 2
inc edi
mov ebx, eax
mov dword [ebp - 0x18], 0
lea eax, [edi + edi*4]
mov edx, dword [esi + eax*8 + 0x4c]
lea eax, [edi + edi*4]
or byte [edi + esi + 0x581], 1
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66e042
push edx
mov ecx, esi
call fcn.0068b6a3
inc ebx
and ebx, 0x1f
cmp eax, ebx
jne 0x66e042
push 0xa0
jmp 0x66e0b5
mov ebx, dword [ebp + 0xc]
mov ecx, esi
or byte [ebx + esi + 0x581], 2
lea eax, [ebx + ebx*4]
push dword [esi + eax*8 + 0x4c]
call fcn.0068b6a3
or byte [ebx + esi + 0x582], 2
lea ecx, [ebx + 1]
mov edi, eax
mov dword [ebp + 8], ecx
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x18], eax
lea eax, [ecx + ecx*4]
mov edx, dword [esi + eax*8 + 0x4c]
lea eax, [ebx + 2]
or byte [eax + esi + 0x581], 2
add ebx, 3
lea eax, [eax + eax*4]
mov eax, dword [esi + eax*8 + 0x4c]
mov dword [ebp - 0x18], eax
or byte [ebx + esi + 0x581], 2
lea eax, [ebx + ebx*4]
mov eax, dword [esi + eax*8 + 0x4c]
or byte [ecx + esi + 0x581], 1
mov dword [ebp - 0x10], eax
lea eax, [ecx + ecx*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66df61
push edx
mov ecx, esi
call fcn.0068b6a3
lea ecx, [edi + 2]
and ecx, 0x1f
cmp eax, ecx
jne 0x66df5e
mov eax, dword [ebp + 0xc]
add eax, 2
or byte [eax + esi + 0x581], 1
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66df3e
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0068b6a3
lea ecx, [edi + 4]
and ecx, 0x1f
cmp eax, ecx
jne 0x66df3e
or byte [ebx + esi + 0x581], 1
lea eax, [ebx + ebx*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66df24
push dword [ebp - 0x10]
mov ecx, esi
call fcn.0068b6a3
add edi, 6
jmp 0x66e1ec
mov edi, dword [ebp + 0xc]
mov ecx, esi
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x4c]
call fcn.0068b6a3
or byte [edi + esi + 0x582], 2
lea ebx, [edi + 1]
mov dword [ebp + 8], eax
add edi, 2
lea eax, [ebx + ebx*4]
mov dword [ebp - 0x18], 0
mov ecx, dword [esi + eax*8 + 0x4c]
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
mov eax, dword [esi + eax*8 + 0x4c]
or byte [ebx + esi + 0x581], 1
mov dword [ebp - 0x18], eax
lea eax, [ebx + ebx*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66df24
push ecx
mov ecx, esi
call fcn.0068b6a3
mov ecx, dword [ebp + 8]
add ecx, 2
and ecx, 0x1f
cmp eax, ecx
jne 0x66df24
or byte [edi + esi + 0x581], 1
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66e042
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0068b6a3
mov ecx, dword [ebp + 8]
add ecx, 4
jmp 0x66e29e
mov edi, dword [ebp + 0xc]
mov ecx, esi
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x4c]
call fcn.0068b6a3
or byte [edi + esi + 0x582], 2
inc edi
mov ebx, eax
mov dword [ebp - 0x18], 0
lea eax, [edi + edi*4]
mov edx, dword [esi + eax*8 + 0x4c]
lea eax, [edi + edi*4]
or byte [edi + esi + 0x581], 1
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66e042
push edx
mov ecx, esi
call fcn.0068b6a3
add ebx, 2
jmp 0x66e304
push 0xa0
push dword [ebp + 0xc]
mov ecx, esi
call fcn.00671ae6
test al, al
je case.0x66b4d2.28
pop edi
mov ebx, 1
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push 0xa0
push edi
call fcn.00671ae6
test al, al
je case.0x66b4d2.28
mov ebx, 1
cmp edi, ebx
jae case.0x66db70.454
lea eax, [edi + edi*4]
lea ecx, [edi + 0x581]
lea edi, [eax*8 + 0x5a]
add ecx, esi
mov eax, 0xfffffa7f
mov dword [ebp + 0xc], ecx
add edi, esi
sub eax, esi
mov dword [ebp + 8], eax
mov edi, edi
or byte [ecx], 0x12
mov ecx, esi
push dword [edi - 0xe]
call fcn.0068c6c4
cmp eax, 0x104
je 0x66e59a
mov eax, dword [esi + 0x75c]
mov ecx, 0xb00e
xor ebx, ebx
lea eax, [eax + eax*2]
mov word [esi + eax*4 + 0x5e4], cx
mov al, byte [edi]
mov cl, byte [edi - 2]
and al, 1
and cl, 0xf
shl al, 4
or cl, al
cmp cl, 7
je 0x66e5c6
mov eax, dword [esi + 0x75c]
mov ecx, 0xc00b
xor ebx, ebx
lea eax, [eax + eax*2]
mov word [esi + eax*4 + 0x5e4], cx
mov ecx, dword [ebp + 0xc]
add edi, 0x28
mov eax, dword [ebp + 8]
inc ecx
add eax, ecx
mov dword [ebp + 0xc], ecx
cmp eax, ebx
jb 0x66e56e
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push 0xa0
push edi
call fcn.00671ae6
test al, al
je case.0x66b4d2.28
mov ebx, 1
cmp edi, ebx
jae case.0x66db70.454
lea eax, [edi + edi*4]
lea ecx, [edi + 0x581]
lea edi, [eax*8 + 0x5a]
add ecx, esi
mov eax, 0xfffffa7f
mov dword [ebp + 0xc], ecx
add edi, esi
sub eax, esi
mov dword [ebp + 8], eax
lea esp, [esp]
or byte [ecx], 0x12
mov ecx, esi
push dword [edi - 0xe]
call fcn.0068c6c4
cmp eax, 0x104
je 0x66e659
mov eax, dword [esi + 0x75c]
mov ecx, 0xb00e
xor ebx, ebx
lea eax, [eax + eax*2]
mov word [esi + eax*4 + 0x5e4], cx
mov al, byte [edi]
mov cl, byte [edi - 2]
and al, 1
and cl, 0xf
shl al, 4
or cl, al
cmp cl, 0xa
je 0x66e685
mov eax, dword [esi + 0x75c]
mov ecx, 0xc00b
xor ebx, ebx
lea eax, [eax + eax*2]
mov word [esi + eax*4 + 0x5e4], cx
mov ecx, dword [ebp + 0xc]
add edi, 0x28
mov eax, dword [ebp + 8]
inc ecx
add eax, ecx
mov dword [ebp + 0xc], ecx
cmp eax, ebx
jb 0x66e62d
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [ebp + 0xc]
mov ecx, esi
or byte [ebx + esi + 0x581], 2
lea eax, [ebx + ebx*4]
push dword [esi + eax*8 + 0x4c]
call fcn.0068b6a3
lea edi, [ebx + 1]
mov dword [ebp + 8], eax
mov bl, byte [edi + esi + 0x581]
lea eax, [edi + edi*4]
or bl, 2
mov ecx, esi
mov byte [edi + esi + 0x581], bl
mov eax, dword [esi + eax*8 + 0x4c]
push edi
mov dword [ebp - 0x18], eax
call fcn.0068c532
test al, al
je 0x66e705
push dword [ebp + 0xc]
mov ecx, esi
push 0xb014
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 8]
and eax, 1
or eax, 0
jne 0x66e042
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0068b6a3
mov ecx, dword [ebp + 8]
mov edx, 0
add ecx, 1
mov dword [ebp + 8], 0
adc edx, edx
cmp eax, ecx
jne 0x66e042
cmp dword [ebp + 8], edx
jne 0x66e042
or bl, 1
lea eax, [edi + edi*4]
mov byte [edi + esi + 0x581], bl
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66e042
push 0xb0
jmp 0x66e0b5
mov ebx, dword [ebp + 0xc]
mov ecx, esi
or byte [ebx + esi + 0x581], 2
lea eax, [ebx + ebx*4]
push dword [esi + eax*8 + 0x4c]
call fcn.0068b6a3
lea edi, [ebx + 1]
mov dword [ebp + 8], eax
mov bl, byte [edi + esi + 0x581]
lea eax, [edi + edi*4]
or bl, 2
mov ecx, esi
mov byte [edi + esi + 0x581], bl
mov eax, dword [esi + eax*8 + 0x4c]
push edi
mov dword [ebp - 0x18], eax
call fcn.0068c532
test al, al
jne 0x66e6e9
mov eax, dword [ebp + 8]
and eax, 1
or eax, 0
jne 0x66e042
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0068b6a3
mov ecx, dword [ebp + 8]
mov edx, 0
add ecx, 1
mov dword [ebp + 8], 0
adc edx, edx
cmp eax, ecx
jne 0x66e042
cmp dword [ebp + 8], edx
jne 0x66e042
or bl, 1
lea eax, [edi + edi*4]
mov byte [edi + esi + 0x581], bl
cmp dword [esi + eax*8 + 0x48], 1
jmp 0x66e309
push 0xa0
push dword [ebp + 0xc]
mov ecx, esi
call fcn.00671ae6
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
or byte [edi + esi + 0x581], 1
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66c0d9
call fcn.0068b66c
mov ecx, esi
test al, al
je 0x66e864
push edi
push 0xc00b
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
xor eax, eax
cmp bl, 0x6f
setne al
dec eax
and eax, 0x20
add eax, 0x6a
push eax
push edi
call fcn.00671ae6
xor ebx, ebx
test al, al
pop edi
setne bl
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
or byte [edi + esi + 0x581], 1
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66c0d9
call fcn.0068b66c
mov ecx, esi
cmp al, 0x12
jne 0x66e84c
xor eax, eax
cmp bl, 0x70
setne al
dec eax
and eax, 0x20
add eax, 0x6a
push eax
push edi
call fcn.00671ae6
xor ebx, ebx
mov ecx, esi
test al, al
push edi
setne bl
call fcn.0067182e
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
or byte [edi + esi + 0x581], 1
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x48], 1
jne 0x66c0d9
call fcn.0068b66c
mov ecx, esi
cmp al, 0x11
jne 0x66e84c
xor eax, eax
cmp bl, 0x71
jmp 0x66e869
mov edi, dword [ebp + 0xc]
mov ecx, esi
push 0xa5
push edi
call fcn.00671ae6
test al, al
je case.0x66b4d2.28
push 0xb0
push edi
mov ecx, esi
call fcn.00671ae6
jmp 0x66b6cb
push 0x80
push dword [ebp + 0xc]
mov ecx, esi
jmp 0x66e875
push 0x85
push dword [ebp + 0xc]
mov ecx, esi
jmp 0x66e875
push 0x90
push dword [ebp + 0xc]
mov ecx, esi
jmp 0x66e875
push 0xa5
push dword [ebp + 0xc]
mov ecx, esi
jmp 0x66e875
push 0xb0
push dword [ebp + 0xc]
mov ecx, esi
jmp 0x66e875
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x50], 0xffffffff
jne 0x66c31b
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
push edi
mov ecx, esi
call fcn.0067182e
mov ecx, esi
mov dword [ebp - 0x18], edx
mov ebx, eax
call fcn.0068b3cb
mov ecx, eax
cmp ecx, 0xffffffff
jne 0x66e9ea
mov eax, dword [esi + 0x75c]
mov ecx, 0xa003
pop edi
lea eax, [eax + eax*2]
mov word [esi + eax*4 + 0x5e4], cx
xor eax, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
neg eax
shl eax, 3
cmp ebx, eax
jl 0x66ea68
lea eax, [ecx*8]
sub eax, ecx
cmp ebx, eax
jg 0x66ea68
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cdq
idiv ecx
test edx, edx
jne 0x66ea68
mov eax, ebx
cdq
idiv ecx
lea ecx, [ebp - 0x1c]
push ecx
cdq
mov ecx, esi
push 4
push edx
push eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
call fcn.0068cc29
test al, al
je 0x66ea68
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x4c]
mov ecx, esi
push 0xa5
push edi
call fcn.00671a70
test al, al
je case.0x66b4d2.28
push dword [ebp - 0x18]
mov ecx, esi
push dword [ebp - 0x1c]
push 0x90
call fcn.00671905
jmp 0x66b6cb
push edi
push 0xb00d
mov ecx, esi
call fcn.00671867
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov ecx, esi
push edi
lea eax, [edi + 2]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8], 0xffffffff
lea ebx, [esi + eax*8]
je 0x66c0d9
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
or byte [edi + esi + 0x581], 4
cmp dword [ebx], 0x43
jne 0x66ead6
mov eax, dword [esi + 0x75c]
mov ecx, 0xb00e
pop edi
xor ebx, ebx
lea eax, [eax + eax*2]
mov word [esi + eax*4 + 0x5e4], cx
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [ebx], 0x41
jne 0x66eb0d
push dword [esi + 0x57c]
call fcn.0068c456
test al, al
je 0x66eb0d
mov eax, dword [esi + 0x75c]
mov ecx, 0xb015
pop edi
xor ebx, ebx
lea eax, [eax + eax*2]
mov word [esi + eax*4 + 0x5e4], cx
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [esi + 0x57c]
call fcn.0068b53c
cdq
mov ecx, edx
mov dword [ebp + 0xc], eax
and eax, ecx
mov dword [ebp + 8], ecx
cmp eax, 0xffffffff
jne 0x66eb4b
mov eax, dword [esi + 0x75c]
mov ecx, 0xa003
pop edi
xor ebx, ebx
lea eax, [eax + eax*2]
mov word [esi + eax*4 + 0x5e4], cx
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
or eax, ecx
jne 0x66eb61
mov ecx, esi
call fcn.00671896
cmp eax, 9
je 0x66eb8b
mov ecx, dword [ebp + 8]
lea eax, [edi + edi*4]
movzx eax, word [esi + eax*8 + 0x68]
cdq
cmp dword [ebp + 0xc], eax
jne 0x66bffa
cmp ecx, edx
jne 0x66bffa
mov ecx, esi
call fcn.00671896
cmp eax, 8
jne 0x66bffa
or byte [edi + esi + 0x581], 2
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x4c]
mov ecx, esi
push 0xa5
push edi
call fcn.00671a70
test al, al
je case.0x66b4d2.28
or byte [edi + esi + 0x581], 4
mov ecx, esi
push dword [ebx]
push 0xb0
push edi
call fcn.00671a70
jmp 0x66b6cb
mov edi, dword [ebp + 0xc]
mov ecx, esi
or byte [edi + esi + 0x581], 1
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x48], 3
lea eax, [esi + eax*8]
mov dword [ebp + 0xc], eax
je 0x66ebfe
push edi
push 0xb003
call fcn.00671867
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.0068b5ed
movzx ecx, al
xor edx, edx
mov eax, dword [ebp + 0xc]
push edi
movzx eax, word [eax + 0x5e]
div ecx
cdq
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp + 8], edx
movzx eax, word [eax + 0x58]
mov ecx, eax
and eax, 0xf
shr ecx, 0xe
and ecx, 1
shl ecx, 4
or ecx, eax
xor eax, eax
cmp bl, 0x88
setne al
dec eax
and eax, 0xfffffffd
add eax, 0xa
cmp ecx, eax
mov ecx, esi
jne 0x66e84d
call fcn.0067182e
mov eax, dword [ebp + 0xc]
mov ecx, esi
or byte [edi + esi + 0x581], 2
push dword [eax + 0x4c]
push 0xa5
push edi
call fcn.00671a70
test al, al
je case.0x66b4d2.28
push dword [ebp + 8]
mov ecx, esi
push dword [ebp - 0x18]
push 0xb0
call fcn.00671905
jmp 0x66b6cb
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0xb]
push eax
push ebx
call fcn.0068b463
mov ecx, esi
test al, al
jne 0x66ecb6
push dword [ebp + 0xc]
push 0xb008
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
push edi
lea eax, [edi + edi*4]
lea ebx, [esi + eax*8]
mov ax, word [ebx + 0x68]
cmp ax, word [ebp - 4]
je 0x66ece1
push 0xb00b
call fcn.00671867
pop edi
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.00671e4a
test al, al
je case.0x66b4d2.28
push edi
mov ecx, esi
call fcn.0067182e
movzx eax, word [ebx + 0x5a]
mov ecx, eax
and eax, 0xf
shr ecx, 0xe
and ecx, 1
shl ecx, 4
or ecx, eax
movzx eax, byte [ebp + 0xb]
cmp ecx, eax
mov ecx, esi
jne 0x66e84c
or byte [edi + esi + 0x581], 2
push dword [ebx + 0x4c]
push 0xa5
push edi
call fcn.00671a70
test al, al
je case.0x66b4d2.28
or byte [edi + esi + 0x581], 4
lea eax, [edi + edi*4]
push dword [esi + eax*8 + 0x50]
mov ecx, esi
push 0xb0
push edi
call fcn.00671a70
jmp 0x66b6cb