Function at 0x402865
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1fc
push ebx
push esi
push edi
mov eax, 0x11
mov word [ebp - 0x106], ax
mov eax, 0xd
mov word [ebp - 0xec], ax
mov eax, 0x12
mov word [ebp - 0x104], ax
mov eax, 0xa
mov word [ebp - 0xf8], ax
mov eax, 6
mov word [ebp - 0xfa], ax
mov eax, 9
mov word [ebp - 0xfc], ax
mov eax, 3
mov word [ebp - 0xee], ax
mov eax, 5
mov word [ebp - 0xf6], ax
mov eax, 1
mov word [ebp - 0xe6], ax
mov eax, 8
mov word [ebp - 0x100], ax
mov eax, 0x10
mov word [ebp - 0x108], ax
mov eax, 0xf
mov word [ebp - 0xe4], ax
mov eax, 0xc
mov word [ebp - 0xf0], ax
mov eax, 0xb
mov word [ebp - 0xf4], ax
xor eax, eax
mov word [ebp - 0x102], ax
mov eax, 0xe
mov word [ebp - 0xe8], ax
mov eax, 7
mov word [ebp - 0xfe], ax
mov eax, 4
mov word [ebp - 0xf2], ax
mov eax, 2
mov word [ebp - 0xea], ax
cmp dword [ebp + 8], 0
je 0x4027a6
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1c], 0
je 0x4027a6
mov eax, dword [ebp + 8]
cmp dword [eax + 0xc], 0
je 0x4027a6
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jne 0x4027b0
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
je 0x4027b0
mov eax, 0xfffffffe
jmp 0x406cb2
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x18c]
cmp dword [eax], 0xb
jne 0x4027d3
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xa0], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x14c], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x1b0], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x84], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x3c]
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x4027d3
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x174], 0
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax]
mov dword [ebp - 0x1fc], ecx
cmp dword [ebp - 0x1fc], 0x1f
ja case.0x40285e.1
mov edx, dword [ebp - 0x1fc]
jmp dword [edx*4 + 0x406cbc]
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 8], 0
jne 0x402882
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0xc
jmp 0x406001
cmp dword [ebp - 0xc8], 0x10
jae 0x4028e3
cmp dword [ebp - 0x84], 0
jne 0x402899
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x40288b
jmp 0x402882
xor eax, eax
jne 0x402882
mov eax, dword [ebp - 0x40]
and eax, 0xff
shl eax, 8
mov ecx, dword [ebp - 0x40]
shr ecx, 8
add eax, ecx
xor edx, edx
mov ecx, 0x1f
div ecx
test edx, edx
je 0x402922
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
mov eax, dword [ebp - 0x40]
and eax, 0xf
cmp eax, 8
je 0x402948
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
mov eax, dword [ebp - 0x40]
shr eax, 4
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
sub eax, 4
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x402948
mov eax, dword [ebp - 0x40]
and eax, 0xf
add eax, 8
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 0x24], 0
jne 0x40298a
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x24], ecx
jmp 0x4029b3
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x3c]
cmp ecx, dword [eax + 0x24]
jbe 0x4029b3
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
mov eax, 1
mov ecx, dword [ebp - 0x3c]
shl eax, cl
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x14], eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x18]
shr eax, 0x10
and eax, 0xffff
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x18]
and eax, 0xffff
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x1c], 1
jne 0x402a60
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0xfff1
jb 0x402a1d
mov eax, dword [ebp - 0x18]
sub eax, 0xfff1
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0xfff1
jb 0x402a49
mov eax, dword [ebp - 0xc4]
sub eax, 0xfff1
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc4]
shl eax, 0x10
or eax, dword [ebp - 0x18]
mov dword [ebp - 0xe0], eax
jmp 0x402f66
cmp dword [ebp - 0x38], 0
jne 0x402a75
mov dword [ebp - 0xe0], 1
jmp 0x402f66
cmp dword [ebp - 0x1c], 0x10
jae 0x402af1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
sub ecx, 1
mov dword [ebp - 0x1c], ecx
test eax, eax
je 0x402ab1
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x38]
add edx, 1
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
jmp 0x402a7b
cmp dword [ebp - 0x18], 0xfff1
jb 0x402ac5
mov eax, dword [ebp - 0x18]
sub eax, 0xfff1
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc4]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xc4]
shl eax, 0x10
or eax, dword [ebp - 0x18]
mov dword [ebp - 0xe0], eax
jmp 0x402f66
cmp dword [ebp - 0x1c], 0x15b0
jb 0x402d10
mov eax, dword [ebp - 0x1c]
sub eax, 0x15b0
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x78], 0x15b
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 1]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 2]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 3]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 4]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 5]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 6]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 7]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 8]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 9]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xa]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xb]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xc]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xd]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xe]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xf]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
add eax, 0x10
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x78]
sub eax, 1
mov dword [ebp - 0x78], eax
jne 0x402b10
mov eax, dword [ebp - 0x18]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0xc4]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0xc4], edx
jmp 0x402af1
cmp dword [ebp - 0x1c], 0
je 0x402f54
cmp dword [ebp - 0x1c], 0x10
jb 0x402efa
mov eax, dword [ebp - 0x1c]
sub eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 1]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 2]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 3]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 4]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 5]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 6]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 7]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 8]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 9]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xa]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xb]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xc]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xd]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xe]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xf]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x38]
add eax, 0x10
mov dword [ebp - 0x38], eax
jmp 0x402d1a
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
sub ecx, 1
mov dword [ebp - 0x1c], ecx
test eax, eax
je 0x402f30
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x38]
add edx, 1
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
jmp 0x402efa
mov eax, dword [ebp - 0x18]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0xc4]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xc4]
shl eax, 0x10
or eax, dword [ebp - 0x18]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x188], eax
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x188]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x188]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 0x40]
and eax, 0x200
neg eax
sbb eax, eax
and eax, 0xfffffffe
add eax, 0xb
mov ecx, dword [ebp - 0x18c]
mov dword [ecx], eax
mov dword [ebp - 0x40], 0
mov dword [ebp - 0xc8], 0
xor eax, eax
jne 0x402fad
jmp 0x406001
cmp dword [ebp - 0xc8], 0x20
jae 0x403028
cmp dword [ebp - 0x84], 0
jne 0x402fde
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x402fd0
jmp case.0x40285e.9
xor eax, eax
jne case.0x40285e.9
mov eax, dword [ebp - 0x40]
shr eax, 0x18
and eax, 0xff
mov ecx, dword [ebp - 0x40]
shr ecx, 8
and ecx, 0xff00
add eax, ecx
mov edx, dword [ebp - 0x40]
and edx, 0xff00
shl edx, 8
add eax, edx
mov ecx, dword [ebp - 0x40]
and ecx, 0xff
shl ecx, 0x18
add eax, ecx
mov edx, dword [ebp - 0x18c]
mov dword [edx + 0x18], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ecx + 0x18]
mov dword [eax + 0x24], edx
mov dword [ebp - 0x40], 0
mov dword [ebp - 0xc8], 0
xor eax, eax
jne 0x403079
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0xa
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 0xc], 0
jne 0x4030fe
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xa0]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x14c]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1b0]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x84]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x40]
mov dword [eax + 0x38], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x3c], ecx
xor eax, eax
jne 0x4030a6
mov eax, 2
jmp 0x406cb2
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x70], 0
mov eax, dword [ebp - 0x50]
shr eax, 0x10
and eax, 0xffff
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x50]
and eax, 0xffff
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x70], 1
jne 0x403180
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
cmp dword [ebp - 0x50], 0xfff1
jb 0x403152
mov eax, dword [ebp - 0x50]
sub eax, 0xfff1
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xfff1
jb 0x40316f
mov eax, dword [ebp - 4]
sub eax, 0xfff1
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
shl eax, 0x10
or eax, dword [ebp - 0x50]
mov dword [ebp - 8], eax
jmp 0x4035a2
cmp dword [ebp - 0x68], 0
jne 0x403192
mov dword [ebp - 8], 1
jmp 0x4035a2
cmp dword [ebp - 0x70], 0x10
jae 0x4031fc
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x70]
sub ecx, 1
mov dword [ebp - 0x70], ecx
test eax, eax
je 0x4031c8
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0x68]
add edx, 1
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
jmp 0x403198
cmp dword [ebp - 0x50], 0xfff1
jb 0x4031dc
mov eax, dword [ebp - 0x50]
sub eax, 0xfff1
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
shl eax, 0x10
or eax, dword [ebp - 0x50]
mov dword [ebp - 8], eax
jmp 0x4035a2
cmp dword [ebp - 0x70], 0x15b0
jb 0x4033be
mov eax, dword [ebp - 0x70]
sub eax, 0x15b0
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x88], 0x15b
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 1]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 2]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 3]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 4]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 5]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 6]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 7]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 8]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 9]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 0xa]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 0xb]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 0xc]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 0xd]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 0xe]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 0xf]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
add eax, 0x10
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x88]
sub eax, 1
mov dword [ebp - 0x88], eax
jne 0x40321e
mov eax, dword [ebp - 0x50]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 4], edx
jmp 0x4031fc
cmp dword [ebp - 0x70], 0
je 0x403596
cmp dword [ebp - 0x70], 0x10
jb 0x403548
mov eax, dword [ebp - 0x70]
sub eax, 0x10
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 1]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 2]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 3]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 4]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 5]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 6]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 7]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 8]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 9]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 0xa]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 0xb]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 0xc]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 0xd]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 0xe]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax + 0xf]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x68]
add eax, 0x10
mov dword [ebp - 0x68], eax
jmp 0x4033c8
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x70]
sub ecx, 1
mov dword [ebp - 0x70], ecx
test eax, eax
je 0x403578
mov eax, dword [ebp - 0x68]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0x68]
add edx, 1
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x50]
mov dword [ebp - 4], eax
jmp 0x403548
mov eax, dword [ebp - 0x50]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
shl eax, 0x10
or eax, dword [ebp - 0x50]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x13c]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x13c]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0xb
cmp dword [ebp + 0xc], 5
je 0x4035e4
cmp dword [ebp + 0xc], 6
jne case.0x40285e.12
jmp 0x406006
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 4], 0
je 0x403632
mov ecx, dword [ebp - 0xc8]
and ecx, 7
mov eax, dword [ebp - 0x40]
shr eax, cl
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
and eax, 7
mov ecx, dword [ebp - 0xc8]
sub ecx, eax
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x4035f5
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1a
jmp 0x406001
cmp dword [ebp - 0xc8], 3
jae 0x403693
cmp dword [ebp - 0x84], 0
jne 0x403649
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x40363b
jmp 0x403632
xor eax, eax
jne 0x403632
mov eax, dword [ebp - 0x40]
and eax, 1
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x40]
shr eax, 1
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
sub eax, 1
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x4036a6
mov eax, dword [ebp - 0x40]
and eax, 3
mov dword [ebp - 0x1fc], eax
cmp dword [ebp - 0x1fc], 3
ja case.default.0x4036e0
mov ecx, dword [ebp - 0x1fc]
jmp dword [ecx*4 + 0x406d3c]
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0xd
jmp case.default.0x4036e0
mov eax, dword [ebp - 0x18c]
push eax
call fcn.00401005
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x13
cmp dword [ebp + 0xc], 6
jne 0x403734
mov eax, dword [ebp - 0x40]
shr eax, 2
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
sub eax, 2
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x403713
jmp 0x406006
jmp case.default.0x4036e0
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x10
jmp case.default.0x4036e0
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
mov eax, dword [ebp - 0x40]
shr eax, 2
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
sub eax, 2
mov dword [ebp - 0xc8], eax
xor eax, eax
jne case.default.0x4036e0
jmp 0x406001
mov ecx, dword [ebp - 0xc8]
and ecx, 7
mov eax, dword [ebp - 0x40]
shr eax, cl
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
and eax, 7
mov ecx, dword [ebp - 0xc8]
sub ecx, eax
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne case.0x40285e.13
cmp dword [ebp - 0xc8], 0x20
jae 0x403808
cmp dword [ebp - 0x84], 0
jne 0x4037be
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x4037b0
jmp 0x4037a7
xor eax, eax
jne 0x4037a7
mov eax, dword [ebp - 0x40]
and eax, 0xffff
mov ecx, dword [ebp - 0x40]
shr ecx, 0x10
xor ecx, 0xffff
cmp eax, ecx
je 0x40383f
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
mov eax, dword [ebp - 0x40]
and eax, 0xffff
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x40], eax
mov dword [ebp - 0x40], 0
mov dword [ebp - 0xc8], 0
xor eax, eax
jne 0x403850
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0xe
cmp dword [ebp + 0xc], 6
jne case.0x40285e.14
jmp 0x406006
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0xf
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0x168], ecx
cmp dword [ebp - 0x168], 0
je 0x4039c4
mov eax, dword [ebp - 0x168]
cmp eax, dword [ebp - 0x84]
jbe 0x4038be
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x168]
cmp eax, dword [ebp - 0x14c]
jbe 0x4038d8
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x168], eax
cmp dword [ebp - 0x168], 0
jne 0x4038e6
jmp 0x406006
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x1b0]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x168]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x130]
sub ecx, 1
mov dword [ebp - 0x130], ecx
test eax, eax
jbe 0x40395f
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x6c]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x9c]
add eax, 1
mov dword [ebp - 0x9c], eax
mov ecx, dword [ebp - 0x6c]
add ecx, 1
mov dword [ebp - 0x6c], ecx
jmp 0x40391f
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x168]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
add eax, dword [ebp - 0x168]
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0x14c]
sub eax, dword [ebp - 0x168]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0xa0]
add eax, dword [ebp - 0x168]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x40]
sub ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 0x18c]
mov dword [edx + 0x40], ecx
jmp 0x406001
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0xb
jmp 0x406001
cmp dword [ebp - 0xc8], 0xe
jae 0x403a36
cmp dword [ebp - 0x84], 0
jne 0x4039ec
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x4039de
jmp case.0x40285e.16
xor eax, eax
jne case.0x40285e.16
mov eax, dword [ebp - 0x40]
and eax, 0x1f
add eax, 0x101
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x60], eax
mov eax, dword [ebp - 0x40]
shr eax, 5
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
sub eax, 5
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x403a4e
mov eax, dword [ebp - 0x40]
and eax, 0x1f
add eax, 1
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x64], eax
mov eax, dword [ebp - 0x40]
shr eax, 5
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
sub eax, 5
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x403a7c
mov eax, dword [ebp - 0x40]
and eax, 0xf
add eax, 4
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x5c], eax
mov eax, dword [ebp - 0x40]
shr eax, 4
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
sub eax, 4
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x403aaa
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 0x60], 0x11e
ja 0x403ae1
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 0x64], 0x1e
jbe 0x403afc
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
mov eax, dword [ebp - 0x18c]
mov dword [eax + 0x68], 0
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x11
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x18c]
mov edx, dword [eax + 0x68]
cmp edx, dword [ecx + 0x5c]
jae 0x403bea
cmp dword [ebp - 0xc8], 3
jae 0x403b8e
cmp dword [ebp - 0x84], 0
jne 0x403b44
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x403b36
jmp 0x403b2d
xor eax, eax
jne 0x403b2d
mov eax, dword [ebp - 0x40]
and eax, 7
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ecx + 0x68]
movzx ecx, word [ebp + edx*2 - 0x108]
mov edx, dword [ebp - 0x18c]
mov word [edx + ecx*2 + 0x70], ax
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x68]
add ecx, 1
mov edx, dword [ebp - 0x18c]
mov dword [edx + 0x68], ecx
mov eax, dword [ebp - 0x40]
shr eax, 3
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
sub eax, 3
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x403bc9
jmp case.0x40285e.17
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 0x68], 0x13
jae 0x403c2b
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x68]
movzx edx, word [ebp + ecx*2 - 0x108]
xor eax, eax
mov ecx, dword [ebp - 0x18c]
mov word [ecx + edx*2 + 0x70], ax
mov edx, dword [ebp - 0x18c]
mov eax, dword [edx + 0x68]
add eax, 1
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x68], eax
jmp 0x403bea
mov eax, dword [ebp - 0x18c]
add eax, 0x530
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x6c], eax
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ecx + 0x6c]
mov dword [eax + 0x4c], edx
mov eax, dword [ebp - 0x18c]
mov dword [eax + 0x54], 7
mov eax, dword [ebp - 0x18c]
add eax, 0x2f0
push eax
mov ecx, dword [ebp - 0x18c]
add ecx, 0x54
push ecx
mov edx, dword [ebp - 0x18c]
add edx, 0x6c
push edx
push 0x13
mov eax, dword [ebp - 0x18c]
add eax, 0x70
push eax
push 0
call fcn.00401032
mov dword [ebp - 0x174], eax
cmp dword [ebp - 0x174], 0
je 0x403cbb
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
mov eax, dword [ebp - 0x18c]
mov dword [eax + 0x68], 0
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x12
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x60]
mov edx, dword [ebp - 0x18c]
add ecx, dword [edx + 0x64]
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 0x68], ecx
jae 0x40416e
mov eax, dword [ebp - 0x18c]
mov edx, 1
mov ecx, dword [eax + 0x54]
shl edx, cl
sub edx, 1
and edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x4c]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x10], edx
movzx eax, byte [ebp - 0xf]
cmp eax, dword [ebp - 0xc8]
ja 0x403d28
jmp 0x403d83
cmp dword [ebp - 0x84], 0
jne 0x403d36
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x403d28
jmp 0x403cf5
movzx eax, word [ebp - 0xe]
cmp eax, 0x10
jge 0x403e4c
movzx eax, byte [ebp - 0xf]
cmp dword [ebp - 0xc8], eax
jae 0x403df4
cmp dword [ebp - 0x84], 0
jne 0x403daa
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x403d9c
jmp 0x403d90
xor eax, eax
jne 0x403d90
movzx ecx, byte [ebp - 0xf]
mov eax, dword [ebp - 0x40]
shr eax, cl
mov dword [ebp - 0x40], eax
movzx eax, byte [ebp - 0xf]
mov ecx, dword [ebp - 0xc8]
sub ecx, eax
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x403df8
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x68]
mov edx, dword [ebp - 0x18c]
mov ax, word [ebp - 0xe]
mov word [edx + ecx*2 + 0x70], ax
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ecx + 0x68]
add edx, 1
mov eax, dword [ebp - 0x18c]
mov dword [eax + 0x68], edx
jmp 0x404169
movzx eax, word [ebp - 0xe]
cmp eax, 0x10
jne 0x403f54
movzx eax, byte [ebp - 0xf]
add eax, 2
cmp dword [ebp - 0xc8], eax
jae 0x403ec0
cmp dword [ebp - 0x84], 0
jne 0x403e76
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x403e68
jmp 0x403e59
xor eax, eax
jne 0x403e59
movzx ecx, byte [ebp - 0xf]
mov eax, dword [ebp - 0x40]
shr eax, cl
mov dword [ebp - 0x40], eax
movzx eax, byte [ebp - 0xf]
mov ecx, dword [ebp - 0xc8]
sub ecx, eax
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x403ec4
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 0x68], 0
jne 0x403f0d
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x40416e
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x68]
mov edx, dword [ebp - 0x18c]
movzx eax, word [edx + ecx*2 + 0x6e]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x40]
and eax, 3
add eax, 3
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x40]
shr eax, 2
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
sub eax, 2
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x403f33
jmp 0x4040e4
movzx eax, word [ebp - 0xe]
cmp eax, 0x11
jne 0x404025
movzx eax, byte [ebp - 0xf]
add eax, 3
cmp dword [ebp - 0xc8], eax
jae 0x403fc8
cmp dword [ebp - 0x84], 0
jne 0x403f7e
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x403f70
jmp 0x403f61
xor eax, eax
jne 0x403f61
movzx ecx, byte [ebp - 0xf]
mov eax, dword [ebp - 0x40]
shr eax, cl
mov dword [ebp - 0x40], eax
movzx eax, byte [ebp - 0xf]
mov ecx, dword [ebp - 0xc8]
sub ecx, eax
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x403fcc
mov dword [ebp - 0x3c], 0
mov eax, dword [ebp - 0x40]
and eax, 7
add eax, 3
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x40]
shr eax, 3
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
sub eax, 3
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x404004
jmp 0x4040e4
movzx eax, byte [ebp - 0xf]
add eax, 7
cmp dword [ebp - 0xc8], eax
jae 0x40408c
cmp dword [ebp - 0x84], 0
jne 0x404042
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x404034
jmp 0x404025
xor eax, eax
jne 0x404025
movzx ecx, byte [ebp - 0xf]
mov eax, dword [ebp - 0x40]
shr eax, cl
mov dword [ebp - 0x40], eax
movzx eax, byte [ebp - 0xf]
mov ecx, dword [ebp - 0xc8]
sub ecx, eax
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x404090
mov dword [ebp - 0x3c], 0
mov eax, dword [ebp - 0x40]
and eax, 0x7f
add eax, 0xb
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x40]
shr eax, 7
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xc8]
sub eax, 7
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x4040c8
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x68]
add ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 0x18c]
mov eax, dword [edx + 0x60]
mov edx, dword [ebp - 0x18c]
add eax, dword [edx + 0x64]
cmp ecx, eax
jbe 0x404121
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x40416e
mov eax, dword [ebp - 0x168]
mov ecx, dword [ebp - 0x168]
sub ecx, 1
mov dword [ebp - 0x168], ecx
test eax, eax
je 0x404169
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x68]
mov edx, dword [ebp - 0x18c]
mov ax, word [ebp - 0x3c]
mov word [edx + ecx*2 + 0x70], ax
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ecx + 0x68]
add edx, 1
mov eax, dword [ebp - 0x18c]
mov dword [eax + 0x68], edx
jmp 0x404121
jmp case.0x40285e.18
mov eax, dword [ebp - 0x18c]
cmp dword [eax], 0x1d
jne 0x40417e
jmp 0x406001
mov eax, dword [ebp - 0x18c]
movzx ecx, word [eax + 0x270]
test ecx, ecx
jne 0x4041aa
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
mov eax, dword [ebp - 0x18c]
add eax, 0x530
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x6c], eax
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ecx + 0x6c]
mov dword [eax + 0x4c], edx
mov eax, dword [ebp - 0x18c]
mov dword [eax + 0x54], 9
mov eax, dword [ebp - 0x18c]
add eax, 0x2f0
push eax
mov ecx, dword [ebp - 0x18c]
add ecx, 0x54
push ecx
mov edx, dword [ebp - 0x18c]
add edx, 0x6c
push edx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x60]
push ecx
mov edx, dword [ebp - 0x18c]
add edx, 0x70
push edx
push 1
call fcn.00401032
mov dword [ebp - 0x174], eax
cmp dword [ebp - 0x174], 0
je 0x404242
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ecx + 0x6c]
mov dword [eax + 0x50], edx
mov eax, dword [ebp - 0x18c]
mov dword [eax + 0x58], 6
mov eax, dword [ebp - 0x18c]
add eax, 0x2f0
push eax
mov ecx, dword [ebp - 0x18c]
add ecx, 0x58
push ecx
mov edx, dword [ebp - 0x18c]
add edx, 0x6c
push edx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x64]
push ecx
mov edx, dword [ebp - 0x18c]
mov eax, dword [edx + 0x60]
mov ecx, dword [ebp - 0x18c]
lea edx, [ecx + eax*2 + 0x70]
push edx
push 2
call fcn.00401032
mov dword [ebp - 0x174], eax
cmp dword [ebp - 0x174], 0
je 0x4042d0
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x13
cmp dword [ebp + 0xc], 6
jne case.0x40285e.19
jmp 0x406006
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x14
cmp dword [ebp - 0x84], 6
jb 0x404f46
cmp dword [ebp - 0x14c], 0x102
jb 0x404f46
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xa0]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x14c]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1b0]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x84]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x40]
mov dword [eax + 0x38], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x3c], ecx
xor eax, eax
jne 0x404310
mov eax, dword [ebp + 8]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x140]
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x198], ecx
mov eax, dword [ebp - 0x140]
mov ecx, dword [eax]
sub ecx, 1
mov dword [ebp - 0x1a0], ecx
mov eax, dword [ebp - 0x140]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x1a0]
lea eax, [edx + ecx - 5]
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x140]
mov ecx, dword [eax + 0xc]
sub ecx, 1
mov dword [ebp - 0x8c], ecx
mov eax, dword [ebp - 0x140]
mov ecx, dword [ebp - 0xb0]
sub ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0x8c]
sub edx, ecx
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x140]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0x8c]
lea eax, [edx + ecx - 0x101]
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x198]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0x198]
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x164], ecx
mov eax, dword [ebp - 0x198]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xac], ecx
mov eax, dword [ebp - 0x198]
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x158], ecx
mov eax, dword [ebp - 0x198]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x170], ecx
mov eax, dword [ebp - 0x198]
mov ecx, dword [eax + 0x3c]
mov dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x198]
mov ecx, dword [eax + 0x4c]
mov dword [ebp - 0x180], ecx
mov eax, dword [ebp - 0x198]
mov ecx, dword [eax + 0x50]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x198]
mov edx, 1
mov ecx, dword [eax + 0x54]
shl edx, cl
sub edx, 1
mov dword [ebp - 0x148], edx
mov eax, dword [ebp - 0x198]
mov edx, 1
mov ecx, dword [eax + 0x58]
shl edx, cl
sub edx, 1
mov dword [ebp - 0x74], edx
cmp dword [ebp - 0x178], 0xf
jae 0x404517
mov eax, dword [ebp - 0x1a0]
add eax, 1
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x1a0]
movzx edx, byte [ecx]
mov ecx, dword [ebp - 0x178]
shl edx, cl
add edx, dword [ebp - 0x170]
mov dword [ebp - 0x170], edx
mov eax, dword [ebp - 0x178]
add eax, 8
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x1a0]
add eax, 1
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x1a0]
movzx edx, byte [ecx]
mov ecx, dword [ebp - 0x178]
shl edx, cl
add edx, dword [ebp - 0x170]
mov dword [ebp - 0x170], edx
mov eax, dword [ebp - 0x178]
add eax, 8
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x170]
and eax, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x180]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x15c], edx
movzx eax, byte [ebp - 0x15b]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0xbc]
shr eax, cl
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x178]
sub eax, dword [ebp - 0xbc]
mov dword [ebp - 0x178], eax
movzx eax, byte [ebp - 0x15c]
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
jne 0x40459d
mov eax, dword [ebp - 0x8c]
add eax, 1
mov dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0x8c]
mov dl, byte [ebp - 0x15a]
mov byte [ecx], dl
jmp 0x404d86
mov eax, dword [ebp - 0xbc]
and eax, 0x10
je 0x404d10
movzx eax, word [ebp - 0x15a]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xbc]
and eax, 0xf
mov dword [ebp - 0xbc], eax
je 0x40465f
mov eax, dword [ebp - 0x178]
cmp eax, dword [ebp - 0xbc]
jae 0x404617
mov eax, dword [ebp - 0x1a0]
add eax, 1
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x1a0]
movzx edx, byte [ecx]
mov ecx, dword [ebp - 0x178]
shl edx, cl
add edx, dword [ebp - 0x170]
mov dword [ebp - 0x170], edx
mov eax, dword [ebp - 0x178]
add eax, 8
mov dword [ebp - 0x178], eax
mov eax, 1
mov ecx, dword [ebp - 0xbc]
shl eax, cl
sub eax, 1
and eax, dword [ebp - 0x170]
add eax, dword [ebp - 0xd8]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0xbc]
shr eax, cl
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x178]
sub eax, dword [ebp - 0xbc]
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0xf
jae 0x4046de
mov eax, dword [ebp - 0x1a0]
add eax, 1
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x1a0]
movzx edx, byte [ecx]
mov ecx, dword [ebp - 0x178]
shl edx, cl
add edx, dword [ebp - 0x170]
mov dword [ebp - 0x170], edx
mov eax, dword [ebp - 0x178]
add eax, 8
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x1a0]
add eax, 1
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x1a0]
movzx edx, byte [ecx]
mov ecx, dword [ebp - 0x178]
shl edx, cl
add edx, dword [ebp - 0x170]
mov dword [ebp - 0x170], edx
mov eax, dword [ebp - 0x178]
add eax, 8
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x170]
and eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x15c], edx
movzx eax, byte [ebp - 0x15b]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0xbc]
shr eax, cl
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x178]
sub eax, dword [ebp - 0xbc]
mov dword [ebp - 0x178], eax
movzx eax, byte [ebp - 0x15c]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xbc]
and eax, 0x10
je 0x404cb3
movzx eax, word [ebp - 0x15a]
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0xbc]
and eax, 0xf
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x178]
cmp eax, dword [ebp - 0xbc]
jae 0x4047f4
mov eax, dword [ebp - 0x1a0]
add eax, 1
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x1a0]
movzx edx, byte [ecx]
mov ecx, dword [ebp - 0x178]
shl edx, cl
add edx, dword [ebp - 0x170]
mov dword [ebp - 0x170], edx
mov eax, dword [ebp - 0x178]
add eax, 8
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x178]
cmp eax, dword [ebp - 0xbc]
jae 0x4047f4
mov eax, dword [ebp - 0x1a0]
add eax, 1
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x1a0]
movzx edx, byte [ecx]
mov ecx, dword [ebp - 0x178]
shl edx, cl
add edx, dword [ebp - 0x170]
mov dword [ebp - 0x170], edx
mov eax, dword [ebp - 0x178]
add eax, 8
mov dword [ebp - 0x178], eax
mov eax, 1
mov ecx, dword [ebp - 0xbc]
shl eax, cl
sub eax, 1
and eax, dword [ebp - 0x170]
add eax, dword [ebp - 0x184]
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0xbc]
shr eax, cl
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x178]
sub eax, dword [ebp - 0xbc]
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x8c]
sub eax, dword [ebp - 0x17c]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x184]
cmp eax, dword [ebp - 0xbc]
jbe 0x404bbb
mov eax, dword [ebp - 0x184]
sub eax, dword [ebp - 0xbc]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0x164]
jbe 0x4048ad
mov eax, dword [ebp - 0x198]
cmp dword [eax + 0x1bc0], 0
je 0x4048ad
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x198]
mov dword [eax], 0x1d
jmp 0x404da6
mov eax, dword [ebp - 0x158]
sub eax, 1
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0xac], 0
jne 0x40493e
mov eax, dword [ebp - 0x19c]
sub eax, dword [ebp - 0xbc]
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0xd8]
jae 0x404939
mov eax, dword [ebp - 0xd8]
sub eax, dword [ebp - 0xbc]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
mov eax, dword [ebp - 0xbc]
sub eax, 1
mov dword [ebp - 0xbc], eax
jne 0x4048f4
mov eax, dword [ebp - 0x8c]
sub eax, dword [ebp - 0x184]
mov dword [ebp - 0x54], eax
jmp 0x404aca
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0xbc]
jae 0x404a53
mov eax, dword [ebp - 0x19c]
add eax, dword [ebp - 0xac]
sub eax, dword [ebp - 0xbc]
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xbc]
sub eax, dword [ebp - 0xac]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0xd8]
jae 0x404a51
mov eax, dword [ebp - 0xd8]
sub eax, dword [ebp - 0xbc]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
mov eax, dword [ebp - 0xbc]
sub eax, 1
mov dword [ebp - 0xbc], eax
jne 0x40499e
mov eax, dword [ebp - 0x158]
sub eax, 1
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0xd8]
jae 0x404a51
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xd8]
sub eax, dword [ebp - 0xbc]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
mov eax, dword [ebp - 0xbc]
sub eax, 1
mov dword [ebp - 0xbc], eax
jne 0x404a0c
mov eax, dword [ebp - 0x8c]
sub eax, dword [ebp - 0x184]
mov dword [ebp - 0x54], eax
jmp 0x404aca
mov eax, dword [ebp - 0xac]
sub eax, dword [ebp - 0xbc]
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0xd8]
jae 0x404aca
mov eax, dword [ebp - 0xd8]
sub eax, dword [ebp - 0xbc]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
mov eax, dword [ebp - 0xbc]
sub eax, 1
mov dword [ebp - 0xbc], eax
jne 0x404a85
mov eax, dword [ebp - 0x8c]
sub eax, dword [ebp - 0x184]
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0xd8], 2
jbe 0x404b5a
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
mov eax, dword [ebp - 0xd8]
sub eax, 3
mov dword [ebp - 0xd8], eax
jmp 0x404aca
cmp dword [ebp - 0xd8], 0
je 0x404bb6
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
cmp dword [ebp - 0xd8], 1
jbe 0x404bb6
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
jmp 0x404cb1
mov eax, dword [ebp - 0x8c]
sub eax, dword [ebp - 0x184]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
mov eax, dword [ebp - 0xd8]
sub eax, 3
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xd8], 2
ja 0x404bca
cmp dword [ebp - 0xd8], 0
je 0x404cb1
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
cmp dword [ebp - 0xd8], 1
jbe 0x404cb1
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x54]
mov cl, byte [eax]
mov byte [edx], cl
jmp 0x404d0e
mov eax, dword [ebp - 0xbc]
and eax, 0x40
jne 0x404cf0
movzx eax, word [ebp - 0x15a]
mov edx, 1
mov ecx, dword [ebp - 0xbc]
shl edx, cl
sub edx, 1
and edx, dword [ebp - 0x170]
add eax, edx
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x15c], edx
jmp 0x4046f3
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x198]
mov dword [eax], 0x1d
jmp 0x404da6
jmp 0x404d86
mov eax, dword [ebp - 0xbc]
and eax, 0x40
jne 0x404d50
movzx eax, word [ebp - 0x15a]
mov edx, 1
mov ecx, dword [ebp - 0xbc]
shl edx, cl
sub edx, 1
and edx, dword [ebp - 0x170]
add eax, edx
mov ecx, dword [ebp - 0x180]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x15c], edx
jmp 0x404532
mov eax, dword [ebp - 0xbc]
and eax, 0x20
je 0x404d6b
mov eax, dword [ebp - 0x198]
mov dword [eax], 0xb
jmp 0x404da6
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x198]
mov dword [eax], 0x1d
jmp 0x404da6
mov eax, dword [ebp - 0x1a0]
cmp eax, dword [ebp - 0x16c]
jae 0x404da6
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x144]
jb 0x404498
mov eax, dword [ebp - 0x178]
shr eax, 3
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x1a0]
sub eax, dword [ebp - 0xd8]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0xd8]
shl eax, 3
mov ecx, dword [ebp - 0x178]
sub ecx, eax
mov dword [ebp - 0x178], ecx
mov eax, 1
mov ecx, dword [ebp - 0x178]
shl eax, cl
sub eax, 1
and eax, dword [ebp - 0x170]
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x1a0]
add eax, 1
mov ecx, dword [ebp - 0x140]
mov dword [ecx], eax
mov eax, dword [ebp - 0x8c]
add eax, 1
mov ecx, dword [ebp - 0x140]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x1a0]
cmp eax, dword [ebp - 0x16c]
jae 0x404e42
mov ecx, dword [ebp - 0x16c]
sub ecx, dword [ebp - 0x1a0]
add ecx, 5
mov dword [ebp - 0x1fc], ecx
jmp 0x404e5b
mov edx, dword [ebp - 0x1a0]
sub edx, dword [ebp - 0x16c]
mov eax, 5
sub eax, edx
mov dword [ebp - 0x1fc], eax
mov ecx, dword [ebp - 0x140]
mov edx, dword [ebp - 0x1fc]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x144]
jae 0x404e92
mov ecx, dword [ebp - 0x144]
sub ecx, dword [ebp - 0x8c]
add ecx, 0x101
mov dword [ebp - 0x1fc], ecx
jmp 0x404eab
mov edx, dword [ebp - 0x8c]
sub edx, dword [ebp - 0x144]
mov eax, 0x101
sub eax, edx
mov dword [ebp - 0x1fc], eax
mov ecx, dword [ebp - 0x140]
mov edx, dword [ebp - 0x1fc]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp - 0x170]
mov dword [eax + 0x38], ecx
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp - 0x178]
mov dword [eax + 0x3c], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xa0], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x14c], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x1b0], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x84], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x3c]
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x404ed8
mov eax, dword [ebp - 0x18c]
cmp dword [eax], 0xb
jne 0x404f41
mov eax, dword [ebp - 0x18c]
mov dword [eax + 0x1bc4], 0xffffffff
jmp 0x406001
mov eax, dword [ebp - 0x18c]
mov dword [eax + 0x1bc4], 0
mov eax, dword [ebp - 0x18c]
mov edx, 1
mov ecx, dword [eax + 0x54]
shl edx, cl
sub edx, 1
and edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x4c]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x10], edx
movzx eax, byte [ebp - 0xf]
cmp eax, dword [ebp - 0xc8]
ja 0x404f89
jmp 0x404fe4
cmp dword [ebp - 0x84], 0
jne 0x404f97
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x404f89
jmp 0x404f56
movzx eax, byte [ebp - 0x10]
test eax, eax
je 0x4050ff
movzx eax, byte [ebp - 0x10]
and eax, 0xf0
jne 0x4050ff
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1a4], eax
movzx eax, word [ebp - 0x1a2]
movzx ecx, byte [ebp - 0x1a3]
movzx edx, byte [ebp - 0x1a4]
add ecx, edx
mov edx, 1
shl edx, cl
sub edx, 1
and edx, dword [ebp - 0x40]
movzx ecx, byte [ebp - 0x1a3]
shr edx, cl
add eax, edx
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ecx + 0x4c]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x10], eax
movzx eax, byte [ebp - 0x1a3]
movzx ecx, byte [ebp - 0xf]
add eax, ecx
cmp eax, dword [ebp - 0xc8]
ja 0x40505d
jmp 0x4050b8
cmp dword [ebp - 0x84], 0
jne 0x40506b
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x40505d
jmp 0x405008
movzx ecx, byte [ebp - 0x1a3]
mov eax, dword [ebp - 0x40]
shr eax, cl
mov dword [ebp - 0x40], eax
movzx eax, byte [ebp - 0x1a3]
mov ecx, dword [ebp - 0xc8]
sub ecx, eax
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x4050b8
movzx eax, byte [ebp - 0x1a3]
mov ecx, dword [ebp - 0x18c]
add eax, dword [ecx + 0x1bc4]
mov edx, dword [ebp - 0x18c]
mov dword [edx + 0x1bc4], eax
movzx ecx, byte [ebp - 0xf]
mov eax, dword [ebp - 0x40]
shr eax, cl
mov dword [ebp - 0x40], eax
movzx eax, byte [ebp - 0xf]
mov ecx, dword [ebp - 0xc8]
sub ecx, eax
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x4050ff
movzx eax, byte [ebp - 0xf]
mov ecx, dword [ebp - 0x18c]
add eax, dword [ecx + 0x1bc4]
mov edx, dword [ebp - 0x18c]
mov dword [edx + 0x1bc4], eax
movzx eax, word [ebp - 0xe]
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x40], eax
movzx eax, byte [ebp - 0x10]
test eax, eax
jne 0x405163
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x19
jmp 0x406001
movzx eax, byte [ebp - 0x10]
and eax, 0x20
je 0x40518d
mov eax, dword [ebp - 0x18c]
mov dword [eax + 0x1bc4], 0xffffffff
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0xb
jmp 0x406001
movzx eax, byte [ebp - 0x10]
and eax, 0x40
je 0x4051b1
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
movzx eax, byte [ebp - 0x10]
and eax, 0xf
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x48], eax
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x15
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 0x48], 0
je 0x4052bd
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0xc8]
cmp ecx, dword [eax + 0x48]
jae 0x405246
cmp dword [ebp - 0x84], 0
jne 0x4051fc
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x4051ee
jmp 0x4051dd
xor eax, eax
jne 0x4051dd
mov eax, dword [ebp - 0x18c]
mov edx, 1
mov ecx, dword [eax + 0x48]
shl edx, cl
sub edx, 1
and edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18c]
add edx, dword [eax + 0x40]
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x40], edx
mov eax, dword [ebp - 0x18c]
mov edx, dword [ebp - 0x40]
mov ecx, dword [eax + 0x48]
shr edx, cl
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0xc8]
sub ecx, dword [eax + 0x48]
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x405272
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x1bc4]
mov edx, dword [ebp - 0x18c]
add ecx, dword [edx + 0x48]
mov eax, dword [ebp - 0x18c]
mov dword [eax + 0x1bc4], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ecx + 0x40]
mov dword [eax + 0x1bc8], edx
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x16
mov eax, dword [ebp - 0x18c]
mov edx, 1
mov ecx, dword [eax + 0x58]
shl edx, cl
sub edx, 1
and edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x50]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x10], edx
movzx eax, byte [ebp - 0xf]
cmp eax, dword [ebp - 0xc8]
ja 0x405311
jmp 0x40536c
cmp dword [ebp - 0x84], 0
jne 0x40531f
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x405311
jmp case.0x40285e.22
movzx eax, byte [ebp - 0x10]
and eax, 0xf0
jne 0x40547b
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1a4], eax
movzx eax, word [ebp - 0x1a2]
movzx ecx, byte [ebp - 0x1a3]
movzx edx, byte [ebp - 0x1a4]
add ecx, edx
mov edx, 1
shl edx, cl
sub edx, 1
and edx, dword [ebp - 0x40]
movzx ecx, byte [ebp - 0x1a3]
shr edx, cl
add eax, edx
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ecx + 0x50]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x10], eax
movzx eax, byte [ebp - 0x1a3]
movzx ecx, byte [ebp - 0xf]
add eax, ecx
cmp eax, dword [ebp - 0xc8]
ja 0x4053d9
jmp 0x405434
cmp dword [ebp - 0x84], 0
jne 0x4053e7
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x4053d9
jmp 0x405384
movzx ecx, byte [ebp - 0x1a3]
mov eax, dword [ebp - 0x40]
shr eax, cl
mov dword [ebp - 0x40], eax
movzx eax, byte [ebp - 0x1a3]
mov ecx, dword [ebp - 0xc8]
sub ecx, eax
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x405434
movzx eax, byte [ebp - 0x1a3]
mov ecx, dword [ebp - 0x18c]
add eax, dword [ecx + 0x1bc4]
mov edx, dword [ebp - 0x18c]
mov dword [edx + 0x1bc4], eax
movzx ecx, byte [ebp - 0xf]
mov eax, dword [ebp - 0x40]
shr eax, cl
mov dword [ebp - 0x40], eax
movzx eax, byte [ebp - 0xf]
mov ecx, dword [ebp - 0xc8]
sub ecx, eax
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x40547b
movzx eax, byte [ebp - 0xf]
mov ecx, dword [ebp - 0x18c]
add eax, dword [ecx + 0x1bc4]
mov edx, dword [ebp - 0x18c]
mov dword [edx + 0x1bc4], eax
movzx eax, byte [ebp - 0x10]
and eax, 0x40
je 0x4054dd
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
movzx eax, word [ebp - 0xe]
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x44], eax
movzx eax, byte [ebp - 0x10]
and eax, 0xf
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x48], eax
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x17
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 0x48], 0
je 0x4055f6
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0xc8]
cmp ecx, dword [eax + 0x48]
jae 0x40557f
cmp dword [ebp - 0x84], 0
jne 0x405535
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x405527
jmp 0x405516
xor eax, eax
jne 0x405516
mov eax, dword [ebp - 0x18c]
mov edx, 1
mov ecx, dword [eax + 0x48]
shl edx, cl
sub edx, 1
and edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18c]
add edx, dword [eax + 0x44]
mov ecx, dword [ebp - 0x18c]
mov dword [ecx + 0x44], edx
mov eax, dword [ebp - 0x18c]
mov edx, dword [ebp - 0x40]
mov ecx, dword [eax + 0x48]
shr edx, cl
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0xc8]
sub ecx, dword [eax + 0x48]
mov dword [ebp - 0xc8], ecx
xor eax, eax
jne 0x4055ab
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x1bc4]
mov edx, dword [ebp - 0x18c]
add ecx, dword [edx + 0x48]
mov eax, dword [ebp - 0x18c]
mov dword [eax + 0x1bc4], ecx
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x18
cmp dword [ebp - 0x14c], 0
jne 0x405610
jmp 0x406006
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x44]
cmp ecx, dword [ebp - 0x168]
jbe 0x40570a
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x44]
sub ecx, dword [ebp - 0x168]
mov dword [ebp - 0x168], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x168]
cmp ecx, dword [eax + 0x2c]
jbe 0x405684
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 0x1bc0], 0
je 0x405684
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x168]
cmp ecx, dword [eax + 0x30]
jbe 0x4056ca
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x168]
sub ecx, dword [eax + 0x30]
mov dword [ebp - 0x168], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x28]
sub ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 0x18c]
add ecx, dword [edx + 0x34]
mov dword [ebp - 0x160], ecx
jmp 0x4056e8
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x30]
sub ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 0x18c]
add ecx, dword [edx + 0x34]
mov dword [ebp - 0x160], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x168]
cmp ecx, dword [eax + 0x40]
jbe 0x405708
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0x168], ecx
jmp 0x40572e
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0xa0]
sub ecx, dword [eax + 0x44]
mov dword [ebp - 0x160], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0x168], ecx
mov eax, dword [ebp - 0x168]
cmp eax, dword [ebp - 0x14c]
jbe 0x405748
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x14c]
sub eax, dword [ebp - 0x168]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x40]
sub ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 0x18c]
mov dword [edx + 0x40], ecx
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x160]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0xa0]
add eax, 1
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0x160]
add ecx, 1
mov dword [ebp - 0x160], ecx
mov eax, dword [ebp - 0x168]
sub eax, 1
mov dword [ebp - 0x168], eax
jne 0x405772
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 0x40], 0
jne 0x4057c9
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x14
jmp 0x406001
cmp dword [ebp - 0x14c], 0
jne 0x4057dc
jmp 0x406006
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x18c]
mov dl, byte [ecx + 0x40]
mov byte [eax], dl
mov eax, dword [ebp - 0xa0]
add eax, 1
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x14c]
sub eax, 1
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x14
jmp 0x406001
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 8], 0
je 0x405fc9
cmp dword [ebp - 0xc8], 0x20
jae 0x40588d
cmp dword [ebp - 0x84], 0
jne 0x405843
jmp 0x406006
mov eax, dword [ebp - 0x84]
sub eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x1b0]
movzx edx, byte [eax]
mov ecx, dword [ebp - 0xc8]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0xc8]
add eax, 8
mov dword [ebp - 0xc8], eax
xor eax, eax
jne 0x405835
jmp 0x40582c
xor eax, eax
jne 0x40582c
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
add ecx, dword [ebp - 0x48]
mov edx, dword [ebp + 8]
mov dword [edx + 0x14], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x1c]
add ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x18c]
mov dword [edx + 0x1c], ecx
cmp dword [ebp - 0x48], 0
je 0x405f53
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xa0]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x44]
shr eax, 0x10
and eax, 0xffff
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x44]
and eax, 0xffff
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x1ac], 1
jne 0x405977
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
cmp dword [ebp - 0x44], 0xfff1
jb 0x405937
mov eax, dword [ebp - 0x44]
sub eax, 0xfff1
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xd4], 0xfff1
jb 0x405963
mov eax, dword [ebp - 0xd4]
sub eax, 0xfff1
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd4]
shl eax, 0x10
or eax, dword [ebp - 0x44]
mov dword [ebp - 0x7c], eax
jmp 0x405f23
cmp dword [ebp - 0x1a8], 0
jne 0x40598c
mov dword [ebp - 0x7c], 1
jmp 0x405f23
cmp dword [ebp - 0x1ac], 0x10
jae 0x405a1e
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x1ac]
sub ecx, 1
mov dword [ebp - 0x1ac], ecx
test eax, eax
je 0x4059e1
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x1a8]
add edx, 1
mov dword [ebp - 0x1a8], edx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
jmp 0x405999
cmp dword [ebp - 0x44], 0xfff1
jb 0x4059f5
mov eax, dword [ebp - 0x44]
sub eax, 0xfff1
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xd4]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0xd4], edx
mov eax, dword [ebp - 0xd4]
shl eax, 0x10
or eax, dword [ebp - 0x44]
mov dword [ebp - 0x7c], eax
jmp 0x405f23
cmp dword [ebp - 0x1ac], 0x15b0
jb 0x405c7c
mov eax, dword [ebp - 0x1ac]
sub eax, 0x15b0
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x24], 0x15b
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 1]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 2]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 3]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 4]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 5]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 6]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 7]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 8]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 9]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 0xa]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 0xb]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 0xc]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 0xd]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 0xe]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 0xf]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
add eax, 0x10
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x24]
sub eax, 1
mov dword [ebp - 0x24], eax
jne 0x405a46
mov eax, dword [ebp - 0x44]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0xd4]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0xd4], edx
jmp 0x405a1e
cmp dword [ebp - 0x1ac], 0
je 0x405f14
cmp dword [ebp - 0x1ac], 0x10
jb 0x405ea8
mov eax, dword [ebp - 0x1ac]
sub eax, 0x10
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 1]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 2]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 3]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 4]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 5]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 6]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 7]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 8]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 9]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 0xa]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 0xb]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 0xc]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 0xd]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 0xe]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax + 0xf]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1a8]
add eax, 0x10
mov dword [ebp - 0x1a8], eax
jmp 0x405c89
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x1ac]
sub ecx, 1
mov dword [ebp - 0x1ac], ecx
test eax, eax
je 0x405ef0
mov eax, dword [ebp - 0x1a8]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x1a8]
add edx, 1
mov dword [ebp - 0x1a8], edx
mov eax, dword [ebp - 0xd4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0xd4], eax
jmp 0x405ea8
mov eax, dword [ebp - 0x44]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0xd4]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0xd4], edx
mov eax, dword [ebp - 0xd4]
shl eax, 0x10
or eax, dword [ebp - 0x44]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x94]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x94]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x40]
shr eax, 0x18
and eax, 0xff
mov ecx, dword [ebp - 0x40]
shr ecx, 8
and ecx, 0xff00
add eax, ecx
mov edx, dword [ebp - 0x40]
and edx, 0xff00
shl edx, 8
add eax, edx
mov ecx, dword [ebp - 0x40]
and ecx, 0xff
shl ecx, 0x18
add eax, ecx
mov edx, dword [ebp - 0x18c]
cmp eax, dword [edx + 0x18]
je 0x405fb4
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0x40b000
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1d
jmp 0x406001
mov dword [ebp - 0x40], 0
mov dword [ebp - 0xc8], 0
xor eax, eax
jne 0x405fb4
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1c
mov dword [ebp - 0x174], 1
jmp 0x406006
mov dword [ebp - 0x174], 0xfffffffd
jmp 0x406006
mov eax, 0xfffffffc
jmp 0x406cb2
mov eax, 0xfffffffe
jmp 0x406cb2
jmp 0x40283d
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xa0]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x14c]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1b0]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x84]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x40]
mov dword [eax + 0x38], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x3c], ecx
xor eax, eax
jne 0x406006
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 0x28], 0
jne 0x40607e
mov eax, dword [ebp - 0x18c]
cmp dword [eax], 0x1a
jge 0x4063b1
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [eax + 0x10]
je 0x4063b1
mov eax, dword [ebp + 8]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x58], ecx
mov eax, dword [ebp - 0x58]
cmp dword [eax + 0x34], 0
jne 0x4060f7
mov eax, dword [ebp - 0x58]
mov edx, 1
mov ecx, dword [eax + 0x24]
shl edx, cl
mov dword [ebp - 0x80], edx
push 0x40
push 0x1000
mov eax, dword [ebp - 0x80]
push eax
push 0
call sub.KERNEL32.dll_VirtualAlloc
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xc]
mov dword [eax + 0x34], ecx
mov eax, dword [ebp - 0x58]
cmp dword [eax + 0x34], 0
jne 0x4060f7
mov dword [ebp - 0x90], 1
jmp 0x406386
mov eax, dword [ebp - 0x58]
cmp dword [eax + 0x28], 0
jne 0x406127
mov eax, dword [ebp - 0x58]
mov edx, 1
mov ecx, dword [eax + 0x24]
shl edx, cl
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x28], edx
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x30], 0
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x2c], 0
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x114]
sub ecx, dword [eax + 0x10]
mov dword [ebp - 0x1b8], ecx
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x1b8]
cmp ecx, dword [eax + 0x28]
jb 0x4061f7
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x58]
mov edx, dword [eax + 0xc]
sub edx, dword [ecx + 0x28]
mov dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0xb4], ecx
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb4]
sub ecx, 1
mov dword [ebp - 0xb4], ecx
test eax, eax
jbe 0x4061dc
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x138]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0xcc]
add eax, 1
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0x138]
add ecx, 1
mov dword [ebp - 0x138], ecx
jmp 0x406193
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x30], 0
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x58]
mov edx, dword [ecx + 0x28]
mov dword [eax + 0x2c], edx
jmp 0x40637c
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x58]
mov edx, dword [eax + 0x28]
sub edx, dword [ecx + 0x30]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x1b8]
jbe 0x40621a
mov eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 0x34]
mov edx, dword [ebp - 0x58]
add ecx, dword [edx + 0x30]
mov dword [ebp - 0x11c], ecx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0xc]
sub ecx, dword [ebp - 0x1b8]
mov dword [ebp - 0x120], ecx
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
jbe 0x406293
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x134]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x60]
add eax, 1
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x134]
add ecx, 1
mov dword [ebp - 0x134], ecx
jmp 0x40625c
mov eax, dword [ebp - 0x1b8]
sub eax, dword [ebp - 0x5c]
mov dword [ebp - 0x1b8], eax
je 0x406338
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0xc0], ecx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0xc]
sub ecx, dword [ebp - 0x1b8]
mov dword [ebp - 0x154], ecx
mov eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
sub ecx, 1
mov dword [ebp - 0x34], ecx
test eax, eax
jbe 0x40631e
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x14]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x118]
add eax, 1
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
jmp 0x4062e7
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x1b8]
mov dword [eax + 0x30], ecx
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x58]
mov edx, dword [ecx + 0x28]
mov dword [eax + 0x2c], edx
jmp 0x40637c
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 0x30]
add ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [edx + 0x30], ecx
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x58]
mov edx, dword [eax + 0x30]
cmp edx, dword [ecx + 0x28]
jne 0x40635f
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x30], 0
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x58]
mov edx, dword [eax + 0x2c]
cmp edx, dword [ecx + 0x28]
jae 0x40637c
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [edx + 0x2c], ecx
mov dword [ebp - 0x90], 0
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
je 0x4063b1
mov eax, dword [ebp - 0x18c]
mov dword [eax], 0x1e
mov eax, 0xfffffffc
jmp 0x406cb2
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
sub ecx, dword [eax + 4]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x48]
sub ecx, dword [eax + 0x10]
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
add ecx, dword [ebp - 0x28]
mov edx, dword [ebp + 8]
mov dword [edx + 8], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
add ecx, dword [ebp - 0x48]
mov edx, dword [ebp + 8]
mov dword [edx + 0x14], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x1c]
add ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x18c]
mov dword [edx + 0x1c], ecx
mov eax, dword [ebp - 0x18c]
cmp dword [eax + 8], 0
je 0x406c1b
cmp dword [ebp - 0x48], 0
je 0x406c1b
mov eax, dword [ebp - 0x18c]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
sub ecx, dword [ebp - 0x48]
mov dword [ebp - 0x190], ecx
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x150]
shr eax, 0x10
and eax, 0xffff
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x150]
and eax, 0xffff
mov dword [ebp - 0x150], eax
cmp dword [ebp - 0x194], 1
jne 0x4064e6
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
cmp dword [ebp - 0x150], 0xfff1
jb 0x40649d
mov eax, dword [ebp - 0x150]
sub eax, 0xfff1
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0xfff1
jb 0x4064cc
mov eax, dword [ebp - 0xd0]
sub eax, 0xfff1
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xd0]
shl eax, 0x10
or eax, dword [ebp - 0x150]
mov dword [ebp - 0xb8], eax
jmp 0x406bf1
cmp dword [ebp - 0x190], 0
jne 0x4064fe
mov dword [ebp - 0xb8], 1
jmp 0x406bf1
cmp dword [ebp - 0x194], 0x10
jae 0x4065a8
mov eax, dword [ebp - 0x194]
mov ecx, dword [ebp - 0x194]
sub ecx, 1
mov dword [ebp - 0x194], ecx
test eax, eax
je 0x40655c
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x190]
add edx, 1
mov dword [ebp - 0x190], edx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
jmp 0x40650b
cmp dword [ebp - 0x150], 0xfff1
jb 0x406579
mov eax, dword [ebp - 0x150]
sub eax, 0xfff1
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0xd0]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
shl eax, 0x10
or eax, dword [ebp - 0x150]
mov dword [ebp - 0xb8], eax
jmp 0x406bf1
cmp dword [ebp - 0x194], 0x15b0
jb 0x4068a5
mov eax, dword [ebp - 0x194]
sub eax, 0x15b0
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x98], 0x15b
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 1]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 2]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 3]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 4]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 5]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 6]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 7]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 8]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 9]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 0xa]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 0xb]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 0xc]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 0xd]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 0xe]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 0xf]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
add eax, 0x10
mov dword [ebp - 0x190], eax
mov eax, dword [ebp - 0x98]
sub eax, 1
mov dword [ebp - 0x98], eax
jne 0x4065d3
mov eax, dword [ebp - 0x150]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0xd0]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0xd0], edx
jmp 0x4065a8
cmp dword [ebp - 0x194], 0
je 0x406bdc
cmp dword [ebp - 0x194], 0x10
jb 0x406b61
mov eax, dword [ebp - 0x194]
sub eax, 0x10
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 1]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 2]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 3]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 4]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 5]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 6]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 7]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 8]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 9]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 0xa]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 0xb]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 0xc]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 0xd]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 0xe]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax + 0xf]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x190]
add eax, 0x10
mov dword [ebp - 0x190], eax
jmp 0x4068b2
mov eax, dword [ebp - 0x194]
mov ecx, dword [ebp - 0x194]
sub ecx, 1
mov dword [ebp - 0x194], ecx
test eax, eax
je 0x406bb2
mov eax, dword [ebp - 0x190]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x150]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x190]
add edx, 1
mov dword [ebp - 0x190], edx
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x150]
mov dword [ebp - 0xd0], eax
jmp 0x406b61
mov eax, dword [ebp - 0x150]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 0xd0]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
shl eax, 0x10
or eax, dword [ebp - 0x150]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x1b4], eax
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x64]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x64]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 0x18c]
cmp dword [eax], 0x13
je 0x406c3d
mov ecx, dword [ebp - 0x18c]
cmp dword [ecx], 0xe
je 0x406c3d
mov dword [ebp - 0x1fc], 0
jmp 0x406c47
mov dword [ebp - 0x1fc], 0x100
mov edx, dword [ebp - 0x18c]
mov eax, dword [edx + 4]
neg eax
sbb eax, eax
and eax, 0x40
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ecx + 0x3c]
add edx, eax
mov eax, dword [ebp - 0x18c]
xor ecx, ecx
cmp dword [eax], 0xb
setne cl
sub ecx, 1
and ecx, 0x80
add edx, dword [ebp - 0x1fc]
add ecx, edx
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], ecx
cmp dword [ebp - 0x28], 0
jne 0x406c93
cmp dword [ebp - 0x48], 0
je 0x406c99
cmp dword [ebp + 0xc], 4
jne 0x406cac
cmp dword [ebp - 0x174], 0
jne 0x406cac
mov dword [ebp - 0x174], 0xfffffffb
mov eax, dword [ebp - 0x174]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8