Function at 0x656eb4
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff80
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0x2c], eax
cmp dword [ebx + 0x268], 3
mov edx, dword [ebx + 0x54]
add edx, 2
mov dword [ebp - 0x18], edx
xor esi, esi
xor eax, eax
cmp eax, dword [ebp - 0x18]
jge 0x656ef7
mov edx, esi
shl edx, 7
add edx, esi
lea ecx, [ebx + edx*2]
mov byte [ecx + eax + 0x9324], 0xf
inc eax
cmp eax, dword [ebp - 0x18]
jl 0x656edf
inc esi
cmp esi, 6
jl 0x656ed8
cmp dword [ebx + 0x274], 0
jg 0x656f11
push 0xbb9
call fcn.00654a1c
pop ecx
cmp dword [ebx + 0x274], 0xc8
jge 0x656f26
mov dword [ebp - 0x24], 2
jmp 0x656f6c
cmp dword [ebx + 0x274], 0x258
jge 0x656f3b
mov dword [ebp - 0x24], 3
jmp 0x656f6c
cmp dword [ebx + 0x274], 0x4b0
jge 0x656f50
mov dword [ebp - 0x24], 4
jmp 0x656f6c
cmp dword [ebx + 0x274], 0x960
jge 0x656f65
mov dword [ebp - 0x24], 5
jmp 0x656f6c
mov dword [ebp - 0x24], 6
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebx + 0x274]
mov dword [ebp - 0x30], eax
xor edi, edi
test ecx, ecx
jle 0x657044
mov eax, dword [ebp - 0x30]
cdq
idiv ecx
lea edx, [edi - 1]
mov dword [ebp - 8], edx
xor edx, edx
mov dword [ebp - 0x34], edx
jmp 0x656fa5
inc dword [ebp - 8]
mov edx, dword [ebp - 8]
mov edx, dword [ebx + edx*4 + 0x278]
add dword [ebp - 0x34], edx
cmp eax, dword [ebp - 0x34]
jle 0x656fb3
mov edx, dword [ebp - 0x18]
dec edx
cmp edx, dword [ebp - 8]
jg 0x656f95
cmp edi, dword [ebp - 8]
jge 0x656fe6
cmp ecx, dword [ebp - 0x24]
je 0x656fe6
cmp ecx, 1
je 0x656fe6
mov eax, dword [ebp - 0x24]
sub eax, ecx
and eax, 0x80000001
jns 0x656fd3
dec eax
or eax, 0xfffffffe
inc eax
dec eax
jne 0x656fe6
mov esi, dword [ebp - 8]
mov eax, dword [ebx + esi*4 + 0x278]
sub dword [ebp - 0x34], eax
dec dword [ebp - 8]
cmp dword [ebx + 0x268], 3
xor eax, eax
cmp eax, dword [ebp - 0x18]
jge 0x657031
cmp edi, eax
jg 0x657015
cmp eax, dword [ebp - 8]
jg 0x657015
mov edx, ecx
shl edx, 7
add edx, ecx
lea edx, [ebx + edx*2 - 0x102]
mov byte [edx + eax + 0x9324], 0
jmp 0x65702b
mov edx, ecx
shl edx, 7
add edx, ecx
lea edx, [ebx + edx*2 - 0x102]
mov byte [edx + eax + 0x9324], 0xf
inc eax
cmp eax, dword [ebp - 0x18]
jl 0x656ff4
dec ecx
mov edi, dword [ebp - 8]
inc edi
mov eax, dword [ebp - 0x34]
sub dword [ebp - 0x30], eax
test ecx, ecx
jg 0x656f82
xor edx, edx
mov dword [ebp - 0x10], edx
xor esi, esi
cmp esi, dword [ebp - 0x24]
jge 0x65705c
xor eax, eax
mov dword [ebp + esi*4 - 0x70], eax
inc esi
cmp esi, dword [ebp - 0x24]
jl 0x657050
xor esi, esi
cmp esi, dword [ebp - 0x24]
jge 0x657089
xor eax, eax
cmp eax, dword [ebp - 0x18]
jge 0x657083
mov edx, esi
shl edx, 7
add edx, esi
lea ecx, [ebx + edx*8]
xor edx, edx
mov dword [ecx + eax*4 + 0xb160], edx
inc eax
cmp eax, dword [ebp - 0x18]
jl 0x65706a
inc esi
cmp esi, dword [ebp - 0x24]
jl 0x657063
cmp dword [ebp - 0x24], 6
jne 0x657105
xor eax, eax
cmp eax, dword [ebp - 0x18]
jge 0x657105
xor ecx, ecx
mov cl, byte [ebx + eax + 0x9426]
shl ecx, 0x10
xor edx, edx
mov dl, byte [ebx + eax + 0x9324]
or ecx, edx
mov edx, eax
shl edx, 4
mov dword [ebx + edx + 0xc990], ecx
xor ecx, ecx
mov cl, byte [ebx + eax + 0x962a]
shl ecx, 0x10
xor edx, edx
mov dl, byte [ebx + eax + 0x9528]
or ecx, edx
mov edx, eax
shl edx, 4
mov dword [ebx + edx + 0xc994], ecx
xor ecx, ecx
mov cl, byte [ebx + eax + 0x982e]
shl ecx, 0x10
xor edx, edx
mov dl, byte [ebx + eax + 0x972c]
or ecx, edx
mov edx, eax
shl edx, 4
mov dword [ebx + edx + 0xc998], ecx
inc eax
cmp eax, dword [ebp - 0x18]
jl 0x657096
xor eax, eax
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov dword [ebp - 0xc], ecx
xor edi, edi
cmp edi, dword [ebx + 0x274]
jge 0x6581bd
lea eax, [edi + 0x31]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
cmp edx, dword [ebx + 0x274]
jl 0x657138
mov ecx, dword [ebx + 0x274]
dec ecx
mov dword [ebp - 8], ecx
xor esi, esi
cmp esi, dword [ebp - 0x24]
jge 0x65714c
mov word [ebp + esi*2 - 0x58], 0
inc esi
cmp esi, dword [ebp - 0x24]
jl 0x65713f
cmp dword [ebp - 0x24], 6
jne 0x657c07
mov eax, dword [ebp - 8]
sub eax, edi
inc eax
cmp eax, 0x32
jne 0x657c07
xor ecx, ecx
mov edx, ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 2]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 4]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 6]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 8]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0xa]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0xc]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0xe]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x10]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x12]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x14]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x16]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x18]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x1a]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x1c]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x1e]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x20]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x22]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x24]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x26]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x28]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x2a]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x2c]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x2e]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x30]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x32]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x34]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x36]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x38]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x3a]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x3c]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x3e]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x40]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x42]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x44]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x46]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x48]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x4a]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x4c]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x4e]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x50]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x52]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x54]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x56]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x58]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x5a]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x5c]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x5e]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x60]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + edi*2 + 0x62]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x38], ecx
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x3c], ecx
movzx eax, ax
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov ax, word [ebp - 0x38]
and ax, 0xffff
mov word [ebp - 0x58], ax
mov ecx, dword [ebp - 0x38]
shr ecx, 0x10
mov word [ebp - 0x56], cx
mov ax, word [ebp - 0x3c]
and ax, 0xffff
mov word [ebp - 0x54], ax
mov ecx, dword [ebp - 0x3c]
shr ecx, 0x10
mov word [ebp - 0x52], cx
mov eax, edx
and ax, 0xffff
mov word [ebp - 0x50], ax
shr edx, 0x10
mov word [ebp - 0x4e], dx
jmp 0x657c4e
mov dword [ebp - 4], edi
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 8]
jg 0x657c4e
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ebp - 4]
mov ax, word [ecx + esi*2]
xor esi, esi
cmp esi, dword [ebp - 0x24]
jge 0x657c43
movzx edx, ax
mov ecx, esi
shl ecx, 7
add ecx, esi
lea ecx, [ebx + ecx*2]
movzx edx, byte [ecx + edx + 0x9324]
add word [ebp + esi*2 - 0x58], dx
inc esi
cmp esi, dword [ebp - 0x24]
jl 0x657c23
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 8]
jle 0x657c12
mov edx, 0x3b9ac9ff
or eax, 0xffffffff
xor esi, esi
cmp esi, dword [ebp - 0x24]
jge 0x657c73
movzx ecx, word [ebp + esi*2 - 0x58]
cmp edx, ecx
jle 0x657c6d
movzx edx, word [ebp + esi*2 - 0x58]
mov eax, esi
inc esi
cmp esi, dword [ebp - 0x24]
jl 0x657c5d
add dword [ebp - 0xc], edx
inc dword [ebp + eax*4 - 0x70]
mov edx, dword [ebp - 0x14]
mov byte [ebx + edx + 0x680], al
inc dword [ebp - 0x14]
cmp dword [ebp - 0x24], 6
jne 0x658183
mov ecx, dword [ebp - 8]
sub ecx, edi
inc ecx
cmp ecx, 0x32
jne 0x658183
mov edx, dword [ebp - 0x2c]
movzx ecx, word [edx + edi*2]
mov edx, eax
shl edx, 7
add edx, eax
lea edx, [ebx + edx*8]
inc dword [edx + ecx*4 + 0xb160]
mov ecx, dword [ebp - 0x2c]
movzx edx, word [ecx + edi*2 + 2]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 4]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 6]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 8]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0xa]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0xc]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0xe]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x10]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x12]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x14]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x16]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x18]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x1a]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x1c]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x1e]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x20]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x22]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x24]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x26]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x28]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x2a]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x2c]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x2e]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x30]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x32]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x34]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x36]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x38]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x3a]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x3c]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x3e]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x40]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x42]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x44]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x46]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x48]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x4a]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x4c]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x4e]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x50]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x52]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x54]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x56]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x58]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x5a]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x5c]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x5e]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x60]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
mov edx, dword [ebp - 0x2c]
movzx edx, word [edx + edi*2 + 0x62]
mov ecx, eax
shl eax, 7
add eax, ecx
lea eax, [ebx + eax*8]
inc dword [eax + edx*4 + 0xb160]
jmp 0x6581b4
mov dword [ebp - 4], edi
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 8]
jg 0x6581b4
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 4]
movzx ecx, word [ecx + edx*2]
mov edx, eax
shl edx, 7
add edx, eax
lea edx, [ebx + edx*8]
inc dword [edx + ecx*4 + 0xb160]
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 8]
jle 0x65818e
mov edi, dword [ebp - 8]
inc edi
jmp 0x657111
cmp dword [ebx + 0x268], 3
jl 0x6581d3
xor esi, esi
cmp esi, dword [ebp - 0x24]
jge 0x6581d3
inc esi
cmp esi, dword [ebp - 0x24]
jl 0x6581cd
xor esi, esi
cmp esi, dword [ebp - 0x24]
jge 0x65820a
push 0x11
push dword [ebp - 0x18]
imul eax, esi, 0x408
add eax, ebx
add eax, 0xb160
push eax
imul edx, esi, 0x102
add edx, ebx
add edx, 0x9324
push edx
call fcn.00656790
add esp, 0x10
inc esi
cmp esi, dword [ebp - 0x24]
jl 0x6581da
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x657049
cmp dword [ebp - 0x24], 8
jl 0x658228
push 0xbba
call fcn.00654a1c
pop ecx
cmp dword [ebp - 0x14], 0x8000
jge 0x65823a
cmp dword [ebp - 0x14], 0x4652
jle 0x658245
push 0xbbb
call fcn.00654a1c
pop ecx
xor ecx, ecx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x24]
jge 0x658267
mov al, byte [ebp - 4]
mov edx, dword [ebp - 4]
mov byte [ebp + edx - 0x44], al
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x24]
jl 0x658252
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x14]
jge 0x6582b6
mov ecx, dword [ebp - 4]
mov al, byte [ebx + ecx + 0x680]
mov byte [ebp - 0x45], al
xor esi, esi
mov al, byte [ebp + esi - 0x44]
cmp al, byte [ebp - 0x45]
je 0x65829c
inc esi
mov edx, eax
mov al, byte [ebp + esi - 0x44]
mov byte [ebp + esi - 0x44], dl
cmp al, byte [ebp - 0x45]
jne 0x65828c
mov byte [ebp - 0x44], al
mov edx, esi
mov ecx, dword [ebp - 4]
mov byte [ebx + ecx + 0x4cd2], dl
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x14]
jl 0x658274
xor esi, esi
cmp esi, dword [ebp - 0x24]
jge 0x65839d
mov edi, 0x20
xor eax, eax
mov dword [ebp - 0x1c], eax
xor edx, edx
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x18]
jge 0x658345
mov ecx, esi
shl ecx, 7
add ecx, esi
lea eax, [ebx + ecx*2]
mov edx, dword [ebp - 4]
xor ecx, ecx
mov cl, byte [eax + edx + 0x9324]
cmp ecx, dword [ebp - 0x1c]
jle 0x65830b
mov eax, esi
shl eax, 7
add eax, esi
lea edx, [ebx + eax*2]
mov eax, dword [ebp - 4]
movzx edx, byte [edx + eax + 0x9324]
mov dword [ebp - 0x1c], edx
mov ecx, esi
shl ecx, 7
add ecx, esi
lea ecx, [ebx + ecx*2]
mov eax, dword [ebp - 4]
xor edx, edx
mov dl, byte [ecx + eax + 0x9324]
cmp edi, edx
jle 0x65833a
mov ecx, esi
shl ecx, 7
add ecx, esi
lea eax, [ebx + ecx*2]
mov edx, dword [ebp - 4]
movzx edi, byte [eax + edx + 0x9324]
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x18]
jl 0x6582d8
cmp dword [ebp - 0x1c], 0x11
jle 0x658356
push 0xbbc
call fcn.00654a1c
pop ecx
cmp edi, 1
jge 0x658366
push 0xbbd
call fcn.00654a1c
pop ecx
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push edi
imul edx, esi, 0x102
add edx, ebx
add edx, 0x9324
push edx
imul ecx, esi, 0x408
add ecx, ebx
add ecx, 0x9930
push ecx
call fcn.00656a92
add esp, 0x14
inc esi
cmp esi, dword [ebp - 0x24]
jl 0x6582c1
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov byte [ebp + eax - 0x80], 0
xor esi, esi
mov eax, dword [ebp - 4]
shl eax, 4
lea edx, [ebx + eax]
cmp byte [edx + esi + 0x58], 0
je 0x6583c4
mov ecx, dword [ebp - 4]
mov byte [ebp + ecx - 0x80], 1
inc esi
cmp esi, 0x10
jl 0x6583ac
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x10
jl 0x6583a2
mov ecx, dword [ebx + 0x4c]
mov dword [ebp - 0x28], ecx
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
cmp byte [ebp + edx - 0x80], 0
je 0x6583f7
push 1
push 1
push ebx
call fcn.00656bec
add esp, 0xc
jmp 0x658404
push 0
push 1
push ebx
call fcn.00656bec
add esp, 0xc
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x10
jl 0x6583de
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
cmp byte [ebp + eax - 0x80], 0
je 0x658450
xor esi, esi
mov eax, dword [ebp - 4]
shl eax, 4
lea edx, [ebx + eax]
cmp byte [edx + esi + 0x58], 0
je 0x65843d
push 1
push 1
push ebx
call fcn.00656bec
add esp, 0xc
jmp 0x65844a
push 0
push 1
push ebx
call fcn.00656bec
add esp, 0xc
inc esi
cmp esi, 0x10
jl 0x65841e
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x10
jl 0x658412
cmp dword [ebx + 0x268], 3
mov ecx, dword [ebx + 0x4c]
mov dword [ebp - 0x28], ecx
push dword [ebp - 0x24]
push 3
push ebx
call fcn.00656bec
add esp, 0xc
push dword [ebp - 0x14]
push 0xf
push ebx
call fcn.00656bec
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x14]
jge 0x6584c9
xor esi, esi
jmp 0x6584a1
push 1
push 1
push ebx
call fcn.00656bec
add esp, 0xc
inc esi
mov eax, dword [ebp - 4]
xor edx, edx
mov dl, byte [ebx + eax + 0x4cd2]
cmp esi, edx
jl 0x658493
push 0
push 1
push ebx
call fcn.00656bec
add esp, 0xc
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x14]
jl 0x65848f
cmp dword [ebx + 0x268], 3
mov ecx, dword [ebx + 0x4c]
mov dword [ebp - 0x28], ecx
xor esi, esi
cmp esi, dword [ebp - 0x24]
jge 0x65857f
mov eax, esi
shl eax, 7
add eax, esi
movzx edi, byte [ebx + eax*2 + 0x9324]
push edi
push 5
push ebx
call fcn.00656bec
add esp, 0xc
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x18]
jge 0x658575
jmp 0x658519
push 2
push 2
push ebx
call fcn.00656bec
add esp, 0xc
inc edi
mov ecx, esi
shl ecx, 7
add ecx, esi
lea ecx, [ebx + ecx*2]
mov eax, dword [ebp - 4]
xor edx, edx
mov dl, byte [ecx + eax + 0x9324]
cmp edi, edx
jl 0x65850b
jmp 0x658543
push 3
push 2
push ebx
call fcn.00656bec
add esp, 0xc
dec edi
mov ecx, esi
shl ecx, 7
add ecx, esi
lea eax, [ebx + ecx*2]
mov edx, dword [ebp - 4]
xor ecx, ecx
mov cl, byte [eax + edx + 0x9324]
cmp edi, ecx
jg 0x658535
push 0
push 1
push ebx
call fcn.00656bec
add esp, 0xc
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x18]
jl 0x658519
inc esi
cmp esi, dword [ebp - 0x24]
jl 0x6584e1
cmp dword [ebx + 0x268], 3
mov edx, dword [ebx + 0x4c]
mov dword [ebp - 0x28], edx
xor ecx, ecx
mov dword [ebp - 0x20], ecx
xor edi, edi
cmp edi, dword [ebx + 0x274]
jge 0x658d78
lea eax, [edi + 0x31]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
cmp edx, dword [ebx + 0x274]
jl 0x6585ba
mov ecx, dword [ebx + 0x274]
dec ecx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov al, byte [ebx + ecx + 0x680]
cmp eax, dword [ebp - 0x24]
jl 0x6585d6
push 0xbbe
call fcn.00654a1c
pop ecx
cmp dword [ebp - 0x24], 6
jne 0x658cfd
mov edx, dword [ebp - 8]
sub edx, edi
inc edx
cmp edx, 0x32
jne 0x658cfd
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov al, byte [ebx + ecx + 0x680]
imul esi, eax, 0x102
add esi, ebx
add esi, 0x9324
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [ebx + eax + 0x680]
imul ecx, edx, 0x408
add ecx, ebx
add ecx, 0x9930
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 2]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 4]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 6]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 8]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0xa]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0xc]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0xe]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x10]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x12]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x14]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x16]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x18]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x1a]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x1c]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x1e]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x20]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x22]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x24]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x26]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x28]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x2a]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x2c]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x2e]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x30]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x32]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x34]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x36]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x38]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x3a]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x3c]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x3e]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x40]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x42]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x44]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x46]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x48]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x4a]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x4c]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x4e]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x50]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x52]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x54]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x56]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x58]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x5a]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x5c]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x5e]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x60]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + edi*2 + 0x62]
movzx edx, ax
mov ecx, dword [ebp - 0x4c]
push dword [ecx + edx*4]
movzx eax, ax
xor edx, edx
mov dl, byte [esi + eax]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
jmp 0x658d6c
mov dword [ebp - 4], edi
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 8]
jg 0x658d6c
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 4]
movzx ecx, word [eax + edx*2]
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [ebx + eax + 0x680]
mov eax, edx
shl eax, 7
add eax, edx
lea edx, [ebx + eax*8]
push dword [edx + ecx*4 + 0x9930]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
movzx edx, word [ecx + eax*2]
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov al, byte [ebx + ecx + 0x680]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea eax, [ebx + ecx*2]
movzx edx, byte [eax + edx + 0x9324]
push edx
push ebx
call fcn.00656bec
add esp, 0xc
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 8]
jle 0x658d08
mov edi, dword [ebp - 8]
inc edi
inc dword [ebp - 0x20]
jmp 0x658593
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
je 0x658d8b
push 0xbbf
call fcn.00654a1c
pop ecx
cmp dword [ebx + 0x268], 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret