Function at 0x656aa4
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push ecx
movzx eax, byte [ebp + 8]
push ebx
mov ebx, 1
push esi
mov esi, ecx
push edi
cmp eax, 0x99
ja case.0x656ac8.6
movzx eax, byte [eax + 0x658200]
jmp dword [eax*4 + 0x6580d0]
push dword [ebp + 0xc]
call fcn.00653ab4
pop edi
mov ebx, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [esi + 0x588]
push 0x4c
call fcn.0065fe11
mov ebx, dword [ebp + 0xc]
inc eax
and eax, 3
inc eax
mov dword [ebp + 8], eax
lea ecx, [ebx + ebx*4]
lea edi, [esi + ecx*8]
mov dword [edi + 0x60], 3
push dword [esi + 0x588]
push 0x63
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a30
mov dword [edi + 0x64], eax
push dword [esi + 0x588]
push 0xa6
call fcn.0065fe11
mov ecx, dword [ebp + 8]
imul eax, ecx
mov dword [edi + 0x74], 0
mov dword [edi + 0x70], eax
lea eax, [ebx + ebx*4]
pop edi
mov dword [esi + eax*8 + 0x78], ecx
mov ebx, 1
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [ebp + 0xc]
call fcn.00654139
pop edi
mov ebx, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [esi + 0x588]
push 0x49
call fcn.0065fe11
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 8], eax
lea ecx, [ecx + ecx*4]
lea edi, [esi + ecx*8]
mov dword [edi + 0x60], 3
push dword [esi + 0x588]
push 0x63
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a30
mov dword [edi + 0x64], eax
push dword [esi + 0x588]
push 0x66
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a30
mov ecx, dword [ebp + 8]
mov dword [edi + 0x68], eax
cmp ecx, 3
jne 0x656bd0
push dword [esi + 0x588]
push 0x2b
call fcn.0065fe11
jmp 0x656bd7
mov eax, 2
sub eax, ecx
mov ecx, eax
mov edx, ebx
mov eax, dword [ebp + 0xc]
shl edx, cl
pop edi
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 0x78], edx
mov eax, ebx
or dword [esi + 0x594], 0x100000
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0x588]
mov edi, ecx
push ecx
shr edi, 5
lea eax, [eax + eax*4]
and edi, 1
lea ebx, [esi + eax*8]
mov eax, ecx
shr eax, 7
and eax, 0xffffff01
push 0x80
mov dword [ebp + 0xc], eax
call fcn.0065fe11
cmp dword [esi + 8], 8
mov dword [ebp + 8], eax
jne 0x656c3d
test byte [esi + 0x5e0], 8
je 0x656c63
cmp eax, 0xd
jne 0x656c50
mov eax, 0x8003
mov word [esi + 0x780], ax
jmp 0x656c72
cmp eax, 0xf
jne 0x656c72
mov eax, 0x8004
mov word [esi + 0x780], ax
jmp 0x656c68
cmp eax, 0xf
jne 0x656c72
mov dword [esi + 0x590], 0xe
push dword [esi + 0x588]
push 0x210
call fcn.0065fe11
xor edx, edx
test eax, eax
je 0x656c90
lea ecx, [eax - 1]
inc edx
and eax, ecx
jne 0x656c88
mov eax, dword [ebp + 8]
shl edx, 2
cmp byte [ebp + 0xc], 0
mov dword [ebx + 0x60], 3
mov dword [ebx + 0x64], eax
mov dword [ebx + 0x78], edx
jne 0x656cb7
xor eax, eax
neg edx
mov dword [ebx + 0x70], edx
adc eax, eax
neg eax
mov dword [ebx + 0x74], eax
mov eax, dword [esi + 0x594]
mov ebx, 1
and eax, 0xfeffffff
shl edi, 0x18
or eax, edi
pop edi
mov dword [esi + 0x594], eax
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [esi + 0x588]
push 0x68
call fcn.0065fe11
mov ecx, dword [ebp + 0xc]
push eax
mov dword [ebp + 8], eax
lea ecx, [ecx + ecx*4]
lea edi, [esi + ecx*8]
mov ecx, esi
mov dword [edi + 0x60], 3
call fcn.00666a30
mov dword [edi + 0x64], eax
cmp dword [esi + 0x598], 0x112
je 0x656d30
mov eax, dword [ebp + 8]
mov edi, dword [esi + 0x588]
or eax, 0x20
push edi
push eax
call fcn.0065fe11
cmp eax, 1
jne 0x656d30
xor ecx, ecx
jmp 0x656d3b
mov edi, dword [esi + 0x588]
mov ecx, 0x1000000
mov eax, dword [esi + 0x594]
and eax, 0xfeffffff
push edi
or eax, ecx
push 0x100
mov dword [esi + 0x594], eax
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00653560
mov ecx, dword [ebp + 0xc]
shl eax, 2
pop edi
lea ecx, [ecx + ecx*4]
mov dword [esi + ecx*8 + 0x78], eax
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0x588]
push ecx
push 0x80
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, ecx
shr eax, 7
and eax, 1
mov dword [ebp + 0xc], eax
mov eax, ecx
shr eax, 5
and eax, 1
mov dword [ebp - 4], eax
mov eax, ecx
shr eax, 4
and eax, 1
mov dword [ebp + 8], eax
call fcn.0065fe11
cmp dword [esi + 8], 8
mov ebx, eax
jne 0x656dc5
test byte [esi + 0x5e0], 8
je 0x656deb
cmp ebx, 0xd
jne 0x656dd8
mov eax, 0x8003
mov word [esi + 0x780], ax
jmp 0x656dfa
cmp ebx, 0xf
jne 0x656dfa
mov eax, 0x8004
mov word [esi + 0x780], ax
jmp 0x656df0
cmp ebx, 0xf
jne 0x656dfa
mov dword [esi + 0x590], 0xe
cmp byte [ebp + 8], 0
je 0x656e18
mov eax, dword [esi + 0x588]
push eax
push 0x210
call fcn.0065fe11
cmp eax, 0xc000
jmp 0x656e33
cmp ebx, 0xd
jne 0x656e35
mov eax, dword [esi + 0x588]
push eax
push 0x175
call fcn.0065fe11
cmp eax, 0x600
je 0x656e3f
mov dword [esi + 0x590], 0xe
cmp byte [ebp + 0xc], 0
mov dword [edi + 0x60], 3
mov dword [edi + 0x64], ebx
mov dword [edi + 0x78], 8
jne 0x656e64
mov dword [edi + 0x70], 0xfffffff8
mov dword [edi + 0x74], 0xffffffff
mov eax, dword [esi + 0x594]
mov ebx, 1
mov ecx, dword [ebp - 4]
and eax, 0xfeffffff
shl ecx, 0x18
or eax, ecx
pop edi
mov dword [esi + 0x594], eax
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [ebp + 0xc]
lea eax, [ebx + ebx*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x64], 0xf
mov dword [edi + 0x60], 3
push dword [esi + 0x588]
push 0x100
call fcn.0065fe11
shl eax, 2
mov dword [edi + 0x70], eax
lea eax, [ebx + ebx*4]
mov dword [esi + eax*8 + 0x78], 4
mov dword [edi + 0x74], 0
mov ebx, 1
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [ebp + 0xc]
lea eax, [ebx + ebx*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x64], 0xd
jmp 0x656e9d
mov edi, dword [ebp + 0xc]
lea eax, [edi + edi*4]
lea eax, [esi + eax*8]
mov dword [eax + 0x60], 3
push dword [esi + 0x588]
mov dword [ebp + 8], eax
push 0x80
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666acb
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x64], eax
push dword [esi + 0x588]
push 0x90
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.006669c8
mov edx, dword [ebp + 8]
add edi, 3
mov dword [edx + 0x68], eax
lea eax, [edi + edi*4]
mov ecx, dword [esi + 0x594]
lea edi, [esi + eax*8]
or ecx, 0x100000
mov eax, ebx
cmp dword [esi + 0x598], 0x13b
mov dword [esi + 0x594], ecx
jne 0x656f7b
and ecx, 0xffffff8f
mov dword [esi + 0x594], ecx
mov word [edx + 0x80], ax
mov eax, 2
mov dword [edi], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [ebp + 0xc]
lea eax, [ebx + ebx*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 3
push dword [esi + 0x588]
push 0x80
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a76
mov dword [edi + 0x64], eax
push dword [esi + 0x588]
push 0x110
jmp 0x656eaf
mov ebx, dword [ebp + 0xc]
lea eax, [ebx + ebx*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 3
push dword [esi + 0x588]
push 0x80
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a76
mov dword [edi + 0x64], eax
push dword [esi + 0x588]
push 0x54
call fcn.0065fe11
mov ecx, eax
mov edx, 1
lea eax, [ebx + ebx*4]
shl edx, cl
pop edi
mov dword [esi + eax*8 + 0x78], edx
mov ebx, 1
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
pop edi
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 0x60], 2
mov dword [esi + eax*8 + 0x7c], 2
mov dword [esi + eax*8 + 0x70], 0
mov dword [esi + eax*8 + 0x74], 0
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x80
call fcn.0065fe11
mov dword [edi + 0x70], eax
mov eax, ebx
mov dword [edi + 0x74], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0xc0
call fcn.0065fe11
mov dword [edi + 0x70], eax
mov eax, ebx
mov dword [edi + 0x74], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0xe0
call fcn.0065fe11
shl eax, 2
mov dword [edi + 0x70], eax
mov eax, ebx
mov dword [edi + 0x74], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x100
call fcn.0065fe11
mov dword [edi + 0x70], eax
mov eax, ebx
mov dword [edi + 0x74], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x100
jmp 0x6570e6
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x90
call fcn.0065fe11
jmp 0x6570ee
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x110
call fcn.0065fe11
jmp 0x6570ee
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x66
call fcn.0065fe11
jmp 0x6570ee
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x1587c
call fcn.0065fe11
jmp 0x6570ee
mov edi, dword [esi + 0x588]
push edi
push 0xb0
call fcn.0065fe11
push edi
push 0x1587c
mov dword [ebp + 8], eax
call fcn.0065fe11
mov edx, dword [ebp + 8]
mov edi, eax
cmp edx, edi
jae 0x657242
mov dword [esi + 0x590], 0xe
mov ecx, dword [ebp + 0xc]
xor eax, eax
sub edx, edi
pop edi
sbb eax, eax
add edx, ebx
lea ecx, [ecx + ecx*4]
adc eax, 0
mov dword [esi + ecx*8 + 0x60], 2
mov dword [esi + ecx*8 + 0x74], eax
mov eax, ebx
mov dword [esi + ecx*8 + 0x7c], 2
mov dword [esi + ecx*8 + 0x70], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [esi + 0x588]
push edi
push 0xb0
call fcn.0065fe11
push edi
push 0x1587c
mov dword [ebp + 8], eax
call fcn.0065fe11
mov edx, dword [ebp + 8]
add eax, edx
cmp eax, 0x1f
jbe 0x6572a9
mov dword [esi + 0x590], 0xe
mov eax, dword [ebp + 0xc]
pop edi
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
lea eax, [edx + 1]
mov dword [ecx + 0x60], 2
mov dword [ecx + 0x70], eax
mov eax, ebx
pop esi
mov dword [ecx + 0x7c], 2
mov dword [ecx + 0x74], 0
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x75
call fcn.0065fe11
jmp 0x6570ee
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x60
call fcn.0065fe11
jmp 0x6570ee
mov eax, dword [ebp + 0xc]
pop edi
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov dword [ecx + 0x60], 2
mov dword [ecx + 0x7c], 2
mov eax, dword [esi + 0x588]
mov dword [ecx + 0x70], eax
mov eax, ebx
pop esi
mov dword [ecx + 0x74], 0
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [eax + 0x60], 2
mov dword [eax + 0x7c], 2
push dword [esi + 0x588]
mov dword [ebp + 8], eax
push 0x1101f02a
call fcn.0065fe11
mov ecx, eax
movzx edi, cl
shr ecx, 7
cmp ecx, 7
ja case.default.0x657393
jmp dword [ecx*4 + 0x6582a0]
mov edx, edi
jmp 0x6573cf
mov edx, edi
shl edx, 0x10
or edx, edi
jmp 0x6573cf
mov edx, edi
shl edx, 8
mov eax, edx
shl eax, 0x10
or edx, eax
jmp 0x6573cf
mov edx, edi
shl edx, 8
or edx, edi
mov eax, edx
shl eax, 0x10
or edx, eax
jmp 0x6573cf
mov edx, edi
or edx, 0x80
ror edx, cl
test edi, edi
jne 0x6573e5
lea eax, [ecx - 2]
cmp eax, 5
ja 0x6573e5
mov dword [esi + 0x590], 0xe
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword [eax + 0x70], edx
mov dword [eax + 0x74], 0
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x1101f02a
call fcn.0065fe11
jmp 0x6570ee
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x23
call fcn.0065fe11
jmp 0x6570ee
cmp dword [esi + 0x44], 0
jbe case.0x656ac8.81
mov dword [esi + 0x590], 0xe
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x64080
call fcn.0065fe11
jmp 0x6570ee
mov edi, dword [esi + 0x588]
push edi
push 0x84
call fcn.0065fe11
push edi
push 0x80
mov dword [ebp + 8], eax
call fcn.0065fe11
mov edx, dword [ebp + 8]
cmp edx, 0xf
je 0x6574c1
cmp edx, 0xe
jne 0x6574cb
lea ecx, [eax - 1]
test eax, ecx
je 0x6574cb
mov dword [esi + 0x590], 0xe
mov eax, dword [ebp + 0xc]
pop edi
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 0x60], 2
mov dword [esi + eax*8 + 0x7c], 2
mov dword [esi + eax*8 + 0x70], edx
mov dword [esi + eax*8 + 0x74], 0
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov dword [ebx + 0x60], 2
mov dword [ebx + 0x7c], 2
mov esi, dword [esi + 0x588]
push esi
push 0x7c0a880
call fcn.0065fe11
push esi
mov edi, eax
push 0x110
shl edi, 8
call fcn.0065fe11
or edi, eax
mov dword [ebx + 0x74], 0
mov dword [ebx + 0x70], edi
mov ebx, 1
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0xb0
call fcn.0065fe11
jmp 0x6570ee
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
mov ebx, dword [esi + 0x588]
push ebx
push 0xb0
call fcn.0065fe11
test bl, bl
js 0x6575a5
inc eax
mov dword [edi + 0x70], eax
jmp 0x656ec5
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x90
call fcn.0065fe11
cmp dword [esi + 0x598], 0x103
jne 0x6570ee
inc eax
jmp 0x6570ee
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x1587c
call fcn.0065fe11
mov dword [edi + 0x70], eax
mov dword [edi + 0x74], 0
mov ecx, dword [esi + 0x588]
mov eax, dword [esi + 0x594]
shr ecx, 5
and eax, 0xffffff8f
and ecx, ebx
shl ecx, 5
or ecx, eax
mov eax, ebx
pop edi
mov dword [esi + 0x594], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov dword [ebx + 0x60], 2
mov dword [ebx + 0x7c], 2
mov edi, dword [esi + 0x588]
push edi
push 0x54
call fcn.0065fe11
push edi
push 0x1587c
mov dword [ebp + 8], eax
call fcn.0065fe11
push eax
lea eax, [ebp + 8]
mov ecx, esi
push eax
call fcn.00667a44
movzx eax, ax
cdq
mov dword [ebx + 0x70], eax
mov eax, dword [ebp + 8]
shl eax, 4
mov dword [ebx + 0x74], edx
mov ebx, 1
xor eax, dword [esi + 0x594]
and eax, 0x70
xor dword [esi + 0x594], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [esi + 0x588]
push 0x1587c
call fcn.0065fe11
mov ecx, dword [ebp + 0xc]
dec eax
and eax, 0x1f
inc eax
pop edi
lea ecx, [ecx + ecx*4]
mov dword [esi + ecx*8 + 0x70], eax
mov eax, ebx
mov dword [esi + ecx*8 + 0x60], 2
mov dword [esi + ecx*8 + 0x7c], 2
mov dword [esi + ecx*8 + 0x74], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [esi + 0x588]
push 0xa6
jmp 0x6576be
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], 2
push dword [esi + 0x588]
push 0x54
call fcn.0065fe11
xor ecx, ecx
shld ecx, eax, 3
shl eax, 3
mov dword [edi + 0x70], eax
mov dword [edi + 0x74], ecx
mov eax, dword [esi + 0x594]
and eax, 0xffffffbf
or eax, 0x30
pop edi
mov dword [esi + 0x594], eax
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov dword [ecx + 0x60], ebx
mov eax, dword [esi + 0x588]
shr eax, 4
and eax, 1
add eax, 0x10
mov dword [ecx + 0x64], eax
cmp dword [esi + 0x598], 0x82
jne case.0x656ac8.6
mov eax, dword [esi + 0x588]
test eax, 0x8000000
je 0x6577a0
mov eax, dword [ecx + 0x74]
or dword [ecx + 0x70], 0xf8000000
mov dword [ecx + 0x74], eax
mov eax, dword [esi + 0x588]
test eax, 0x4000000
je 0x6577ba
mov eax, dword [ecx + 0x74]
or dword [ecx + 0x70], 0xf0000
mov dword [ecx + 0x74], eax
mov eax, dword [esi + 0x588]
test eax, 0x2000000
je 0x6577d4
mov eax, dword [ecx + 0x74]
or dword [ecx + 0x70], 0xff00
mov dword [ecx + 0x74], eax
mov eax, dword [esi + 0x588]
test eax, 0x1000000
je case.0x656ac8.6
mov eax, dword [ecx + 0x74]
or dword [ecx + 0x70], 0xff
pop edi
mov dword [ecx + 0x74], eax
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov dword [ebx + 0x60], 1
mov edi, dword [esi + 0x588]
push edi
push 0x20034
call fcn.0065fe11
shr edi, 4
mov ecx, esi
and edi, 1
push eax
push edi
call fcn.0066688c
mov dword [ebx + 0x64], eax
mov ebx, 1
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov dword [ebx + 0x60], 1
mov edi, dword [esi + 0x588]
push edi
push 0x26034
call fcn.0065fe11
shr edi, 4
mov ecx, esi
and edi, 1
push eax
push edi
call fcn.0066688c
mov dword [ebx + 0x64], eax
mov ebx, 1
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x98
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.006669c8
mov dword [edi + 0x64], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x98
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a30
mov dword [edi + 0x64], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x60
jmp 0x657894
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x18027
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a30
mov dword [edi + 0x64], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x98
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a76
mov dword [edi + 0x64], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [esi + 0x588]
test ebx, 0x20000000
je 0x657973
mov dword [esi + 0x590], 0xe
mov eax, ebx
shr eax, 0x1f
cmp eax, 1
jne 0x657994
test bl, 0x10
je 0x65798a
test ebx, 0x40000000
je 0x657994
mov dword [esi + 0x590], 0xe
test bl, 0x20
je 0x6579c0
push ebx
push ebx
push 0x80
call fcn.0065fe11
add eax, 0x10
or eax, 0x20
push eax
call fcn.0065fe11
cmp eax, 1
jne 0x6579c0
mov dword [esi + 0x590], 0xe
push dword [esi + 0x588]
xor ebx, ebx
push 0x210
call fcn.0065fe11
mov ecx, dword [ebp + 0xc]
lea edi, [ebx + 1]
xor edx, edx
mov dword [ebp - 4], eax
lea ecx, [ecx + ecx*4]
lea ecx, [ecx*8 + 0x64]
add ecx, esi
mov eax, 0x8003
test dword [ebp - 4], edi
je 0x657a25
mov dword [ecx - 4], 1
cmp dword [esi + 8], 8
jne 0x657a09
test byte [esi + 0x5e0], 8
je 0x657a1f
cmp edx, 0xd
je 0x657a18
cmp edx, 0xf
jne 0x657a1f
mov eax, 0x8004
mov word [esi + 0x780], ax
mov dword [ecx], edx
inc ebx
add ecx, 0x28
inc edx
rol edi, 1
cmp edx, 0x10
jb 0x6579e9
cmp ebx, 2
jae case.0x656ac8.6
pop edi
mov dword [esi + 0x590], 0xe
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x9c
call fcn.0065fe11
cmp dword [esi + 0x598], 0x9a
mov ecx, esi
push eax
je 0x65789c
call fcn.00666acb
mov dword [edi + 0x64], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [esi + 0x588]
xor ebx, ebx
push 0x100
call fcn.0065fe11
mov dword [ebp - 4], eax
test eax, eax
je 0x657a36
mov eax, dword [ebp + 0xc]
lea edx, [ebx + 1]
xor ecx, ecx
lea eax, [eax + eax*4]
lea eax, [eax*8 + 0x64]
add eax, esi
mov edi, 0x8003
test dword [ebp - 4], edx
je 0x657af6
mov dword [eax - 4], 1
cmp dword [esi + 8], 8
jne 0x657ada
test byte [esi + 0x5e0], 8
je 0x657af0
cmp ecx, 0xd
je 0x657ae9
cmp ecx, 0xf
jne 0x657af0
mov edi, 0x8004
mov word [esi + 0x780], di
mov dword [eax], ecx
inc ebx
add eax, 0x28
inc ecx
rol edx, 1
cmp ecx, 8
jb 0x657aba
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [esi + 0x588]
xor ebx, ebx
push 0x100
call fcn.0065fe11
mov dword [ebp - 4], eax
lea edi, [ebx + 1]
mov eax, dword [ebp + 0xc]
xor edx, edx
lea ecx, [eax + eax*4]
lea ecx, [ecx*8 + 0x64]
add ecx, esi
mov edi, edi
mov eax, 0x8003
test dword [ebp - 4], edi
je 0x657b70
mov dword [ecx - 4], 1
cmp dword [esi + 8], 8
jne 0x657b54
test byte [esi + 0x5e0], 8
je 0x657b6a
cmp edx, 0xd
je 0x657b63
cmp edx, 0xf
jne 0x657b6a
mov eax, 0x8004
mov word [esi + 0x780], ax
mov dword [ecx], edx
inc ebx
add ecx, 0x28
inc edx
rol edi, 1
cmp edx, 8
jb 0x657b34
test dword [esi + 0x588], 0x100
je 0x657bac
mov eax, dword [ebp + 0xc]
add eax, ebx
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
xor eax, eax
mov dword [ecx + 0x60], 1
cmp dword [esi + 0x598], 0x9a
setne al
add eax, 0xe
inc ebx
mov dword [ecx + 0x64], eax
test ebx, ebx
jne case.0x656ac8.6
pop edi
mov dword [esi + 0x590], 0xe
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x90
jmp 0x657894
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x90
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a30
mov dword [edi + 0x64], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x66
jmp 0x657894
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x80
jmp 0x657894
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x80
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a30
mov dword [edi + 0x64], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x63
jmp 0x657894
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x83
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a30
mov dword [edi + 0x64], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x83
call fcn.0065fe11
cmp eax, 0xd
jne 0x6578a1
mov ecx, 0x8003
mov word [esi + 0x780], cx
mov dword [edi + 0x64], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x80
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a76
mov dword [edi + 0x64], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x9c
jmp 0x657894
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x9c
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a30
mov dword [edi + 0x64], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x68
jmp 0x657894
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], ebx
push dword [esi + 0x588]
push 0x9c
call fcn.0065fe11
push eax
mov ecx, esi
call fcn.00666a76
mov dword [edi + 0x64], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
pop edi
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 0x60], ebx
mov dword [esi + eax*8 + 0x64], 0xd
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [esi + 0x588]
push ebx
push 0x1101f02a
call fcn.0065fe11
mov edx, eax
test bl, 0x20
je 0x657e0a
neg edx
mov ecx, dword [ebp + 0xc]
lea eax, [ecx + ecx*4]
lea ecx, [esi + eax*8]
mov dword [ecx + 0x60], 2
mov dword [ecx + 0x7c], 1
cmp dword [esi + 8], 8
mov eax, dword [esi + 0x28]
jne 0x657e4c
and eax, 0xfffffffc
mov dword [ecx + 0x74], 0
add eax, 4
mov ebx, 1
add eax, edx
pop edi
mov dword [ecx + 0x70], eax
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
add eax, 8
mov dword [ecx + 0x74], 0
add eax, edx
mov ebx, 1
pop edi
mov dword [ecx + 0x70], eax
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [eax + 0x60], 2
mov dword [eax + 0x7c], ebx
cmp dword [esi + 8], 8
mov edi, dword [esi + 0x28]
mov dword [ebp + 8], eax
jne 0x657e92
and edi, 0xfffffffc
add edi, 4
jmp 0x657e95
add edi, 8
push dword [esi + 0x588]
push 0x100
call fcn.0065fe11
mov ecx, dword [ebp + 8]
lea eax, [edi + eax*4]
pop edi
mov dword [ecx + 0x70], eax
mov eax, ebx
pop esi
mov dword [ecx + 0x74], 0
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [eax + 0x60], 2
mov dword [eax + 0x7c], ebx
mov edi, dword [esi + 0x588]
push edi
push 0x3b0f42a
mov dword [ebp + 0xc], eax
call fcn.0065fe11
push edi
shl eax, 0x15
push 0x5c140
mov dword [ebp + 8], eax
call fcn.0065fe11
mov ecx, dword [ebp + 8]
or ecx, eax
add ecx, ecx
test ecx, 0x1000000
jne 0x657f0d
xor ecx, 0xc00000
cmp dword [esi + 0x598], 0x1c
jne 0x657f3e
test cl, 2
je 0x657f2d
pop edi
mov dword [esi + 0x50], 0
xor eax, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [esi + 8], 8
mov eax, dword [esi + 0x28]
jne 0x657f4c
and eax, 0xfffffffc
add eax, 4
jmp 0x657f4f
cmp dword [esi + 8], 8
mov eax, dword [esi + 0x28]
jne 0x657f4c
add eax, 4
jmp 0x657f4f
add eax, 8
push 0x19
push 1
push ecx
push eax
mov ecx, esi
call fcn.00652e13
mov ecx, dword [ebp + 0xc]
pop edi
pop esi
mov dword [ecx + 0x70], eax
mov eax, ebx
mov dword [ecx + 0x74], edx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [eax + 0x60], 2
mov dword [eax + 0x7c], ebx
mov edi, dword [esi + 0x588]
push edi
push 0x3d0ec2a
mov dword [ebp + 0xc], eax
call fcn.0065fe11
push edi
shl eax, 0x11
push 0x5c0c0
mov dword [ebp + 8], eax
call fcn.0065fe11
mov ecx, dword [ebp + 8]
or ecx, eax
mov eax, dword [esi + 0x28]
add ecx, ecx
cmp dword [esi + 8], 8
jne 0x657fbd
add eax, 4
jmp 0x657fc0
add eax, 8
push 0x15
push 1
push ecx
push eax
mov ecx, esi
call fcn.00652e13
mov ecx, dword [ebp + 0xc]
pop edi
pop esi
mov dword [ecx + 0x70], eax
mov eax, ebx
mov dword [ecx + 0x74], edx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], ebx
push dword [esi + 0x588]
push 0x160
call fcn.0065fe11
cmp dword [esi + 8], 8
mov ecx, dword [esi + 0x28]
jne 0x658012
add ecx, 4
jmp 0x658015
add ecx, 8
push 0xc
push 1
add eax, eax
push eax
push ecx
mov ecx, esi
call fcn.00652e13
mov dword [edi + 0x70], eax
mov eax, ebx
mov dword [edi + 0x74], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], ebx
push dword [esi + 0x588]
push 0x100
call fcn.0065fe11
cmp dword [esi + 8], 8
mov ecx, dword [esi + 0x28]
jne 0x658068
add ecx, 4
push 9
jmp 0x658017
add ecx, 8
push 9
jmp 0x658017
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [edi + 0x60], 2
mov dword [edi + 0x7c], ebx
push dword [esi + 0x588]
push 0x28c29
call fcn.0065fe11
cmp dword [esi + 8], 8
mov ecx, dword [esi + 0x28]
jne 0x6580a0
add ecx, 4
jmp 0x6580a3
add ecx, 8
add eax, eax
xor edx, edx
add ecx, eax
adc edx, edx
jne 0x6580b2
cmp ecx, 0xffffffff
jbe 0x6580bc
mov dword [esi + 0x590], 0xe
mov dword [edi + 0x70], ecx
mov dword [edi + 0x74], edx
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8