Function at 0x40d2e0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff70
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0x34], eax
mov edx, dword [ebx + 0x268]
mov ecx, dword [ebx + 0x54]
add ecx, 2
cmp edx, 3
xor esi, esi
mov dword [ebp - 0x1c], ecx
xor eax, eax
mov edx, dword [ebp - 0x1c]
cmp eax, edx
jge 0x40d32c
mov ecx, esi
shl ecx, 7
add ecx, esi
lea edx, [ebx + ecx*2]
mov byte [edx + eax + 0x9324], 0xf
inc eax
mov ecx, dword [ebp - 0x1c]
cmp eax, ecx
jl 0x40d312
inc esi
cmp esi, 6
jl 0x40d309
mov eax, dword [ebx + 0x274]
test eax, eax
jg 0x40d347
push 0xbb9
call fcn.0040acbc
pop ecx
mov eax, dword [ebx + 0x274]
cmp eax, 0xc8
jge 0x40d35d
mov dword [ebp - 0x2c], 2
jmp 0x40d3a8
mov edx, dword [ebx + 0x274]
cmp edx, 0x258
jge 0x40d374
mov dword [ebp - 0x2c], 3
jmp 0x40d3a8
mov ecx, dword [ebx + 0x274]
cmp ecx, 0x4b0
jge 0x40d38b
mov dword [ebp - 0x2c], 4
jmp 0x40d3a8
mov eax, dword [ebx + 0x274]
cmp eax, 0x960
jge 0x40d3a1
mov dword [ebp - 0x2c], 5
jmp 0x40d3a8
mov dword [ebp - 0x2c], 6
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebx + 0x274]
mov dword [ebp - 0x38], edx
xor edi, edi
test ecx, ecx
jle 0x40d48e
mov eax, dword [ebp - 0x38]
cdq
idiv ecx
mov dword [ebp - 0x3c], eax
lea eax, [edi - 1]
mov dword [ebp - 8], eax
xor edx, edx
mov dword [ebp - 0x40], edx
jmp 0x40d3e4
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
mov edx, dword [ebx + eax*4 + 0x278]
add dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
cmp eax, edx
jge 0x40d3f9
mov eax, dword [ebp - 0x1c]
dec eax
mov edx, dword [ebp - 8]
cmp eax, edx
jg 0x40d3d4
mov eax, dword [ebp - 8]
cmp edi, eax
jge 0x40d430
mov edx, dword [ebp - 0x2c]
cmp ecx, edx
je 0x40d430
cmp ecx, 1
je 0x40d430
mov eax, dword [ebp - 0x2c]
sub eax, ecx
and eax, 0x80000001
jns 0x40d41d
dec eax
or eax, 0xfffffffe
inc eax
dec eax
jne 0x40d430
mov edx, dword [ebp - 8]
mov eax, dword [ebx + edx*4 + 0x278]
sub dword [ebp - 0x40], eax
dec dword [ebp - 8]
mov edx, dword [ebx + 0x268]
xor eax, eax
cmp edx, 3
mov edx, dword [ebp - 0x1c]
cmp eax, edx
jge 0x40d47b
cmp edi, eax
jg 0x40d461
mov edx, dword [ebp - 8]
cmp eax, edx
jg 0x40d461
mov edx, ecx
shl edx, 7
add edx, ecx
lea edx, [ebx + edx*2]
mov byte [edx + eax + 0x9222], 0
jmp 0x40d473
mov edx, ecx
shl edx, 7
add edx, ecx
lea edx, [ebx + edx*2]
mov byte [edx + eax + 0x9222], 0xf
inc eax
mov edx, dword [ebp - 0x1c]
cmp eax, edx
jl 0x40d442
dec ecx
mov edi, dword [ebp - 8]
inc edi
mov eax, dword [ebp - 0x40]
sub dword [ebp - 0x38], eax
test ecx, ecx
jg 0x40d3be
xor edx, edx
mov dword [ebp - 0x14], edx
xor esi, esi
lea edi, [ebp - 0x80]
mov eax, dword [ebp - 0x2c]
cmp esi, eax
jge 0x40d4ae
xor edx, edx
mov dword [edi], edx
inc esi
add edi, 4
mov ecx, dword [ebp - 0x2c]
cmp esi, ecx
jl 0x40d49f
xor esi, esi
mov eax, dword [ebp - 0x2c]
cmp esi, eax
jge 0x40d4e3
xor eax, eax
mov edx, dword [ebp - 0x1c]
cmp eax, edx
jge 0x40d4db
mov ecx, esi
shl ecx, 7
add ecx, esi
lea edx, [ebx + ecx*8]
xor ecx, ecx
mov dword [edx + eax*4 + 0xb160], ecx
inc eax
mov edx, dword [ebp - 0x1c]
cmp eax, edx
jl 0x40d4c0
inc esi
mov eax, dword [ebp - 0x2c]
cmp esi, eax
jl 0x40d4b7
mov ecx, dword [ebp - 0x2c]
cmp ecx, 6
jne 0x40d565
xor eax, eax
mov edx, dword [ebp - 0x1c]
cmp eax, edx
jge 0x40d565
xor ecx, ecx
xor edx, edx
mov cl, byte [ebx + eax + 0x9426]
mov dl, byte [ebx + eax + 0x9324]
shl ecx, 0x10
or ecx, edx
mov edx, eax
shl edx, 4
mov dword [ebx + edx + 0xc990], ecx
xor ecx, ecx
mov cl, byte [ebx + eax + 0x962a]
xor edx, edx
shl ecx, 0x10
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]
xor edx, edx
shl ecx, 0x10
mov dl, byte [ebx + eax + 0x972c]
or ecx, edx
mov edx, eax
shl edx, 4
inc eax
mov dword [ebx + edx + 0xc998], ecx
mov ecx, dword [ebp - 0x1c]
cmp eax, ecx
jl 0x40d4f4
xor eax, eax
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0xc], eax
xor edi, edi
mov eax, dword [ebx + 0x274]
cmp edi, eax
jge 0x40e4fa
lea edx, [edi + 0x31]
mov dword [ebp - 8], edx
mov ecx, dword [ebx + 0x274]
mov eax, dword [ebp - 8]
cmp ecx, eax
jg 0x40d59c
mov edx, dword [ebx + 0x274]
dec edx
mov dword [ebp - 8], edx
xor esi, esi
lea edx, [ebp - 0x68]
mov eax, dword [ebp - 0x2c]
cmp esi, eax
jge 0x40d5b8
mov word [edx], 0
inc esi
add edx, 2
mov ecx, dword [ebp - 0x2c]
cmp esi, ecx
jl 0x40d5a8
mov eax, dword [ebp - 0x2c]
cmp eax, 6
jne 0x40e075
mov edx, dword [ebp - 8]
sub edx, edi
inc edx
cmp edx, 0x32
jne 0x40e075
xor ecx, ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x34]
mov edx, ecx
mov ax, word [eax + edi*2]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 2]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 4]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 6]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 8]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0xa]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0xc]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0xe]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x10]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x12]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x14]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x16]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x18]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x1a]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x1c]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x1e]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x20]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x22]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x24]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x26]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x28]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x2a]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x2c]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x2e]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x30]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x32]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x34]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x36]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x38]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x3a]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x3c]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x3e]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x40]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x42]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x44]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x46]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x48]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x4a]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x4c]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
shl ecx, 4
movzx eax, ax
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
shl eax, 4
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x4e]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x50]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x52]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x54]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x56]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x58]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x5a]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x5c]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x5e]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x60]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov eax, dword [ebp - 0x34]
mov ax, word [eax + edi*2 + 0x62]
movzx ecx, ax
shl ecx, 4
mov ecx, dword [ebx + ecx + 0xc990]
add dword [ebp - 0x44], ecx
movzx ecx, ax
movzx eax, ax
shl ecx, 4
shl eax, 4
mov ecx, dword [ebx + ecx + 0xc994]
add dword [ebp - 0x48], ecx
add edx, dword [ebx + eax + 0xc998]
mov ax, word [ebp - 0x44]
and ax, 0xffff
mov word [ebp - 0x68], ax
mov ecx, dword [ebp - 0x44]
shr ecx, 0x10
mov word [ebp - 0x66], cx
mov ax, word [ebp - 0x48]
and ax, 0xffff
mov word [ebp - 0x64], ax
mov eax, edx
mov ecx, dword [ebp - 0x48]
and ax, 0xffff
shr ecx, 0x10
mov word [ebp - 0x62], cx
mov word [ebp - 0x60], ax
shr edx, 0x10
mov word [ebp - 0x5e], dx
jmp 0x40e0cd
mov dword [ebp - 4], edi
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
cmp edx, ecx
jg 0x40e0cd
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 4]
mov cx, word [eax + edx*2]
mov word [ebp - 0x4a], cx
xor esi, esi
lea eax, [ebp - 0x68]
mov edx, dword [ebp - 0x2c]
cmp esi, edx
jge 0x40e0c0
movzx ecx, word [ebp - 0x4a]
mov edx, esi
shl edx, 7
add edx, esi
lea edx, [ebx + edx*2]
movzx ecx, byte [edx + ecx + 0x9324]
add word [eax], cx
inc esi
add eax, 2
mov edx, dword [ebp - 0x2c]
cmp esi, edx
jl 0x40e09c
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
cmp eax, ecx
jle 0x40e082
mov dword [ebp - 0x10], 0x3b9ac9ff
or eax, 0xffffffff
xor esi, esi
lea edx, [ebp - 0x68]
mov ecx, dword [ebp - 0x2c]
cmp esi, ecx
jge 0x40e0fe
movzx ecx, word [edx]
cmp ecx, dword [ebp - 0x10]
jge 0x40e0f3
movzx eax, word [edx]
mov dword [ebp - 0x10], eax
mov eax, esi
inc esi
add edx, 2
mov ecx, dword [ebp - 0x2c]
cmp esi, ecx
jl 0x40e0e3
mov edx, dword [ebp - 0x10]
add dword [ebp - 0xc], edx
inc dword [ebp + eax*4 - 0x80]
mov edx, dword [ebp - 0x18]
mov byte [ebx + edx + 0x680], al
inc dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
cmp ecx, 6
jne 0x40e4bc
mov edx, dword [ebp - 8]
sub edx, edi
inc edx
cmp edx, 0x32
jne 0x40e4bc
mov ecx, dword [ebp - 0x34]
mov edx, eax
shl edx, 7
movzx ecx, word [ecx + edi*2]
add edx, eax
lea esi, [ebx + edx*8]
lea eax, [ebx + edx*8]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 2]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 4]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 6]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 8]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0xa]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0xc]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0xe]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x10]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x12]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x14]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x16]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x18]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x1a]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x1c]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x1e]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x20]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x22]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x24]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x26]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x28]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x2a]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x2c]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x2e]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x30]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x32]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x34]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x36]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x38]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x3a]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x3c]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x3e]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x40]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x42]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x44]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x46]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x48]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x4a]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x4c]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x4e]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x50]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x52]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x54]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x56]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x58]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x5a]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x5c]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x5e]
inc dword [esi + ecx*4 + 0xb160]
lea esi, [ebx + edx*8]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x60]
inc dword [esi + ecx*4 + 0xb160]
mov ecx, dword [ebp - 0x34]
movzx ecx, word [ecx + edi*2 + 0x62]
inc dword [eax + ecx*4 + 0xb160]
jmp 0x40e4f1
mov dword [ebp - 4], edi
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
cmp edx, ecx
jg 0x40e4f1
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 4]
movzx edx, word [edx + ecx*2]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea ecx, [ebx + ecx*8]
inc dword [ecx + edx*4 + 0xb160]
inc dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
cmp edx, ecx
jle 0x40e4c9
mov edi, dword [ebp - 8]
inc edi
jmp 0x40d571
mov eax, dword [ebx + 0x268]
cmp eax, 3
jl 0x40e516
xor esi, esi
mov eax, dword [ebp - 0x2c]
cmp esi, eax
jge 0x40e516
inc esi
mov edx, dword [ebp - 0x2c]
cmp esi, edx
jl 0x40e50e
xor esi, esi
mov eax, dword [ebp - 0x2c]
cmp esi, eax
jge 0x40e559
mov ecx, esi
mov eax, esi
shl ecx, 7
push 0x14
add ecx, esi
mov edx, dword [ebp - 0x1c]
shl eax, 7
push edx
shl ecx, 3
add eax, esi
add ecx, ebx
add eax, eax
add ecx, 0xb160
add eax, ebx
add eax, 0x9324
push ecx
push eax
call fcn.0040ca30
add esp, 0x10
inc esi
mov edx, dword [ebp - 0x2c]
cmp esi, edx
jl 0x40e51f
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, 4
jl 0x40d493
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jl 0x40e57b
push 0xbba
call fcn.0040acbc
pop ecx
mov edx, dword [ebp - 0x18]
cmp edx, 0x8000
jge 0x40e591
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x4652
jle 0x40e59c
push 0xbbb
call fcn.0040acbc
pop ecx
xor eax, eax
mov dword [ebp - 4], eax
lea edi, [ebp - 0x50]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
cmp eax, edx
jge 0x40e5c1
mov cl, byte [ebp - 4]
mov byte [edi], cl
inc dword [ebp - 4]
inc edi
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
cmp eax, edx
jl 0x40e5ae
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
cmp eax, edx
jge 0x40e61c
mov ecx, dword [ebp - 4]
xor esi, esi
mov al, byte [ebx + ecx + 0x680]
mov byte [ebp - 0x51], al
lea eax, [ebp - 0x50]
mov dl, byte [ebp + esi - 0x50]
mov cl, byte [ebp - 0x51]
cmp dl, cl
je 0x40e600
inc eax
mov byte [ebp - 0x52], dl
mov cl, byte [ebp - 0x52]
inc esi
mov dl, byte [eax]
mov byte [eax], cl
mov cl, byte [ebp - 0x51]
cmp dl, cl
jne 0x40e5ed
mov byte [ebp - 0x50], dl
mov eax, esi
mov edx, dword [ebp - 4]
mov byte [ebx + edx + 0x4cd2], al
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
cmp eax, edx
jl 0x40e5d0
xor esi, esi
mov eax, dword [ebp - 0x2c]
cmp esi, eax
jge 0x40e725
mov dword [ebp - 0x20], 0x20
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x24], edx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
cmp eax, edx
jge 0x40e6bd
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]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
jle 0x40e67a
mov edx, esi
shl edx, 7
add edx, esi
lea ecx, [ebx + edx*2]
mov eax, dword [ebp - 4]
xor edx, edx
mov dl, byte [ecx + eax + 0x9324]
mov dword [ebp - 0x24], edx
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]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
jge 0x40e6b0
mov edx, esi
shl edx, 7
add edx, esi
lea ecx, [ebx + edx*2]
mov eax, dword [ebp - 4]
xor edx, edx
mov dl, byte [ecx + eax + 0x9324]
mov dword [ebp - 0x20], edx
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
jl 0x40e644
mov edx, dword [ebp - 0x24]
cmp edx, 0x14
jle 0x40e6d0
push 0xbbc
call fcn.0040acbc
pop ecx
mov ecx, dword [ebp - 0x20]
dec ecx
jge 0x40e6e1
push 0xbbd
call fcn.0040acbc
pop ecx
mov eax, dword [ebp - 0x1c]
push eax
mov eax, esi
mov edx, dword [ebp - 0x24]
push edx
mov edx, esi
shl edx, 7
mov ecx, dword [ebp - 0x20]
shl eax, 7
add edx, esi
add eax, esi
push ecx
add eax, eax
shl edx, 3
add eax, ebx
add eax, 0x9324
add edx, ebx
add edx, 0x9930
push eax
push edx
call fcn.0040ce30
add esp, 0x14
inc esi
mov ecx, dword [ebp - 0x2c]
cmp esi, ecx
jl 0x40e629
xor eax, eax
lea edi, [ebp - 0x90]
mov dword [ebp - 4], eax
mov byte [edi], 0
mov eax, edi
mov dword [ebp - 0x5c], eax
xor esi, esi
mov edx, dword [ebp - 4]
shl edx, 4
lea ecx, [ebx + edx]
mov al, byte [ecx + esi + 0x58]
test al, al
je 0x40e751
mov edx, dword [ebp - 0x5c]
mov byte [edx], 1
inc esi
cmp esi, 0x10
jl 0x40e73a
inc dword [ebp - 4]
inc edi
mov ecx, dword [ebp - 4]
cmp ecx, 0x10
jl 0x40e730
mov eax, dword [ebx + 0x4c]
xor edx, edx
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], edx
lea edi, [ebp - 0x90]
mov al, byte [edi]
test al, al
je 0x40e789
push 1
push 1
push ebx
call fcn.0040cfe0
add esp, 0xc
jmp 0x40e796
push 0
push 1
push ebx
call fcn.0040cfe0
add esp, 0xc
inc dword [ebp - 4]
inc edi
mov edx, dword [ebp - 4]
cmp edx, 0x10
jl 0x40e774
xor ecx, ecx
lea edi, [ebp - 0x90]
mov dword [ebp - 4], ecx
mov al, byte [edi]
test al, al
je 0x40e7e8
xor esi, esi
mov eax, dword [ebp - 4]
shl eax, 4
lea edx, [ebx + eax]
mov cl, byte [edx + esi + 0x58]
test cl, cl
je 0x40e7d5
push 1
push 1
push ebx
call fcn.0040cfe0
add esp, 0xc
jmp 0x40e7e2
push 0
push 1
push ebx
call fcn.0040cfe0
add esp, 0xc
inc esi
cmp esi, 0x10
jl 0x40e7b5
inc dword [ebp - 4]
inc edi
mov eax, dword [ebp - 4]
cmp eax, 0x10
jl 0x40e7ad
mov edx, dword [ebx + 0x268]
cmp edx, 3
mov ecx, dword [ebx + 0x4c]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x2c]
push eax
push 3
push ebx
call fcn.0040cfe0
add esp, 0xc
mov edx, dword [ebp - 0x18]
push edx
push 0xf
push ebx
call fcn.0040cfe0
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
cmp eax, edx
jge 0x40e86c
xor esi, esi
jmp 0x40e842
push 1
push 1
push ebx
call fcn.0040cfe0
add esp, 0xc
inc esi
mov eax, dword [ebp - 4]
xor edx, edx
mov dl, byte [ebx + eax + 0x4cd2]
cmp esi, edx
jl 0x40e834
push 0
push 1
push ebx
call fcn.0040cfe0
add esp, 0xc
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
jl 0x40e830
mov edx, dword [ebx + 0x268]
mov ecx, dword [ebx + 0x4c]
mov dword [ebp - 0x30], ecx
cmp edx, 3
mov eax, dword [ebp - 0x2c]
xor esi, esi
cmp esi, eax
jge 0x40e92c
mov edx, esi
shl edx, 7
add edx, esi
movzx edi, byte [ebx + edx*2 + 0x9324]
push edi
push 5
push ebx
call fcn.0040cfe0
add esp, 0xc
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
cmp edx, ecx
jge 0x40e920
jmp 0x40e8c2
push 2
push 2
push ebx
call fcn.0040cfe0
add esp, 0xc
inc edi
mov eax, esi
shl eax, 7
add eax, esi
lea edx, [ebx + eax*2]
mov ecx, dword [ebp - 4]
xor eax, eax
mov al, byte [edx + ecx + 0x9324]
cmp edi, eax
jl 0x40e8b4
jmp 0x40e8ec
push 3
push 2
push ebx
call fcn.0040cfe0
add esp, 0xc
dec edi
mov edx, esi
shl edx, 7
add edx, esi
lea ecx, [ebx + edx*2]
mov eax, dword [ebp - 4]
xor edx, edx
mov dl, byte [ecx + eax + 0x9324]
cmp edi, edx
jg 0x40e8de
push 0
push 1
push ebx
call fcn.0040cfe0
add esp, 0xc
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
jl 0x40e8c2
inc esi
mov edx, dword [ebp - 0x2c]
cmp esi, edx
jl 0x40e888
mov ecx, dword [ebx + 0x268]
mov eax, dword [ebx + 0x4c]
xor edx, edx
mov dword [ebp - 0x30], eax
cmp ecx, 3
xor edi, edi
mov dword [ebp - 0x28], edx
mov eax, dword [ebx + 0x274]
cmp edi, eax
jge 0x40f16d
lea edx, [edi + 0x31]
mov dword [ebp - 8], edx
mov ecx, dword [ebx + 0x274]
mov eax, dword [ebp - 8]
cmp ecx, eax
jg 0x40e96d
mov edx, dword [ebx + 0x274]
dec edx
mov dword [ebp - 8], edx
mov ecx, dword [ebp - 0x28]
xor eax, eax
mov al, byte [ebx + ecx + 0x680]
mov edx, dword [ebp - 0x2c]
cmp eax, edx
jl 0x40e98b
push 0xbbe
call fcn.0040acbc
pop ecx
mov ecx, dword [ebp - 0x2c]
cmp ecx, 6
jne 0x40f0ed
mov eax, dword [ebp - 8]
sub eax, edi
inc eax
cmp eax, 0x32
jne 0x40f0ed
mov edx, dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0x28]
mov cl, byte [ebx + edx + 0x680]
mov esi, ecx
xor edx, edx
shl esi, 7
mov dl, byte [ebx + eax + 0x680]
add esi, ecx
mov ecx, edx
shl ecx, 7
add esi, esi
add ecx, edx
add esi, ebx
shl ecx, 3
add esi, 0x9324
add ecx, ebx
add ecx, 0x9930
mov dword [ebp - 0x58], ecx
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
mov ax, word [eax + edi*2]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 2]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 4]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 6]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 8]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0xa]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0xc]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0xe]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x10]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x12]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x14]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x16]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x18]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x1a]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x1c]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x1e]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x20]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x22]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x24]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x26]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x28]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x2a]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x2c]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x2e]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x30]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x32]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x34]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x36]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x38]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x3a]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x3c]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x3e]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x40]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x42]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x44]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x46]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x48]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x4a]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x4c]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x4e]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x50]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x52]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x54]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x56]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x58]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x5a]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x5c]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x5e]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x60]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov ax, word [eax + edi*2 + 0x62]
movzx edx, ax
movzx eax, ax
mov edx, dword [ecx + edx*4]
xor ecx, ecx
push edx
mov cl, byte [esi + eax]
push ecx
push ebx
call fcn.0040cfe0
add esp, 0xc
jmp 0x40f161
mov dword [ebp - 4], edi
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
cmp eax, edx
jg 0x40f161
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
movzx edx, word [ecx + eax*2]
mov ecx, dword [ebp - 0x28]
xor eax, eax
mov al, byte [ebx + ecx + 0x680]
mov ecx, eax
shl ecx, 7
add ecx, eax
lea eax, [ebx + ecx*8]
mov edx, dword [eax + edx*4 + 0x9930]
push edx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
movzx edx, word [ecx + eax*2]
mov ecx, dword [ebp - 0x28]
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.0040cfe0
add esp, 0xc
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
cmp ecx, eax
jle 0x40f0fa
mov edi, dword [ebp - 8]
inc edi
inc dword [ebp - 0x28]
jmp 0x40e942
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
cmp eax, edx
je 0x40f182
push 0xbbf
call fcn.0040acbc
pop ecx
mov ecx, dword [ebx + 0x268]
cmp ecx, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret