Function at 0x40e550
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf0
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
cmp byte [esi + 8], 0
je 0x40e5d0
mov eax, dword [esi + 0x28]
test eax, eax
je 0x40e57e
mov dword [eax], 0
mov eax, dword [esi + 0x28]
mov dword [eax + 4], 0
jmp 0x40e5cc
mov edx, dword [ebp + 8]
xor ecx, ecx
cmp dword [edx + 0x95c78], esi
lea eax, [edx + 0x95c78]
je 0x40e599
lea eax, [eax + 4]
inc ecx
cmp dword [eax], esi
jne 0x40e591
mov eax, dword [edx + 0x95c74]
dec eax
mov dword [edx + 0x95c74], eax
sub eax, ecx
test eax, eax
jle 0x40e5cc
shl eax, 2
push eax
lea eax, [edx + 0x95c7c]
add edx, 0x95c78
lea eax, [eax + ecx*4]
push eax
lea eax, [edx + ecx*4]
push eax
call fcn.00497240
add esp, 0xc
mov byte [esi + 8], 0
mov edi, dword [ebp + 0x1c]
mov eax, edi
sub eax, 1
je 0x40e5f9
sub eax, 1
je 0x40e5f2
sub eax, 1
je 0x40e5eb
mov ebx, 1
jmp 0x40e5fe
mov ebx, 0x10
jmp 0x40e5fe
mov ebx, 8
jmp 0x40e5fe
mov ebx, 4
mov eax, dword [ebp + 0x10]
mov dword [esi], eax
mov eax, dword [ebp + 0x14]
mov dword [esi + 4], eax
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov esi, dword [ebp + 8]
mov dword [ebp - 0x44], ebx
mov ecx, dword [esi + 0x99c6c]
test ecx, ecx
je 0x40e69f
xor edx, edx
test ecx, ecx
je 0x40e645
mov eax, dword [esi + 0x96c8c]
mov edi, dword [ebp + 0x10]
cmp dword [eax], edi
je 0x40e642
inc edx
add eax, 0x10
cmp edx, ecx
jb 0x40e636
mov edi, dword [ebp + 0x1c]
cmp edx, ecx
je 0x40e69f
mov ecx, dword [ebp + 0xc]
mov eax, edx
shl eax, 4
add eax, dword [esi + 0x96c8c]
mov dword [ecx + 0x20], eax
cmp edx, dword [esi + 0x99c6c]
jae 0x40e69f
mov edi, esi
mov ebx, ecx
nop word [eax + eax]
mov esi, dword [ebx + 0x24]
mov eax, dword [edi + 0x96c8c]
mov ebx, dword [ebp + 0x10]
lea ecx, [esi + edx]
add ecx, ecx
cmp dword [eax + ecx*8], ebx
mov ebx, dword [ebp + 0xc]
jne 0x40e699
lea eax, [esi + 1]
mov dword [ebx + 0x24], eax
add eax, edx
cmp eax, dword [edi + 0x99c6c]
jb 0x40e670
mov ebx, dword [ebp - 0x44]
mov edi, dword [ebp + 0x1c]
cmp dword [ebp + 0x18], 0
je 0x40e6b9
mov esi, dword [ebp + 0xc]
xor eax, eax
mov dword [esi + 0xa], eax
mov eax, ebx
shr eax, 2
add eax, dword [ebp + 0x38]
xor edx, edx
jmp 0x40e6d2
mov esi, dword [ebp + 0x20]
xor edx, edx
test esi, esi
mov esi, dword [ebp + 0xc]
jne 0x40e706
xor eax, eax
mov dword [esi + 0xa], eax
mov eax, ebx
shr eax, 2
add eax, dword [ebp + 0x38]
div ebx
mov edi, dword [ebp + 8]
movzx ecx, ax
xor eax, eax
mov word [esi + 0xe], cx
mov dword [esi + 0x10], eax
test byte [edi + 0x99ca8], 1
je 0x40fb8f
mov ax, word [edi + 0x99cac]
add ax, ax
add ax, cx
mov word [esi + 0xe], ax
jmp 0x40fb8f
mov eax, dword [ebp + 0x30]
mov ecx, ebx
shr ecx, 2
add eax, ecx
div ebx
xor edx, edx
mov word [esi + 0xa], ax
mov eax, dword [ebp + 0x24]
dec eax
add eax, ebx
div ebx
xor edx, edx
mov word [esi + 0x10], ax
mov eax, dword [ebp + 0x38]
add eax, ecx
mov ecx, dword [ebp + 0x28]
div ebx
xor edx, edx
mov word [esi + 0xe], ax
mov eax, dword [ebp + 0x34]
div ebx
add ecx, edx
mov word [esi + 0xc], ax
mov dword [ebp - 0xc], edx
xor edx, edx
mov dword [ebp + 0x18], ecx
lea eax, [ecx - 1]
mov ecx, dword [ebp + 8]
add eax, ebx
div ebx
mov word [esi + 0x12], ax
mov eax, dword [ecx + 0x99ca8]
and eax, 1
je 0x40e778
mov ecx, dword [ecx + 0x99cac]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x6c], ecx
add ecx, ecx
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp + 8]
jmp 0x40e78d
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x58], 0
mov esi, dword [esi + 0x18]
movzx edx, word [ecx + 0x99c62]
imul esi, edx
mov dword [ebp - 0x68], esi
mov esi, dword [ebp + 0xc]
mov esi, dword [esi + 0x1c]
imul esi, edx
cmp dword [ecx + 0x9a58c], 0
mov dword [ebp - 0x70], esi
jne 0x40e7dd
mov ecx, dword [ecx + 0x96c84]
mov eax, ecx
imul eax, edx
imul ecx, esi
push eax
mov eax, dword [ebp + 8]
push 0
add ecx, dword [eax + 0x96c80]
push ecx
call fcn.00497290
mov ecx, dword [ebp + 8]
add esp, 0xc
jmp 0x40e8a0
cmp byte [ecx + 0x9a125], 8
je 0x40e858
cmp dword [ecx + 0x9a564], 0
jne 0x40e858
test eax, eax
jne 0x40e858
mov esi, dword [ebp - 0x68]
lea edi, [ecx + 0x9a120]
push eax
push 0xff
push 0xff
push 0xff
push edx
push edx
push dword [ebp - 0x70]
push esi
push edi
call fcn.00447c80
mov ecx, dword [ebp + 8]
add esp, 0x24
test byte [ecx + 0x99ca8], 1
je 0x40e89d
movzx eax, word [ecx + 0x99c62]
push 0
push 0xff
push 0xff
push 0xff
push eax
push eax
mov eax, dword [ecx + 0x9a0f0]
push dword [ebp - 0x70]
add eax, esi
push eax
push edi
call fcn.00447c80
add esp, 0x24
jmp 0x40e89a
mov esi, dword [ebp - 0x68]
lea edi, [ecx + 0x9a120]
push edx
push edx
push dword [ebp - 0x70]
push esi
push edi
call fcn.004403f0
mov ecx, dword [ebp + 8]
add esp, 0x14
test byte [ecx + 0x99ca8], 1
je 0x40e89d
movzx eax, word [ecx + 0x99c62]
push eax
push eax
mov eax, dword [ecx + 0x9a0f0]
push dword [ebp - 0x70]
add eax, esi
push eax
push edi
call fcn.004403f0
add esp, 0x14
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 0x1c]
mov eax, dword [ecx + 0x9a58c]
mov esi, dword [ebp + 0x20]
cmp eax, 1
jne 0x40e8b4
inc dword [ebp - 0x68]
inc dword [ebp - 0x70]
cmp edi, 4
je 0x40f8cd
test eax, eax
jne 0x40e8d3
cmp edi, 7
je 0x40f8cd
cmp edi, 8
je 0x40f8cd
cmp ebx, 1
jbe 0x40f8bf
mov eax, dword [ebp + 0xc]
xor edx, edx
movzx ecx, word [eax + 0x10]
mov eax, dword [ebp + 0x18]
inc ecx
div ebx
and ecx, 0xfffffffe
mov dword [ebp + 0x18], eax
mov edi, ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], ecx
lea ebx, [ecx + 4]
shr edi, 1
mov dword [ebp - 0x64], edx
mov esi, dword [eax + 0x9a0fc]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], ebx
movzx ecx, word [eax + 0x12]
add ecx, 2
imul ecx, ebx
push ecx
push 0
push esi
call fcn.00497290
mov eax, dword [ebp + 0x2c]
lea edx, [ebx + esi]
mov ecx, dword [ebp - 0xc]
mov esi, edx
mov ebx, dword [ebp + 0x20]
add esp, 0xc
imul ecx, eax
mov dword [ebp - 0x20], edx
lea edx, [eax*8]
mov dword [ebp - 0x60], edx
lea edx, [eax + eax*8]
mov dword [ebp - 0x8c], edx
lea edx, [eax + eax*4]
add edx, edx
mov dword [ebp - 0x10], esi
sub ebx, ecx
mov dword [ebp - 8], edx
mov ecx, dword [ebp - 0x44]
imul ecx, eax
imul edx, eax, 0xb
mov dword [ebp + 0x20], ebx
mov dword [ebp - 0x28], ecx
lea ecx, [eax + eax]
mov dword [ebp - 0x34], ecx
lea ecx, [eax + eax*2]
mov dword [ebp - 4], edx
lea edx, [eax + eax*2]
mov dword [ebp - 0x54], ecx
lea ecx, [eax*4]
shl edx, 2
mov dword [ebp - 0x38], ecx
lea ecx, [eax + eax*4]
mov dword [ebp - 0x24], edx
imul edx, eax, 0xd
mov dword [ebp - 0x3c], ecx
lea ecx, [eax + eax*2]
add ecx, ecx
mov dword [ebp - 0x4c], ecx
lea ecx, [eax*8]
sub ecx, eax
mov dword [ebp - 0x78], edx
lea edx, [eax*8]
sub edx, eax
mov dword [ebp - 0x2c], ecx
shl eax, 4
add edx, edx
sub eax, dword [ebp + 0x2c]
cmp dword [ebp - 0x44], 4
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0xc], eax
je 0x40f5e4
mov edi, dword [ebp - 0x44]
cmp edi, 8
je 0x40f2d4
cmp edi, 0x10
jne 0x40f8b4
mov edi, dword [ebp + 8]
cmp dword [edi + 0x9a58c], 0
je 0x40ee67
cmp dword [edi + 0x9a560], 0x10
je 0x40ee67
cmp dword [ebp + 0x18], 0
mov edi, dword [ebp - 0x18]
mov dword [ebp + 0x1c], 8
jbe 0x40edf4
nop
mov dword [ebp - 0x40], 0
test edi, edi
je 0x40ede1
lea edi, [edx + ebx]
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0xc0], edi
lea edi, [ebx + 1]
mov ebx, dword [ebp + 0x2c]
add edi, eax
sub ebx, eax
sub dword [ebp - 0x10], eax
mov dword [ebp - 0x5c], ebx
mov ebx, edx
sub ebx, eax
mov dword [ebp - 0xac], edi
mov dword [ebp - 0x74], ebx
mov ebx, dword [ebp - 0x78]
sub ebx, eax
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x84], ebx
mov ebx, dword [ebp - 0x24]
sub ebx, eax
mov dword [ebp - 0x7c], ebx
mov ebx, dword [ebp - 4]
sub ebx, eax
mov dword [ebp - 0x80], ebx
mov ebx, dword [ebp - 8]
sub ebx, eax
mov dword [ebp - 0x88], ebx
mov ebx, dword [ebp - 0x8c]
sub ebx, eax
mov dword [ebp - 0xbc], ebx
mov ebx, dword [ebp - 0x60]
sub ebx, eax
mov dword [ebp - 0xb8], ebx
mov ebx, ecx
sub ebx, eax
sub ecx, edx
mov dword [ebp - 0xb4], ebx
mov ebx, edi
sub ebx, eax
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xb0], ebx
sub edi, edx
mov ebx, dword [ebp - 0x3c]
sub ebx, eax
mov dword [ebp - 0xd4], edi
mov dword [ebp - 0xc8], ebx
mov ebx, dword [ebp - 0x38]
sub ebx, eax
mov dword [ebp - 0xa8], ebx
mov ebx, dword [ebp - 0x54]
sub ebx, eax
mov dword [ebp - 0xa4], ebx
mov ebx, dword [ebp - 0x34]
mov dword [ebp - 0x44], ebx
sub dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x2c]
sub eax, edx
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x78]
sub eax, edx
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x24]
sub eax, edx
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 8]
sub eax, edx
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x8c]
sub eax, edx
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x60]
sub eax, edx
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x3c]
sub eax, edx
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x38]
sub eax, edx
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x54]
mov ecx, 1
mov edi, dword [ebp - 0x18]
sub eax, edx
mov dword [ebp - 0xc4], eax
mov eax, ebx
mov ebx, dword [ebp - 0xc0]
sub eax, edx
sub ecx, edx
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0x50], ecx
nop dword [eax]
movzx eax, byte [ebx + eax]
movzx ecx, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0xc4]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xcc]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xd0]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xd4]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xd8]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xdc]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xe0]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x90]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x94]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x98]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x9c]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xa0]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x44]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xa4]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xa8]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xc8]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xb0]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xb4]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xb8]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
lea edx, [edx + 2]
mov eax, dword [ebp - 0xbc]
lea ebx, [ebx + 2]
movzx eax, byte [edx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x88]
movzx eax, byte [edx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [edx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x7c]
movzx eax, byte [edx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x84]
movzx eax, byte [edx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x74]
movzx eax, byte [edx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x5c]
movzx eax, byte [edx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x50]
movzx eax, byte [ebx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
movzx eax, byte [edx - 3]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
movzx eax, byte [edx - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
movzx eax, byte [ebx - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
cmp ecx, 0x100
movzx eax, cl
mov ecx, 0xff
cmove eax, ecx
mov ecx, dword [ebp - 0x40]
mov byte [ecx + esi], al
inc ecx
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x40], ecx
cmp ecx, edi
jb 0x40eb70
mov ebx, dword [ebp + 0x20]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
add ebx, dword [ebp - 0x28]
add esi, dword [ebp - 0x14]
sub dword [ebp + 0x18], 1
mov dword [ebp + 0x20], ebx
jne 0x40ea10
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x40f8b4
mov eax, dword [ebp + 0x2c]
xor edx, edx
test edi, edi
je 0x40ee52
nop dword [eax + eax]
movzx eax, byte [ebx + edx*2 + 1]
movzx ecx, byte [eax + 0x93eb64]
movzx eax, byte [ebx + edx*2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov al, byte [edx + esi]
mov byte [ebp + 0x1b], al
movzx eax, al
add eax, ecx
cmp eax, 0x100
jl 0x40ee41
mov byte [edx + esi], 0xff
jmp 0x40ee47
add cl, byte [ebp + 0x1b]
mov byte [edx + esi], cl
inc edx
cmp edx, edi
jb 0x40ee10
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp - 0x64]
add ebx, eax
sub ecx, 1
mov dword [ebp - 0x64], ecx
jne 0x40ee02
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp + 8]
jmp 0x40fa79
cmp dword [ebp + 0x18], 0
mov edi, dword [ebp - 0x18]
mov dword [ebp + 0x1c], 6
jbe 0x40f26a
nop dword [eax + eax]
mov dword [ebp - 0x40], 0
test edi, edi
je 0x40f257
lea edi, [edx + ebx]
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x50], edi
lea edi, [ebx + 1]
mov ebx, dword [ebp + 0x2c]
add edi, eax
sub ebx, eax
sub dword [ebp - 0x10], eax
mov dword [ebp - 0xa4], ebx
mov ebx, edx
sub ebx, eax
mov dword [ebp - 0x48], edi
mov dword [ebp - 0xa8], ebx
mov ebx, dword [ebp - 0x78]
sub ebx, eax
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0xc8], ebx
mov ebx, dword [ebp - 0x24]
sub ebx, eax
mov dword [ebp - 0xb0], ebx
mov ebx, dword [ebp - 4]
sub ebx, eax
mov dword [ebp - 0xb4], ebx
mov ebx, dword [ebp - 8]
sub ebx, eax
mov dword [ebp - 0xb8], ebx
mov ebx, dword [ebp - 0x8c]
sub ebx, eax
mov dword [ebp - 0xbc], ebx
mov ebx, dword [ebp - 0x60]
sub ebx, eax
mov dword [ebp - 0x88], ebx
mov ebx, ecx
sub ebx, eax
mov dword [ebp - 0x80], ebx
mov ebx, edi
sub ebx, eax
sub edi, edx
mov dword [ebp - 0x7c], ebx
mov ebx, dword [ebp - 0x3c]
sub ebx, eax
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0x84], ebx
mov ebx, dword [ebp - 0x38]
sub ebx, eax
mov dword [ebp - 0x74], ebx
mov ebx, dword [ebp - 0x54]
sub ebx, eax
mov dword [ebp - 0x5c], ebx
mov ebx, dword [ebp - 0x34]
mov dword [ebp - 0x44], ebx
sub dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x2c]
sub eax, edx
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x78]
sub eax, edx
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x24]
sub eax, edx
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 8]
sub eax, edx
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x8c]
sub eax, edx
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x60]
sub eax, edx
mov dword [ebp - 0xd8], eax
mov eax, ecx
sub eax, edx
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x3c]
sub eax, edx
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x38]
sub eax, edx
mov edi, dword [ebp - 0x18]
sub ebx, edx
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x54]
sub eax, edx
mov dword [ebp - 0x9c], ebx
mov ebx, dword [ebp - 0x50]
mov dword [ebp - 0x98], eax
mov eax, 1
sub eax, edx
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0xa0], eax
nop word [eax + eax]
mov eax, dword [ebp - 0x10]
movzx eax, byte [edx + eax]
movzx ecx, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x44]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x5c]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x74]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x84]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x7c]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x88]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xbc]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xb8]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xb4]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xb0]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xc8]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xa8]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xa4]
movzx eax, byte [edx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xa0]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x9c]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x98]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x94]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x90]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xe0]
movzx eax, byte [ebx + eax]
movzx eax, byte [eax + 0x93eb64]
lea edx, [edx + 2]
add ecx, eax
lea ebx, [ebx + 2]
mov eax, dword [ebp - 0xdc]
movzx eax, byte [ebx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xd8]
movzx eax, byte [ebx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xd4]
movzx eax, byte [ebx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xd0]
movzx eax, byte [ebx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xcc]
movzx eax, byte [ebx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xc4]
movzx eax, byte [ebx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xc0]
movzx eax, byte [ebx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0xac]
movzx eax, byte [ebx + eax - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
movzx eax, byte [edx - 3]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
movzx eax, byte [ebx - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
movzx eax, byte [edx - 2]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
cmp ecx, 0x100
movzx eax, cl
mov ecx, 0xff
cmove eax, ecx
mov ecx, dword [ebp - 0x40]
mov byte [ecx + esi], al
inc ecx
mov dword [ebp - 0x40], ecx
cmp ecx, edi
jb 0x40efe0
mov ebx, dword [ebp + 0x20]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
add ebx, dword [ebp - 0x28]
add esi, dword [ebp - 0x14]
sub dword [ebp + 0x18], 1
mov dword [ebp + 0x20], ebx
jne 0x40ee80
mov edx, dword [ebp - 0x64]
test edx, edx
je 0x40f8b4
mov eax, dword [ebp + 0x2c]
sub ebx, esi
nop word [eax + eax]
test edi, edi
je 0x40f2ab
mov ecx, esi
mov dword [ebp + 0x18], edi
nop dword [eax]
movzx eax, byte [ebx + ecx]
lea ecx, [ecx + 1]
mov al, byte [eax + 0x93eb64]
add byte [ecx - 1], al
sub edi, 1
jne 0x40f290
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp + 0x2c]
add ebx, eax
sub edx, 1
jne 0x40f280
xor eax, eax
test edi, edi
je 0x40f8b4
nop dword [eax]
shr byte [eax + esi], 2
inc eax
cmp eax, edi
jb 0x40f2c0
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp + 8]
jmp 0x40fa79
mov eax, dword [ebp + 8]
cmp dword [eax + 0x9a58c], 0
je 0x40f44d
cmp dword [eax + 0x9a560], 0x10
je 0x40f44d
mov edx, dword [ebp + 0x18]
mov dword [ebp + 0x1c], 7
test edx, edx
je 0x40f405
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x28]
nop dword [eax]
test eax, eax
je 0x40f3ee
mov edx, dword [ebp + 0x2c]
lea edi, [ecx + ebx]
mov eax, dword [ebp - 0x34]
sub edx, ecx
mov dword [ebp - 0x84], edx
mov edx, dword [ebp - 0x4c]
sub edx, ecx
mov dword [ebp - 0x60], eax
sub dword [ebp - 0x60], ecx
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x3c]
sub edx, ecx
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x5c], edx
mov edx, dword [ebp - 0x38]
sub edx, ecx
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x54]
sub edx, ecx
sub ebx, esi
mov dword [ebp - 0x7c], ebx
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x80], edx
nop word [eax + eax]
movzx ecx, byte [edx + edi]
lea edi, [edi + 1]
mov eax, dword [ebp - 0x60]
lea esi, [esi + 1]
movzx eax, byte [eax + edi - 1]
mov dl, byte [eax + 0x93eb64]
add dl, byte [ecx + 0x93eb64]
mov eax, dword [ebp - 0x50]
movzx eax, byte [eax + edi - 1]
add dl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x5c]
movzx eax, byte [eax + edi - 1]
add dl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x74]
movzx eax, byte [eax + edi - 1]
add dl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x84]
movzx eax, byte [eax + edi - 1]
add dl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x7c]
movzx eax, byte [esi + eax - 1]
add dl, byte [eax + 0x93eb64]
movzx eax, byte [edi - 1]
add dl, byte [eax + 0x93eb64]
mov byte [esi - 1], dl
mov edx, dword [ebp - 0x80]
sub ebx, 1
jne 0x40f360
mov ebx, dword [ebp + 0x20]
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x28]
add esi, dword [ebp - 0x14]
add ebx, edi
sub edx, 1
mov dword [ebp + 0x20], ebx
mov dword [ebp - 0x10], esi
mov dword [ebp + 0x18], edx
jne 0x40f310
mov edx, dword [ebp - 0x64]
test edx, edx
je 0x40f8b4
mov eax, dword [ebp - 0x18]
sub ebx, esi
mov ecx, dword [ebp + 0x2c]
test eax, eax
je 0x40f43b
mov ecx, esi
mov edi, eax
movzx eax, byte [ebx + ecx]
lea ecx, [ecx + 1]
mov al, byte [eax + 0x93eb64]
add byte [ecx - 1], al
sub edi, 1
jne 0x40f420
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x2c]
add ebx, ecx
sub edx, 1
jne 0x40f418
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp + 8]
jmp 0x40fa79
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp - 0x18]
mov dword [ebp + 0x1c], 6
test eax, eax
je 0x40f582
mov edx, dword [ebp - 0x28]
test edi, edi
je 0x40f56b
mov eax, dword [ebp + 0x2c]
lea edx, [ecx + ebx]
sub eax, ecx
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x4c]
sub eax, ecx
mov edi, dword [ebp - 0x48]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x3c]
sub eax, ecx
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x38]
sub eax, ecx
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x54]
sub eax, ecx
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x34]
sub eax, ecx
mov dword [ebp - 0x5c], eax
mov eax, ebx
mov ebx, dword [ebp - 0x50]
sub eax, esi
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x88], eax
nop dword [eax]
movzx eax, byte [edi + eax]
lea edx, [edx + 1]
lea edi, [edi + 1]
movzx ecx, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x5c]
movzx eax, byte [edx + eax - 1]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x74]
movzx eax, byte [edx + eax - 1]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x84]
movzx eax, byte [edx + eax - 1]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x7c]
movzx eax, byte [edx + eax - 1]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [edx + eax - 1]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
movzx eax, byte [edx + ebx - 1]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
movzx eax, byte [edx - 1]
movzx eax, byte [eax + 0x93eb64]
add ecx, eax
mov eax, dword [ebp - 0x88]
shr ecx, 2
mov byte [edi - 1], cl
sub esi, 1
jne 0x40f4c0
mov ebx, dword [ebp + 0x20]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp - 0x28]
add esi, dword [ebp - 0x14]
add ebx, edx
sub eax, 1
mov dword [ebp + 0x20], ebx
mov dword [ebp - 0x10], esi
mov dword [ebp + 0x18], eax
jne 0x40f465
mov edx, dword [ebp - 0x64]
test edx, edx
je 0x40f8b4
mov eax, dword [ebp + 0x2c]
sub ebx, esi
test edi, edi
je 0x40f5bb
mov ecx, esi
mov dword [ebp + 0x18], edi
nop dword [eax + eax]
movzx eax, byte [ebx + ecx]
lea ecx, [ecx + 1]
mov al, byte [eax + 0x93eb64]
add byte [ecx - 1], al
sub edi, 1
jne 0x40f5a0
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp + 0x2c]
add ebx, eax
sub edx, 1
jne 0x40f592
xor eax, eax
test edi, edi
je 0x40f8b4
nop dword [eax]
shr byte [eax + esi], 2
inc eax
cmp eax, edi
jb 0x40f5d0
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp + 8]
jmp 0x40fa79
mov eax, dword [ebp + 8]
cmp dword [eax + 0x9a58c], 0
je 0x40f765
cmp dword [eax + 0x9a560], 0x10
je 0x40f765
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x1c], 7
test eax, eax
je 0x40f706
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x14]
nop dword [eax]
mov dword [ebp - 0x44], 0
test edi, edi
je 0x40f6f6
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp + 0x2c]
sub ecx, eax
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x34]
lea edx, [eax + ebx]
sub ecx, eax
mov dword [ebp - 0xc], ecx
movzx ecx, byte [edx]
lea edx, [edx + 1]
mov eax, dword [ebp - 0xc]
and ecx, 0xf0
movzx eax, byte [eax + edx - 1]
mov cl, byte [ecx + 0x93eb64]
and eax, 0xf0
add cl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x44]
movzx eax, byte [eax + ebx]
and eax, 0xf0
add cl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + edx - 1]
and eax, 0xf0
add cl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x44]
shl cl, 2
mov byte [esi + eax*2], cl
mov eax, dword [ebp - 0xc]
movzx ecx, byte [edx - 1]
and ecx, 0xf
movzx eax, byte [eax + edx - 1]
and eax, 0xf
mov cl, byte [ecx + 0x93eb64]
add cl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x44]
movzx eax, byte [eax + ebx]
and eax, 0xf
add cl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + edx - 1]
and eax, 0xf
add cl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x44]
shl cl, 2
mov byte [esi + eax*2 + 1], cl
inc eax
mov dword [ebp - 0x44], eax
cmp eax, edi
jb 0x40f645
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x14]
add ebx, ecx
add esi, edx
sub eax, 1
mov dword [ebp + 0x18], eax
jne 0x40f620
mov edx, dword [ebp - 0x64]
test edx, edx
je 0x40f8b4
mov eax, dword [ebp + 0x2c]
xor ecx, ecx
test edi, edi
je 0x40f753
nop word [eax + eax]
movzx eax, byte [ecx + ebx]
and eax, 0xf0
movzx eax, byte [eax + 0x93eb64]
shl al, 2
add byte [esi + ecx*2], al
movzx eax, byte [ecx + ebx]
and eax, 0xf
movzx eax, byte [eax + 0x93eb64]
shl al, 2
add byte [esi + ecx*2 + 1], al
inc ecx
cmp ecx, edi
jb 0x40f720
mov eax, dword [ebp + 0x2c]
add ebx, eax
sub edx, 1
jne 0x40f714
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp + 8]
jmp 0x40fa79
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x1c], 6
test eax, eax
je 0x40f86b
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x14]
nop dword [eax]
mov dword [ebp - 0x44], 0
test edi, edi
je 0x40f85b
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp + 0x2c]
sub ecx, eax
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x34]
lea edx, [eax + ebx]
mov dword [ebp - 0x10], ecx
sub dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x2c]
nop dword [eax]
movzx ecx, byte [ecx + edx]
lea edx, [edx + 1]
mov eax, dword [ebp - 0x10]
and ecx, 0xf0
movzx eax, byte [eax + edx - 1]
mov cl, byte [ecx + 0x93eb64]
and eax, 0xf0
add cl, byte [eax + 0x93eb64]
movzx eax, byte [edx - 1]
and eax, 0xf0
add cl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x44]
movzx eax, byte [eax + ebx]
and eax, 0xf0
add cl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x44]
mov byte [esi + eax*2], cl
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + edx - 1]
mov eax, dword [ebp - 0x10]
and ecx, 0xf
movzx eax, byte [eax + edx - 1]
mov cl, byte [ecx + 0x93eb64]
and eax, 0xf
add cl, byte [eax + 0x93eb64]
movzx eax, byte [edx - 1]
and eax, 0xf
add cl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x44]
movzx eax, byte [eax + ebx]
and eax, 0xf
add cl, byte [eax + 0x93eb64]
mov eax, dword [ebp - 0x44]
mov byte [esi + eax*2 + 1], cl
inc eax
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x44], eax
cmp eax, edi
jb 0x40f7b0
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x14]
add ebx, ecx
add esi, edx
sub eax, 1
mov dword [ebp + 0x18], eax
jne 0x40f780
mov edx, dword [ebp - 0x64]
test edx, edx
je 0x40f8b4
mov eax, dword [ebp + 0x2c]
xor ecx, ecx
test edi, edi
je 0x40f8ad
nop dword [eax + eax]
movzx eax, byte [ecx + ebx]
and eax, 0xf0
movzx eax, byte [eax + 0x93eb64]
add byte [esi + ecx*2], al
movzx eax, byte [ecx + ebx]
and eax, 0xf
movzx eax, byte [eax + 0x93eb64]
add byte [esi + ecx*2 + 1], al
inc ecx
cmp ecx, edi
jb 0x40f880
mov eax, dword [ebp + 0x2c]
add ebx, eax
sub edx, 1
jne 0x40f875
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp + 8]
jmp 0x40fa79
mov eax, dword [ebp + 0x2c]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x14], eax
jmp 0x40fa7c
mov edx, dword [ebp + 0xc]
push dword [ecx + 0x9a100]
push 0
movzx eax, word [edx + 0x10]
push dword [ecx + 0x9a0fc]
movzx ebx, word [edx + 0x12]
mov dword [ebp - 0x14], eax
call fcn.00497290
mov eax, dword [ebp + 8]
add esp, 0xc
mov ecx, dword [eax + 0x9a0fc]
mov eax, edi
sub eax, 4
je 0x40f998
sub eax, 3
je 0x40f95a
sub eax, 1
jne 0x40fa70
test ebx, ebx
je 0x40fa69
mov eax, dword [ebp - 0x14]
nop
test eax, eax
je 0x40f948
mov dword [ebp + 0x1c], esi
mov edx, ecx
sub esi, ecx
mov edi, eax
nop dword [eax]
movzx eax, byte [esi + edx]
mov al, byte [eax + 0x93ec74]
mov byte [edx], al
inc edx
sub edi, 1
jne 0x40f930
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp - 0x14]
add esi, dword [ebp + 0x2c]
add ecx, eax
mov dword [ebp + 0x20], esi
sub ebx, 1
jne 0x40f920
jmp 0x40fa69
test ebx, ebx
je 0x40fa69
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x40f986
mov dword [ebp + 0x1c], esi
mov edx, ecx
sub esi, ecx
mov edi, eax
mov al, byte [edx + esi]
shr al, 2
mov byte [edx], al
inc edx
sub edi, 1
jne 0x40f972
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp - 0x14]
add esi, dword [ebp + 0x2c]
add ecx, eax
mov dword [ebp + 0x20], esi
sub ebx, 1
jne 0x40f965
jmp 0x40fa69
mov edx, dword [ebp - 0x14]
mov edi, edx
shr edi, 1
lea eax, [edi + edi]
sub edx, eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x1c], edx
cmp dword [eax + 0x9a58c], 0
je 0x40fa12
test ebx, ebx
je 0x40fa09
xor edx, edx
test edi, edi
je 0x40f9e8
nop dword [eax]
movzx eax, byte [edx + esi]
shr eax, 4
movzx eax, byte [eax + 0x93ed74]
mov byte [ecx + edx*2], al
movzx eax, byte [edx + esi]
and eax, 0xf
movzx eax, byte [eax + 0x93ed74]
mov byte [ecx + edx*2 + 1], al
inc edx
cmp edx, edi
jb 0x40f9c0
cmp dword [ebp + 0x1c], 0
je 0x40f9fe
movzx eax, byte [edx + esi]
shr eax, 4
mov al, byte [eax + 0x93ed74]
mov byte [ecx + edx*2], al
add esi, dword [ebp + 0x2c]
add ecx, dword [ebp - 0x14]
sub ebx, 1
jne 0x40f9b7
mov dword [ebp + 0x1c], 7
jmp 0x40fa70
test ebx, ebx
je 0x40fa69
xor edx, edx
test edi, edi
je 0x40fa48
nop dword [eax]
movzx eax, byte [edx + esi]
shr eax, 4
movzx eax, byte [eax + 0x93ec64]
mov byte [ecx + edx*2], al
movzx eax, byte [edx + esi]
and eax, 0xf
movzx eax, byte [eax + 0x93ec64]
mov byte [ecx + edx*2 + 1], al
inc edx
cmp edx, edi
jb 0x40fa20
cmp dword [ebp + 0x1c], 0
je 0x40fa5e
movzx eax, byte [edx + esi]
shr eax, 4
mov al, byte [eax + 0x93ec64]
mov byte [ecx + edx*2], al
add esi, dword [ebp + 0x2c]
add ecx, dword [ebp - 0x14]
sub ebx, 1
jne 0x40fa16
mov dword [ebp + 0x1c], 6
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0x9a0fc]
mov dword [ebp + 0x20], esi
mov ecx, dword [edi + 0x99ca8]
test cl, 1
jne 0x410bb1
mov eax, dword [ebp + 0xc]
xor cl, cl
cmp dword [edi + 0x9a58c], 0
movzx ebx, word [eax + 0x10]
movzx edx, word [eax + 0x12]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 4], edx
jne 0x40fc50
mov eax, dword [edi + 0x96c84]
mov ecx, eax
imul ecx, dword [ebp - 0x70]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0x99ca8]
add ecx, dword [edi + 0x96c80]
mov dword [ebp - 0x68], ecx
cmp eax, 0x32
ja case.0x40fad9.1
movzx eax, byte [eax + 0x414034]
jmp dword [eax*4 + 0x414028]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x40fbcb
cmp eax, 5
je 0x40fafa
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret
test edx, edx
je case.0x40fad9.1
mov edi, ecx
xor eax, eax
xor cl, cl
mov dword [ebp - 0x4c], edi
mov byte [ebp + 0x1b], cl
mov ch, 0x80
mov byte [ebp + 0x1f], ch
mov dword [ebp - 0x2c], eax
test ebx, ebx
je 0x40fb64
mov dl, cl
nop dword [eax]
test eax, eax
je 0x40fb35
test al, 7
jne 0x40fb35
mov byte [edi], dl
mov ch, 0x80
inc edi
mov byte [ebp + 0x1f], ch
mov dword [ebp - 0x4c], edi
xor dl, dl
mov edi, dword [ebp - 0x2c]
or ch, dl
movzx ecx, ch
movzx eax, dl
cmp byte [edi + esi], 0
cmove ecx, eax
mov eax, edi
mov ch, byte [ebp + 0x1f]
inc eax
mov edi, dword [ebp - 0x4c]
mov dl, cl
shr ch, 1
mov dword [ebp - 0x2c], eax
mov byte [ebp + 0x1f], ch
cmp eax, ebx
jb 0x40fb20
mov byte [ebp + 0x1b], dl
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
mov byte [edi], cl
mov ecx, dword [ebp - 0x68]
add ecx, dword [ebp - 0x10]
sub edx, 1
mov dword [ebp - 0x68], ecx
mov dword [ebp - 4], edx
jne 0x40fb02
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x58]
add word [esi + 0xe], ax
add word [esi + 0x10], ax
add word [esi + 0x12], ax
mov eax, dword [ebp + 0x10]
cmp eax, 0xffff
ja 0x413fa2
cmp dword [ebp + 0x14], 0
jne 0x413fa2
lea eax, [eax*8 + 0x15c74]
add eax, edi
pop edi
mov dword [eax + 4], esi
mov dword [eax], 1
mov dword [esi + 0x28], eax
xor eax, eax
mov word [esi + 8], 1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edx, edx
je case.0x40fad9.1
mov ebx, dword [ebp - 0x14]
mov edi, edx
push ebx
push esi
push ecx
call fcn.00497210
mov ecx, dword [ebp - 0x68]
add esp, 0xc
add ecx, dword [ebp - 0x10]
add esi, ebx
mov dword [ebp - 0x68], ecx
sub edi, 1
jne 0x40fbd4
jmp case.0x410c12.2
cmp dword [ebp + 0x1c], 6
jne case.0x40fc9b.1
test edx, edx
je case.0x40fad9.1
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
nop dword [eax]
test ebx, ebx
je 0x40fc3f
mov eax, dword [ebp - 0x68]
mov edi, ebx
sub eax, esi
mov ecx, esi
mov dword [ebp + 0x1c], eax
mov ebx, eax
mov al, byte [ecx]
test al, al
je 0x40fc2d
dec al
mov byte [ebx + ecx], al
inc ecx
sub edi, 1
jne 0x40fc22
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
add ecx, eax
add esi, edi
mov dword [ebp - 0x68], ecx
sub edx, 1
jne 0x40fc10
jmp case.0x410c12.2
mov eax, dword [edi + 0x9a550]
movzx edi, byte [edi + 0x9a124]
imul edi, dword [ebp - 0x68]
mov esi, dword [ebp + 8]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp - 0x70]
imul eax, dword [ebp + 0x18]
add edi, eax
mov eax, dword [esi + 0x9a130]
or eax, dword [esi + 0x9a134]
or eax, dword [esi + 0x9a138]
add edi, dword [esi + 0x9a554]
cmp dword [ebp + 0x1c], 8
mov esi, dword [ebp + 0x20]
mov dword [ebp - 0x28], eax
ja case.0x40fc9b.1
mov ebx, dword [ebp + 0x1c]
jmp dword [ebx*4 + 0x414068]
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 0x18]
cmp byte [eax + 0x9a125], 8
jne 0x40fd64
cmp dword [eax + 0x9a144], 0xf
jne 0x40fd16
test edx, edx
je 0x410b25
mov eax, dword [ebp + 0x18]
nop dword [eax]
mov dword [ebp + 0x1c], 0
test ebx, ebx
je 0x40fd04
mov edx, dword [ebp + 0x1c]
nop
test dl, 7
jne 0x40fced
mov eax, edx
shr eax, 3
mov cl, byte [eax + esi]
mov al, cl
add cl, cl
sar al, 7
and al, 0xf
mov byte [edi + edx], al
inc edx
cmp edx, ebx
jb 0x40fce0
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
add esi, dword [ebp - 0x14]
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x40fcd0
jmp 0x410b25
test edx, edx
je 0x410b25
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x1c], 0
test ebx, ebx
je 0x40fd52
mov edx, dword [ebp + 0x1c]
nop
test dl, 7
jne 0x40fd3d
mov eax, edx
shr eax, 3
mov cl, byte [eax + esi]
mov al, cl
add cl, cl
sar al, 7
mov byte [edi + edx], al
inc edx
cmp edx, ebx
jb 0x40fd30
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
add esi, dword [ebp - 0x14]
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x40fd21
jmp 0x410b25
cmp dword [eax + 0x9a564], 0
je 0x40fdd6
test edx, edx
je 0x410b25
mov eax, dword [ebp + 0x18]
nop dword [eax + eax]
mov dword [ebp + 0x1c], 0
test ebx, ebx
je 0x40fdc4
mov edx, dword [ebp + 0x1c]
nop
test dl, 7
jne 0x40fd9d
mov eax, edx
shr eax, 3
mov cl, byte [eax + esi]
test cl, cl
jns 0x40fdb1
mov eax, dword [ebp + 8]
mov ax, word [eax + 0x9a13c]
or ax, word [ebp - 0x28]
jmp 0x40fdb3
xor eax, eax
mov word [edi + edx*2], ax
add cl, cl
inc edx
cmp edx, ebx
jb 0x40fd90
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
add esi, dword [ebp - 0x14]
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x40fd80
jmp 0x410b25
test edx, edx
je 0x410b25
nop
xor eax, eax
mov dword [ebp + 0x1c], eax
test ebx, ebx
je 0x40fe31
mov edx, dword [ebp - 0x28]
nop dword [eax]
test al, 7
jne 0x40fdfa
shr eax, 3
mov cl, byte [eax + esi]
test cl, cl
jns 0x40fe0c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x9a13c]
mov dword [ebp - 0xc], eax
jmp 0x40fe13
mov dword [ebp - 0xc], 0
mov eax, edx
add cl, cl
mov edx, dword [ebp + 0x1c]
or eax, dword [ebp - 0xc]
mov word [edi + edx*2], ax
mov eax, edx
mov edx, dword [ebp - 0x28]
inc eax
mov dword [ebp + 0x1c], eax
cmp eax, ebx
jb 0x40fdf0
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
add edi, dword [ebp + 0x18]
sub edx, 1
mov dword [ebp - 4], edx
jne 0x40fde0
jmp 0x410b25
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp - 0x18]
mov cl, byte [ecx + 0x9a125]
cmp cl, 8
jne 0x410063
mov eax, dword [ebp + 8]
cmp dword [eax + 0x9a144], 0xf
jne 0x40ff65
test edx, edx
je 0x410b25
movups xmm4, xmmword [0x6b8580]
mov eax, dword [ebp + 0x18]
nop dword [eax + eax]
xor ecx, ecx
test ebx, ebx
je 0x40ff4f
cmp ebx, 0x20
jb 0x40ff1d
lea eax, [ebx - 1]
add eax, esi
cmp edi, eax
ja 0x40fea5
lea eax, [ebx - 1]
add eax, edi
cmp eax, esi
jae 0x40ff1d
movaps xmm3, xmmword [0x6b8560]
mov eax, ebx
and eax, 0xffffffe0
mov edx, esi
sub edx, edi
mov dword [ebp - 0x20], eax
mov dword [ebp + 0x1c], edx
xorps xmm2, xmm2
mov edx, dword [ebp - 4]
mov eax, edi
mov ebx, dword [ebp + 0x1c]
nop word [eax + eax]
movups xmm1, xmmword [ebx + eax]
lea eax, [eax + 0x20]
pcmpeqb xmm1, xmm2
pandn xmm1, xmm4
movaps xmm0, xmm1
pandn xmm1, xmm2
pand xmm0, xmm3
por xmm0, xmm1
movups xmmword [eax - 0x20], xmm0
movups xmm1, xmmword [ecx + esi + 0x10]
add ecx, 0x20
pcmpeqb xmm1, xmm2
pandn xmm1, xmm4
movaps xmm0, xmm1
pandn xmm1, xmm2
pand xmm0, xmm3
por xmm0, xmm1
movups xmmword [eax - 0x10], xmm0
cmp ecx, dword [ebp - 0x20]
jb 0x40fed0
mov ebx, dword [ebp - 0x18]
cmp ecx, ebx
jae 0x40ff4c
mov edx, esi
mov dword [ebp + 0x1c], ebx
lea eax, [edi + ecx]
sub edx, edi
sub ebx, ecx
mov dword [ebp - 0x20], eax
mov ecx, eax
mov al, byte [ecx + edx]
lea ecx, [ecx + 1]
neg al
sbb al, al
and al, 0xf
mov byte [ecx - 1], al
sub ebx, 1
jne 0x40ff32
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
add esi, dword [ebp - 0x14]
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x40fe80
jmp 0x410b25
test edx, edx
je 0x410b25
movups xmm4, xmmword [0x6b8580]
mov eax, dword [ebp + 0x18]
nop word [eax + eax]
xor ecx, ecx
test ebx, ebx
je 0x41004d
cmp ebx, 0x20
jb 0x41001d
lea eax, [ebx - 1]
add eax, esi
cmp edi, eax
ja 0x40ffa5
lea eax, [ebx - 1]
add eax, edi
cmp eax, esi
jae 0x41001d
movaps xmm3, xmmword [0x6b8580]
mov eax, ebx
and eax, 0xffffffe0
mov edx, esi
sub edx, edi
mov dword [ebp - 0x20], eax
mov dword [ebp + 0x1c], edx
xorps xmm2, xmm2
mov edx, dword [ebp - 4]
mov eax, edi
mov ebx, dword [ebp + 0x1c]
nop word [eax + eax]
movups xmm1, xmmword [eax + ebx]
lea eax, [eax + 0x20]
pcmpeqb xmm1, xmm2
pandn xmm1, xmm4
movaps xmm0, xmm1
pand xmm1, xmm3
pandn xmm0, xmm2
por xmm0, xmm1
movups xmmword [eax - 0x20], xmm0
movups xmm1, xmmword [ecx + esi + 0x10]
add ecx, 0x20
movaps xmm0, xmm3
pcmpeqb xmm1, xmm2
pandn xmm1, xmm4
pand xmm0, xmm1
pandn xmm1, xmm2
por xmm0, xmm1
movups xmmword [eax - 0x10], xmm0
cmp ecx, dword [ebp - 0x20]
jb 0x40ffd0
mov ebx, dword [ebp - 0x18]
cmp ecx, ebx
jae 0x41004a
mov edx, esi
mov dword [ebp + 0x1c], ebx
lea eax, [edi + ecx]
sub edx, edi
sub ebx, ecx
mov dword [ebp - 0x20], eax
mov ecx, eax
mov al, byte [ecx + edx]
lea ecx, [ecx + 1]
neg al
sbb al, al
mov byte [ecx - 1], al
sub ebx, 1
jne 0x410032
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
add esi, dword [ebp - 0x14]
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x40ff80
jmp 0x410b25
cmp cl, 0x10
jne 0x41010f
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
mov ax, word [eax + 0x9a13c]
or ax, cx
movzx eax, ax
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x9a564], 0
je 0x4100cc
test edx, edx
je 0x410b25
xor eax, eax
test ebx, ebx
je 0x4100b9
mov edx, dword [ebp + 0x1c]
nop
cmp byte [eax + esi], 0
je 0x4100ab
movzx ecx, dx
jmp 0x4100ad
xor ecx, ecx
mov word [edi + eax*2], cx
inc eax
cmp eax, ebx
jb 0x4100a0
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
add edi, dword [ebp + 0x18]
sub edx, 1
mov dword [ebp - 4], edx
jne 0x410096
jmp 0x410b25
test edx, edx
je 0x410b25
xor eax, eax
test ebx, ebx
je 0x4100fc
nop word [eax + eax]
cmp byte [eax + esi], 0
je 0x4100ee
mov edx, dword [ebp + 0x1c]
movzx edx, dx
jmp 0x4100f0
mov edx, ecx
mov word [edi + eax*2], dx
inc eax
cmp eax, ebx
jb 0x4100e0
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
add edi, dword [ebp + 0x18]
sub edx, 1
mov dword [ebp - 4], edx
jne 0x4100d4
jmp 0x410b25
cmp cl, 0x20
jne 0x410b25
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x9a13c]
or ecx, eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x1c], ecx
cmp dword [eax + 0x9a564], 0
je 0x410169
test edx, edx
je 0x410b25
mov eax, dword [ebp + 0x18]
nop dword [eax]
xor ecx, ecx
test ebx, ebx
je 0x41015a
xor eax, eax
cmp byte [ecx + esi], al
cmovne eax, dword [ebp + 0x1c]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, ebx
jb 0x410146
mov eax, dword [ebp + 0x18]
add esi, dword [ebp - 0x14]
add edi, eax
sub edx, 1
jne 0x410140
jmp 0x410b25
test edx, edx
je 0x410b25
mov eax, dword [ebp + 0x18]
xor ecx, ecx
test ebx, ebx
je 0x410198
mov edx, dword [ebp - 0x28]
nop dword [eax]
cmp byte [ecx + esi], 0
mov eax, edx
cmovne eax, dword [ebp + 0x1c]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, ebx
jb 0x410180
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
add esi, dword [ebp - 0x14]
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x410174
jmp 0x410b25
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp - 0x18]
mov cl, byte [ecx + 0x9a125]
cmp cl, 8
jne 0x410357
mov eax, dword [ebp + 8]
cmp dword [eax + 0x9a144], 0xf
jne 0x410306
test edx, edx
je 0x410b25
mov eax, dword [ebp + 0x18]
nop word [eax + eax]
xor ecx, ecx
test ebx, ebx
je 0x4102f0
cmp ebx, 0x20
jb 0x4102bf
lea eax, [ebx - 1]
add eax, esi
cmp edi, eax
ja 0x410209
lea eax, [ebx - 1]
add eax, edi
cmp eax, esi
jae 0x4102bf
movaps xmm5, xmmword [0x6b8550]
mov eax, ebx
and eax, 0xffffffe0
mov edx, esi
sub edx, edi
mov dword [ebp - 0x20], eax
mov dword [ebp + 0x1c], edx
xorps xmm4, xmm4
mov edx, dword [ebp - 4]
mov eax, edi
mov ebx, dword [ebp + 0x1c]
nop word [eax + eax]
movups xmm3, xmmword [ebx + eax]
lea eax, [eax + 0x20]
movups xmm0, xmmword [eax - 0x20]
pcmpeqb xmm3, xmm4
movaps xmm2, xmm3
movaps xmm1, xmm3
pandn xmm2, xmm0
movaps xmm0, xmm4
pand xmm0, xmm3
por xmm2, xmm0
movups xmmword [eax - 0x20], xmm2
movups xmm0, xmmword [ebx + eax - 0x20]
pand xmm3, xmm2
psubb xmm0, xmm5
pandn xmm1, xmm0
por xmm1, xmm3
movups xmmword [eax - 0x20], xmm1
movups xmm3, xmmword [ecx + esi + 0x10]
movups xmm0, xmmword [eax - 0x10]
pcmpeqb xmm3, xmm4
movaps xmm2, xmm3
movaps xmm1, xmm3
pandn xmm2, xmm0
movaps xmm0, xmm3
pand xmm0, xmm4
por xmm2, xmm0
movups xmmword [eax - 0x10], xmm2
movups xmm0, xmmword [ecx + esi + 0x10]
add ecx, 0x20
pand xmm3, xmm2
psubb xmm0, xmm5
pandn xmm1, xmm0
por xmm1, xmm3
movups xmmword [eax - 0x10], xmm1
cmp ecx, dword [ebp - 0x20]
jb 0x410230
mov ebx, dword [ebp - 0x18]
cmp ecx, ebx
jae 0x4102ed
mov edx, esi
mov dword [ebp + 0x1c], ebx
sub edx, edi
lea eax, [edi + ecx]
sub ebx, ecx
nop
mov cl, byte [edx + eax]
test cl, cl
je 0x4102de
sub cl, 1
mov byte [eax], cl
jmp 0x4102e1
mov byte [eax], 0
inc eax
sub ebx, 1
jne 0x4102d0
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
add esi, dword [ebp - 0x14]
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x4101e0
jmp 0x410b25
test edx, edx
je 0x410b25
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
test ebx, ebx
je 0x410346
mov edx, esi
mov dword [ebp + 0x1c], ebx
mov ecx, edi
sub edx, edi
mov al, byte [edx + ecx]
test al, al
je 0x410331
shl al, 4
dec al
mov byte [ecx], al
jmp 0x410334
mov byte [ecx], 0
inc ecx
sub ebx, 1
jne 0x410321
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
add esi, ecx
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x410314
jmp 0x410b25
mov esi, dword [ebp + 8]
cmp dword [esi + 0x9a13c], 0xf000
mov esi, dword [ebp + 0x20]
jne 0x410474
mov esi, dword [ebp + 8]
cmp dword [esi + 0x9a130], 0xf00
mov esi, dword [ebp + 0x20]
jne 0x410474
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0x9a134], 0xf0
mov ebx, dword [ebp - 0x18]
jne 0x410474
mov esi, dword [ebp + 8]
cmp dword [esi + 0x9a138], 0xf
mov esi, dword [ebp + 0x20]
jne 0x410474
mov eax, dword [ebp + 8]
cmp dword [eax + 0x9a564], 0
je 0x41041f
test edx, edx
je 0x410b25
xor eax, eax
mov dword [ebp + 0x1c], eax
test ebx, ebx
je 0x41040c
mov edx, 0xffff
nop
mov cl, byte [eax + esi]
cmp cl, 0x10
jne 0x4103de
mov word [edi + eax*2], dx
jmp 0x410401
test cl, cl
je 0x4103fb
movzx eax, cl
mov ecx, eax
shl ecx, 4
or ecx, eax
shl ecx, 4
or ecx, eax
shl ecx, 4
or ecx, eax
mov eax, dword [ebp + 0x1c]
jmp 0x4103fd
xor ecx, ecx
mov word [edi + eax*2], cx
inc eax
mov dword [ebp + 0x1c], eax
cmp eax, ebx
jb 0x4103d0
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
add edi, dword [ebp + 0x18]
sub edx, 1
mov dword [ebp - 4], edx
jne 0x4103c0
jmp 0x410b25
test edx, edx
je 0x410b25
xor eax, eax
mov dword [ebp + 0x1c], eax
test ebx, ebx
je 0x410461
mov edx, 0xfff
mov cl, byte [eax + esi]
test cl, cl
je 0x410452
movzx ecx, cl
mov eax, 0x1000
imul ecx, eax
mov eax, dword [ebp + 0x1c]
dec cx
mov word [edi + eax*2], cx
jmp 0x410456
mov word [edi + eax*2], dx
inc eax
mov dword [ebp + 0x1c], eax
cmp eax, ebx
jb 0x410435
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
add edi, dword [ebp + 0x18]
sub edx, 1
mov dword [ebp - 4], edx
jne 0x410427
jmp 0x410b25
cmp cl, 0x10
jne 0x4105ec
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x9a564], 0
je 0x410573
test edx, edx
je 0x410b25
movzx eax, byte [ecx + 0x9a12e]
sub al, 4
add al, byte [ecx + 0x9a12a]
movzx eax, al
mov dword [ebp - 0x20], eax
movzx eax, byte [ecx + 0x9a12d]
sub al, 4
add al, byte [ecx + 0x9a129]
movzx eax, al
mov dword [ebp - 0x48], eax
movzx eax, byte [ecx + 0x9a12c]
sub al, 4
add al, byte [ecx + 0x9a128]
movzx eax, al
mov dword [ebp - 0x50], eax
movzx eax, byte [ecx + 0x9a12f]
sub al, 4
add al, byte [ecx + 0x9a12b]
movzx eax, al
mov dword [ebp - 0x5c], eax
nop dword [eax]
xor eax, eax
mov dword [ebp + 0x1c], eax
test ebx, ebx
je 0x41055d
nop dword [eax]
mov cl, byte [eax + esi]
cmp cl, 0x10
jne 0x41050f
mov ecx, 0xffff
jmp 0x41054e
test cl, cl
je 0x41054c
movzx edx, cl
mov ecx, dword [ebp - 0x20]
mov si, dx
shl si, cl
mov ax, dx
mov ecx, dword [ebp - 0x48]
shl ax, cl
mov ecx, dword [ebp - 0x50]
or si, ax
mov ax, dx
shl ax, cl
mov ecx, dword [ebp - 0x5c]
or si, ax
mov eax, dword [ebp + 0x1c]
shl dx, cl
or si, dx
mov word [edi + eax*2], si
mov esi, dword [ebp + 0x20]
jmp 0x410552
xor ecx, ecx
mov word [edi + eax*2], cx
inc eax
mov dword [ebp + 0x1c], eax
cmp eax, ebx
jb 0x410500
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
add edi, dword [ebp + 0x18]
sub edx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 4], edx
jne 0x4104f0
jmp 0x410b25
test edx, edx
je 0x410b25
nop dword [eax + eax]
xor ecx, ecx
mov dword [ebp - 0xc], ecx
test ebx, ebx
je 0x4105d9
nop dword [eax]
mov dl, byte [ecx + esi]
mov byte [ebp + 0x1f], dl
test dl, dl
je 0x4105ca
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0x9a12f]
movzx eax, byte [eax + 0x9a12b]
add ecx, 0xfffffffc
add ecx, eax
mov al, dl
movzx eax, al
shl ax, cl
mov ecx, dword [ebp - 0xc]
dec ax
or ax, word [ebp - 0x28]
mov word [edi + ecx*2], ax
mov eax, dword [ebp - 0x28]
jmp 0x4105ce
mov word [edi + ecx*2], ax
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, ebx
jb 0x410590
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
add edi, dword [ebp + 0x18]
sub edx, 1
mov dword [ebp - 4], edx
jne 0x410580
jmp 0x410b25
cmp cl, 0x20
jne 0x410b25
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x9a564], 0
je 0x4106db
test edx, edx
je 0x410b25
movzx eax, byte [ecx + 0x9a12e]
sub al, 4
add al, byte [ecx + 0x9a12a]
movzx eax, al
mov dword [ebp - 0x20], eax
movzx eax, byte [ecx + 0x9a12d]
sub al, 4
add al, byte [ecx + 0x9a129]
movzx eax, al
mov dword [ebp - 0x48], eax
movzx eax, byte [ecx + 0x9a12c]
sub al, 4
add al, byte [ecx + 0x9a128]
movzx eax, al
mov dword [ebp - 0x50], eax
movzx eax, byte [ecx + 0x9a12f]
sub al, 4
add al, byte [ecx + 0x9a12b]
movzx eax, al
mov dword [ebp - 0x5c], eax
xor eax, eax
mov dword [ebp + 0x1c], eax
test ebx, ebx
je 0x4106c5
nop word [eax + eax]
mov cl, byte [eax + esi]
cmp cl, 0x10
jne 0x410681
mov dword [edi + eax*4], 0xffffffff
jmp 0x4106ba
test cl, cl
je 0x4106b3
movzx esi, cl
mov ecx, dword [ebp - 0x20]
mov edx, esi
shl edx, cl
mov eax, esi
mov ecx, dword [ebp - 0x48]
shl eax, cl
mov ecx, dword [ebp - 0x50]
or edx, eax
mov eax, esi
shl eax, cl
mov ecx, dword [ebp - 0x5c]
or edx, eax
mov eax, dword [ebp + 0x1c]
shl esi, cl
or edx, esi
mov esi, dword [ebp + 0x20]
mov dword [edi + eax*4], edx
jmp 0x4106ba
mov dword [edi + eax*4], 0
inc eax
mov dword [ebp + 0x1c], eax
cmp eax, ebx
jb 0x410670
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
add edi, dword [ebp + 0x18]
sub edx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 4], edx
jne 0x410661
jmp 0x410b25
test edx, edx
je 0x410b25
xor ecx, ecx
mov dword [ebp - 0xc], ecx
test ebx, ebx
je 0x410732
nop dword [eax]
mov dl, byte [ecx + esi]
mov byte [ebp + 0x1f], dl
test dl, dl
je 0x410724
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0x9a12f]
movzx eax, byte [eax + 0x9a12b]
add eax, 0xfffffffc
add ecx, eax
movzx eax, dl
shl eax, cl
mov ecx, dword [ebp - 0xc]
dec eax
or eax, dword [ebp - 0x28]
mov dword [edi + ecx*4], eax
mov eax, dword [ebp - 0x28]
jmp 0x410727
mov dword [edi + ecx*4], eax
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, ebx
jb 0x4106f0
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
add edi, dword [ebp + 0x18]
sub edx, 1
mov dword [ebp - 4], edx
jne 0x4106e3
jmp 0x410b25
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp - 0x18]
cmp byte [ecx + 0x9a125], 8
jne 0x410807
cmp dword [ecx + 0x9a144], 0xf
jne 0x4107b6
test edx, edx
je 0x410b25
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
nop
test ebx, ebx
je 0x4107a5
mov edx, esi
mov dword [ebp + 0x1c], ebx
mov ecx, edi
sub edx, edi
nop dword [eax]
mov al, byte [edx + ecx]
cmp al, 4
jbe 0x410790
shr al, 2
dec al
mov byte [ecx], al
jmp 0x410793
mov byte [ecx], 0
inc ecx
sub ebx, 1
jne 0x410780
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
add esi, ecx
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x410770
jmp 0x410b25
test edx, edx
je 0x410b25
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
test ebx, ebx
je 0x4107f6
mov edx, esi
mov dword [ebp + 0x1c], ebx
mov ecx, edi
sub edx, edi
mov al, byte [edx + ecx]
test al, al
je 0x4107e1
shl al, 2
dec al
mov byte [ecx], al
jmp 0x4107e4
mov byte [ecx], 0
inc ecx
sub ebx, 1
jne 0x4107d1
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
add esi, ecx
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x4107c4
jmp 0x410b25
cmp dword [ecx + 0x9a564], 0
je 0x4108eb
test edx, edx
je 0x410b25
movzx eax, byte [ecx + 0x9a12e]
sub al, 6
add al, byte [ecx + 0x9a12a]
movzx eax, al
mov dword [ebp - 0x20], eax
movzx eax, byte [ecx + 0x9a12d]
sub al, 6
add al, byte [ecx + 0x9a129]
movzx eax, al
mov dword [ebp - 0x48], eax
movzx eax, byte [ecx + 0x9a12c]
sub al, 6
add al, byte [ecx + 0x9a128]
movzx eax, al
mov dword [ebp - 0x50], eax
movzx eax, byte [ecx + 0x9a12f]
sub al, 6
add al, byte [ecx + 0x9a12b]
movzx eax, al
mov dword [ebp - 0x5c], eax
xor eax, eax
mov dword [ebp + 0x1c], eax
test ebx, ebx
je 0x4108d5
nop dword [eax]
mov cl, byte [eax + esi]
cmp cl, 0x40
jne 0x410891
mov dword [edi + eax*4], 0xffffffff
jmp 0x4108ca
test cl, cl
je 0x4108c3
movzx esi, cl
mov ecx, dword [ebp - 0x20]
mov edx, esi
shl edx, cl
mov eax, esi
mov ecx, dword [ebp - 0x48]
shl eax, cl
mov ecx, dword [ebp - 0x50]
or edx, eax
mov eax, esi
shl eax, cl
mov ecx, dword [ebp - 0x5c]
or edx, eax
mov eax, dword [ebp + 0x1c]
shl esi, cl
or edx, esi
mov esi, dword [ebp + 0x20]
mov dword [edi + eax*4], edx
jmp 0x4108ca
mov dword [edi + eax*4], 0
inc eax
mov dword [ebp + 0x1c], eax
cmp eax, ebx
jb 0x410880
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
add edi, dword [ebp + 0x18]
sub edx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 4], edx
jne 0x410870
jmp 0x410b25
test edx, edx
je 0x410b25
xor ecx, ecx
mov dword [ebp - 0xc], ecx
test ebx, ebx
je 0x410942
nop dword [eax]
mov dl, byte [ecx + esi]
mov byte [ebp + 0x1f], dl
test dl, dl
je 0x410934
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0x9a12f]
movzx eax, byte [eax + 0x9a12b]
add eax, 0xfffffffa
add ecx, eax
movzx eax, dl
dec eax
shl eax, cl
mov ecx, dword [ebp - 0xc]
or eax, dword [ebp - 0x28]
mov dword [edi + ecx*4], eax
mov eax, dword [ebp - 0x28]
jmp 0x410937
mov dword [edi + ecx*4], eax
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, ebx
jb 0x410900
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
add edi, dword [ebp + 0x18]
sub edx, 1
mov dword [ebp - 4], edx
jne 0x4108f3
jmp 0x410b25
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp - 0x18]
cmp byte [ecx + 0x9a125], 8
jne 0x410a0b
cmp dword [ecx + 0x9a144], 0xf
jne 0x4109be
test edx, edx
je 0x410b25
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
nop
test ebx, ebx
je 0x4109ad
mov edx, esi
mov dword [ebp + 0x1c], ebx
mov ecx, edi
sub edx, edi
nop dword [eax]
mov al, byte [ecx + edx]
lea ecx, [ecx + 1]
shr al, 4
mov byte [ecx - 1], al
sub ebx, 1
jne 0x410990
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
add esi, ecx
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x410980
jmp 0x410b25
test edx, edx
je 0x410b25
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
nop dword [eax]
test ebx, ebx
je 0x4109fa
mov edx, esi
mov dword [ebp + 0x1c], ebx
mov ecx, edi
sub edx, edi
nop dword [eax]
mov al, byte [ecx + edx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
sub ebx, 1
jne 0x4109e0
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
add esi, ecx
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x4109d0
jmp 0x410b25
cmp dword [ecx + 0x9a564], 0
je 0x410acb
test edx, edx
je 0x410b25
movzx eax, byte [ecx + 0x9a12d]
sub al, 8
add al, byte [ecx + 0x9a129]
movzx eax, al
mov dword [ebp - 0x50], eax
movzx eax, byte [ecx + 0x9a12c]
sub al, 8
add al, byte [ecx + 0x9a128]
movzx eax, al
mov dword [ebp - 0x48], eax
movzx eax, byte [ecx + 0x9a12f]
sub al, 8
add al, byte [ecx + 0x9a12b]
movzx eax, al
mov dword [ebp - 0x20], eax
movzx eax, byte [ecx + 0x9a12e]
sub al, 8
add al, byte [ecx + 0x9a12a]
movzx ecx, al
mov dword [ebp - 0xc], ecx
xor eax, eax
mov dword [ebp + 0x1c], eax
test ebx, ebx
je 0x410ab8
nop dword [eax]
movzx esi, byte [eax + esi]
mov edx, esi
mov eax, esi
shl edx, cl
mov ecx, dword [ebp - 0x20]
shl eax, cl
mov ecx, dword [ebp - 0x48]
or edx, eax
mov eax, esi
shl eax, cl
mov ecx, dword [ebp - 0x50]
or edx, eax
mov eax, dword [ebp + 0x1c]
shl esi, cl
mov ecx, dword [ebp - 0xc]
or edx, esi
mov esi, dword [ebp + 0x20]
mov dword [edi + eax*4], edx
inc eax
mov dword [ebp + 0x1c], eax
cmp eax, ebx
jb 0x410a80
mov edx, dword [ebp - 4]
add esi, dword [ebp - 0x14]
add edi, dword [ebp + 0x18]
sub edx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 4], edx
jne 0x410a74
jmp 0x410b25
test edx, edx
je 0x410b25
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x1c], 0
test ebx, ebx
je 0x410b18
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 8]
movzx ecx, byte [ecx + 0x9a12b]
movzx eax, byte [eax + 0x9a12f]
add eax, 0xfffffff8
add ecx, eax
mov eax, dword [ebp + 0x1c]
movzx eax, byte [eax + esi]
shl eax, cl
mov ecx, dword [ebp + 0x1c]
or eax, edx
mov dword [edi + ecx*4], eax
inc ecx
mov dword [ebp + 0x1c], ecx
cmp ecx, ebx
mov ecx, dword [ebp + 8]
jb 0x410ae0
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
add esi, dword [ebp - 0x14]
add edi, eax
sub edx, 1
mov dword [ebp - 4], edx
jne 0x410ad2
cmp dword [ebp + 0x3c], 0
je case.0x410c12.2
mov esi, dword [ebp - 0x68]
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x70]
lea ecx, [esi - 1]
dec esi
movzx eax, word [edi + 0x99c62]
add esi, eax
mov dword [ebp - 0xf0], ecx
dec eax
mov dword [ebp - 0xe8], esi
add eax, ebx
lea edx, [ebx - 1]
cmp dword [edi + 0x9a578], 0
mov dword [ebp - 0xec], edx
mov dword [ebp - 0xe4], eax
je 0x411a65
cmp dword [edi + 0x9a57c], ecx
jle 0x410b7e
mov dword [edi + 0x9a57c], ecx
cmp dword [edi + 0x9a580], edx
jle 0x410b8c
mov dword [edi + 0x9a580], edx
cmp dword [edi + 0x9a584], esi
jge 0x410b9a
mov dword [edi + 0x9a584], esi
cmp dword [edi + 0x9a588], eax
jge case.0x40fad9.1
mov dword [edi + 0x9a588], eax
jmp case.0x40fad9.1
mov ebx, dword [ebp + 0xc]
xor dl, dl
mov byte [ebp + 0x1b], dl
movzx eax, word [ebx + 0x10]
mov dword [ebp - 8], eax
movzx eax, word [ebx + 0x12]
mov dword [ebp - 4], eax
mov eax, dword [edi + 0x99cac]
mov dword [ebp - 0x38], eax
imul eax, eax, 0x51
cmp dword [edi + 0x9a58c], 0
lea ebx, [eax + 0x73bfaf]
mov eax, dword [edi + 0x9a0e4]
mov dword [ebp - 0x54], eax
mov eax, dword [edi + 0x9a0e0]
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x28], eax
jne 0x41139f
mov edi, dword [edi + 0x96c84]
dec ecx
cmp ecx, 0x22
ja case.0x410c12.2
movzx eax, byte [ecx + 0x414098]
jmp dword [eax*4 + 0x41408c]
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x70]
mov ecx, dword [ebp + 8]
imul eax, edi
add eax, dword [ecx + 0x96c80]
add eax, dword [ebp - 0x68]
add eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x410e52
cmp ecx, 5
jne case.0x40fc9b.1
mov ecx, dword [ebp - 0x38]
cmp ecx, 1
jne 0x410cca
cmp dword [ebp - 4], 0
jbe case.0x410c12.2
mov ebx, dword [ebp - 8]
xor ecx, ecx
test ebx, ebx
je 0x410cb7
mov edx, dword [ebp - 8]
mov ebx, eax
sub ebx, edi
nop
cmp byte [ecx + esi], 0
je 0x410caf
cmp byte [ecx + eax - 1], 1
lea edx, [ebx + ecx]
mov byte [edx + edi], 1
je 0x410c89
mov byte [ecx + eax - 1], 2
cmp byte [ecx + eax + 1], 1
je 0x410c95
mov byte [ecx + eax + 1], 2
cmp byte [edx], 1
je 0x410c9d
mov byte [edx], 2
mov edx, dword [ebp - 8]
add eax, ecx
cmp byte [eax + edi], 1
je 0x410cac
mov byte [eax + edi], 2
mov eax, dword [ebp - 0x18]
inc ecx
cmp ecx, edx
jl 0x410c70
mov ebx, dword [ebp - 8]
add esi, dword [ebp - 0x14]
add eax, edi
sub dword [ebp - 4], 1
mov dword [ebp - 0x18], eax
jne 0x410c61
jmp case.0x410c12.2
cmp ecx, 4
jg 0x410d8f
cmp dword [ebp - 4], 0
jbe case.0x410c12.2
mov edx, dword [ebp - 8]
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
test edx, edx
je 0x410d75
mov edx, esi
mov esi, dword [ebp - 8]
sub edx, eax
mov dword [ebp - 0x20], edx
add ecx, eax
cmp byte [ecx + edx], 0
je 0x410d64
mov esi, dword [ebp - 0x38]
mov byte [ecx], 1
mov ecx, esi
neg ecx
inc esi
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jge 0x410d61
mov edx, ecx
mov ecx, esi
imul edx, edi
add edx, dword [ebp + 0x1c]
add edx, eax
mov eax, dword [ebp - 0xc]
sub ecx, eax
mov dword [ebp + 0x18], ecx
cmp eax, esi
jge 0x410d48
mov ecx, ebx
nop dword [eax + eax]
cmp byte [ecx], 0
je 0x410d3f
cmp byte [eax + edx], 1
je 0x410d3f
mov byte [eax + edx], 2
inc eax
inc ecx
cmp eax, esi
jl 0x410d30
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp - 0xc]
add ebx, 9
add edx, edi
sub ecx, 1
mov dword [ebp + 0x18], ecx
jne 0x410d25
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x64]
mov esi, dword [ebp - 8]
mov ecx, dword [ebp + 0x1c]
inc ecx
mov dword [ebp + 0x1c], ecx
cmp ecx, esi
jl 0x410cf7
mov esi, dword [ebp + 0x20]
mov edx, dword [ebp - 8]
add esi, dword [ebp - 0x14]
add eax, edi
sub dword [ebp - 4], 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
jne 0x410ce0
jmp case.0x410c12.2
cmp dword [ebp - 4], 0
jbe case.0x410c12.2
mov edx, dword [ebp - 8]
nop dword [eax]
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
test edx, edx
je 0x410e38
mov ebx, dword [ebp - 8]
mov edx, esi
sub edx, eax
mov dword [ebp - 0x20], edx
add ecx, eax
cmp byte [ecx + edx], 0
je 0x410e27
mov ebx, dword [ebp - 0x38]
mov byte [ecx], 1
mov ecx, ebx
neg ecx
mov dword [ebp - 0xc], ecx
lea esi, [ebx + 1]
cmp ecx, esi
jge 0x410e24
mov ebx, dword [ebp - 0x54]
mov edx, ecx
imul edx, edi
mov ecx, esi
add edx, dword [ebp + 0x1c]
add edx, eax
mov eax, dword [ebp - 0xc]
sub ecx, eax
mov dword [ebp + 0x18], ecx
nop word [eax + eax]
cmp eax, esi
jge 0x410e0e
mov ecx, ebx
cmp byte [ecx], 0
je 0x410e05
cmp byte [eax + edx], 1
je 0x410e05
mov byte [eax + edx], 2
inc eax
inc ecx
cmp eax, esi
jl 0x410df6
mov ecx, dword [ebp + 0x18]
add ebx, dword [ebp - 0x28]
add edx, edi
mov eax, dword [ebp - 0xc]
sub ecx, 1
mov dword [ebp + 0x18], ecx
jne 0x410df0
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp + 0x1c]
inc ecx
mov dword [ebp + 0x1c], ecx
cmp ecx, ebx
jl 0x410db7
mov esi, dword [ebp + 0x20]
mov edx, dword [ebp - 8]
add esi, dword [ebp - 0x14]
add eax, edi
sub dword [ebp - 4], 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
jne 0x410da0
jmp case.0x410c12.2
mov ecx, dword [ebp - 0x38]
cmp ecx, 1
jne 0x410eea
cmp dword [ebp - 4], 0
jbe case.0x410c12.2
mov ebx, dword [ebp - 8]
nop dword [eax + eax]
xor ecx, ecx
test ebx, ebx
je 0x410ed7
mov ebx, eax
sub ebx, edi
mov dword [ebp + 0x1c], ebx
nop dword [eax]
test cl, 7
jne 0x410e90
mov eax, ecx
shr eax, 3
mov dl, byte [eax + esi]
mov eax, dword [ebp - 0x18]
test dl, dl
jns 0x410ec9
add ebx, ecx
cmp byte [ecx + eax - 1], 1
mov byte [ebx + edi], 1
je 0x410ea6
mov byte [ecx + eax - 1], 2
cmp byte [ecx + eax + 1], 1
je 0x410eb2
mov byte [ecx + eax + 1], 2
cmp byte [ebx], 1
je 0x410eba
mov byte [ebx], 2
mov ebx, dword [ebp + 0x1c]
add eax, ecx
cmp byte [eax + edi], 1
je 0x410ec9
mov byte [eax + edi], 2
mov eax, dword [ebp - 0x18]
inc ecx
add dl, dl
cmp ecx, dword [ebp - 8]
jl 0x410e80
mov ebx, dword [ebp - 8]
add esi, dword [ebp - 0x14]
add eax, edi
sub dword [ebp - 4], 1
mov dword [ebp - 0x18], eax
jne 0x410e70
jmp case.0x410c12.2
cmp ecx, 4
jg 0x410fb9
cmp dword [ebp - 4], 0
jbe case.0x410c12.2
nop dword [eax]
mov ecx, dword [ebp - 0x38]
xor ebx, ebx
mov dword [ebp + 0x1c], ebx
cmp dword [ebp - 8], ebx
jbe 0x410f9f
test bl, 7
jne 0x410f24
mov eax, ebx
shr eax, 3
mov dl, byte [eax + esi]
mov eax, dword [ebp - 0x18]
mov byte [ebp + 0x1b], dl
test dl, dl
jns 0x410f87
mov esi, dword [ebp - 0x38]
neg ecx
inc esi
mov byte [ebx + eax], 1
mov dword [ebp - 0x1c], ecx
cmp ecx, esi
jge 0x410f84
mov ebx, dword [ebp - 0x64]
mov edx, ecx
imul edx, edi
mov ecx, esi
add edx, dword [ebp + 0x1c]
add edx, eax
mov eax, dword [ebp - 0x1c]
sub ecx, eax
mov dword [ebp - 0xc], ecx
cmp eax, esi
jge 0x410f6e
mov ecx, ebx
cmp byte [ecx], 0
je 0x410f65
cmp byte [eax + edx], 1
je 0x410f65
mov byte [eax + edx], 2
inc eax
inc ecx
cmp eax, esi
jl 0x410f56
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x1c]
add ebx, 9
add edx, edi
sub ecx, 1
mov dword [ebp - 0xc], ecx
jne 0x410f50
mov dl, byte [ebp + 0x1b]
mov ebx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp + 0x20]
inc ebx
mov eax, dword [ebp - 0x18]
add dl, dl
mov dword [ebp + 0x1c], ebx
mov byte [ebp + 0x1b], dl
cmp ebx, dword [ebp - 8]
jl 0x410f11
add esi, dword [ebp - 0x14]
add eax, edi
sub dword [ebp - 4], 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
jne 0x410f00
jmp case.0x410c12.2
cmp dword [ebp - 4], 0
jbe case.0x410c12.2
mov ecx, dword [ebp - 0x38]
xor ebx, ebx
mov dword [ebp + 0x1c], ebx
cmp dword [ebp - 8], ebx
jbe 0x411069
test bl, 7
jne 0x410fe7
mov eax, ebx
shr eax, 3
mov dl, byte [eax + esi]
mov eax, dword [ebp - 0x18]
mov byte [ebp + 0x1b], dl
test dl, dl
jns 0x411051
mov esi, dword [ebp - 0x38]
neg ecx
inc esi
mov byte [ebx + eax], 1
mov dword [ebp - 0x1c], ecx
cmp ecx, esi
jge 0x41104e
mov ebx, dword [ebp - 0x54]
mov edx, ecx
imul edx, edi
mov ecx, esi
add edx, dword [ebp + 0x1c]
add edx, eax
mov eax, dword [ebp - 0x1c]
sub ecx, eax
mov dword [ebp - 0xc], ecx
cmp eax, esi
jge 0x411038
mov ecx, ebx
nop dword [eax]
cmp byte [ecx], 0
je 0x41102f
cmp byte [edx + eax], 1
je 0x41102f
mov byte [edx + eax], 2
inc eax
inc ecx
cmp eax, esi
jl 0x411020
mov ecx, dword [ebp - 0xc]
add ebx, dword [ebp - 0x28]
add edx, edi
mov eax, dword [ebp - 0x1c]
sub ecx, 1
mov dword [ebp - 0xc], ecx
jne 0x411013
mov dl, byte [ebp + 0x1b]
mov ebx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp + 0x20]
inc ebx
mov eax, dword [ebp - 0x18]
add dl, dl
mov dword [ebp + 0x1c], ebx
mov byte [ebp + 0x1b], dl
cmp ebx, dword [ebp - 8]
jl 0x410fd4
add esi, dword [ebp - 0x14]
add eax, edi
sub dword [ebp - 4], 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
jne 0x410fc3
jmp case.0x410c12.2
cmp dword [ebp + 0x1c], 6
jne case.0x40fc9b.1
mov ecx, dword [ebp - 0x70]
add ecx, dword [ebp - 0x6c]
mov eax, dword [ebp + 8]
imul ecx, edi
add ecx, dword [eax + 0x96c80]
add ecx, dword [ebp - 0x68]
add ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov dword [ebp + 0x1c], ecx
cmp eax, 1
jne 0x41118c
cmp dword [ebp - 4], 0
jbe case.0x410c12.2
mov eax, dword [ebp - 8]
xor edx, edx
test eax, eax
je 0x411175
mov ebx, ecx
sub ebx, edi
mov dword [ebp + 0x18], ebx
mov al, byte [edx + esi]
test al, al
je 0x411169
add ebx, edx
movzx ecx, al
dec ecx
lea eax, [ebx + edi]
or byte [eax], cl
shl ecx, 4
mov bl, byte [ebx]
movzx eax, bl
and eax, 0xf0
cmp eax, ecx
jge 0x411104
mov eax, dword [ebp + 0x18]
and bl, 0xf
or bl, cl
mov byte [eax + edx], bl
mov eax, dword [ebp + 0x1c]
add eax, edx
add eax, edi
mov dword [ebp - 0x20], eax
mov bl, byte [eax]
movzx eax, bl
and eax, 0xf0
cmp eax, ecx
jge 0x411126
mov eax, dword [ebp - 0x20]
and bl, 0xf
or bl, cl
mov byte [eax], bl
mov eax, dword [ebp + 0x1c]
mov bl, byte [edx + eax + 1]
movzx eax, bl
and eax, 0xf0
cmp eax, ecx
mov eax, dword [ebp + 0x1c]
jge 0x411145
and bl, 0xf
or bl, cl
mov byte [edx + eax + 1], bl
mov bl, byte [edx + eax - 1]
movzx eax, bl
and eax, 0xf0
cmp eax, ecx
jge 0x411163
and bl, 0xf
or bl, cl
mov ecx, dword [ebp + 0x1c]
mov byte [edx + ecx - 1], bl
jmp 0x411166
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp - 8]
inc edx
cmp edx, eax
jl 0x4110d2
add esi, dword [ebp - 0x14]
add ecx, edi
sub dword [ebp - 4], 1
mov dword [ebp + 0x1c], ecx
jne 0x4110c1
jmp case.0x410c12.2
mov ebx, dword [ebp - 4]
cmp eax, 4
jg 0x41129f
test ebx, ebx
je case.0x410c12.2
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
nop word [eax + eax]
mov dword [ebp - 0x10], 0
test eax, eax
je 0x411284
mov eax, esi
mov edx, ecx
sub eax, ecx
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x20], eax
nop
mov al, byte [edx + eax]
test al, al
je 0x41125f
movzx ebx, al
mov eax, dword [ebp - 0x38]
dec ebx
or byte [edx], bl
mov ecx, eax
neg ecx
shl ebx, 4
mov dword [ebp - 0xc], ecx
lea edx, [eax + 1]
mov dword [ebp + 0x18], edx
cmp ecx, edx
jge 0x411259
mov eax, dword [ebp - 0x64]
mov esi, ecx
imul esi, edi
mov ecx, edx
mov dword [ebp - 0x1c], eax
add esi, dword [ebp - 0x10]
add esi, dword [ebp + 0x1c]
sub ecx, dword [ebp - 0xc]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0xc]
cmp ecx, edx
jge 0x41124b
mov edx, eax
mov eax, dword [ebp + 0x18]
nop dword [eax]
cmp byte [edx], 0
je 0x41123f
movzx eax, byte [esi + ecx]
and eax, 0xf0
cmp eax, ebx
jge 0x41123c
mov al, byte [esi + ecx]
and al, 0xf
or al, bl
mov byte [esi + ecx], al
mov eax, dword [ebp + 0x18]
inc ecx
inc edx
cmp ecx, eax
jl 0x411220
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x1c]
add eax, 9
add esi, edi
sub dword [ebp - 0x40], 1
mov dword [ebp - 0x1c], eax
jne 0x411211
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
inc edx
inc eax
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x10], eax
cmp eax, ecx
mov eax, dword [ebp - 0x20]
jl 0x4111d0
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 4]
add esi, edx
add ecx, edi
sub ebx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 4], ebx
jne 0x4111b0
jmp case.0x410c12.2
test ebx, ebx
je case.0x410c12.2
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
nop dword [eax]
mov dword [ebp - 0x10], 0
test eax, eax
je 0x411384
mov eax, esi
mov edx, ecx
sub eax, ecx
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x20], eax
nop
mov al, byte [eax + edx]
test al, al
je 0x41135f
movzx ebx, al
mov eax, dword [ebp - 0x38]
dec ebx
or byte [edx], bl
mov ecx, eax
neg ecx
shl ebx, 4
mov dword [ebp - 0xc], ecx
lea edx, [eax + 1]
mov dword [ebp + 0x18], edx
cmp ecx, edx
jge 0x411359
mov eax, dword [ebp - 0x54]
mov esi, ecx
imul esi, edi
mov ecx, edx
mov dword [ebp - 0x1c], eax
add esi, dword [ebp - 0x10]
add esi, dword [ebp + 0x1c]
sub ecx, dword [ebp - 0xc]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0xc]
cmp ecx, edx
jge 0x41134b
mov edx, eax
mov eax, dword [ebp + 0x18]
nop dword [eax]
cmp byte [edx], 0
je 0x41133f
movzx eax, byte [ecx + esi]
and eax, 0xf0
cmp eax, ebx
jge 0x41133c
mov al, byte [ecx + esi]
and al, 0xf
or al, bl
mov byte [ecx + esi], al
mov eax, dword [ebp + 0x18]
inc ecx
inc edx
cmp ecx, eax
jl 0x411320
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x28]
add esi, edi
sub dword [ebp - 0x40], 1
mov dword [ebp - 0x1c], eax
jne 0x411311
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
inc edx
inc eax
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x10], eax
cmp eax, ecx
mov eax, dword [ebp - 0x20]
jl 0x4112d0
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 4]
add esi, edx
add ecx, edi
sub ebx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 4], ebx
jne 0x4112b0
jmp case.0x410c12.2
movzx edx, byte [edi + 0x9a124]
xor cl, cl
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x68]
mov ebx, dword [edi + 0x9a550]
imul edx, eax
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x70]
imul eax, ebx
mov esi, dword [ebp + 0x20]
mov byte [ebp + 0x1b], cl
mov dword [ebp - 0x34], ebx
add edx, eax
mov eax, dword [edi + 0x9a548]
add edx, dword [edi + 0x9a554]
mov dword [ebp - 0x3c], edx
cdq
sub eax, edx
mov edi, eax
mov eax, dword [ebp + 8]
sar edi, 1
mov dword [ebp - 0x24], edi
mov edx, dword [eax + 0x9a138]
or edx, dword [eax + 0x9a134]
or edx, dword [eax + 0x9a130]
mov eax, dword [eax + 0x9a13c]
or eax, edx
mov dword [ebp - 0x44], edx
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x18], eax
cmp edx, 8
ja case.0x411419.1
jmp dword [edx*4 + 0x4140bc]
mov edx, dword [ebp - 0x38]
cmp edx, 1
jne 0x4115b3
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
cmp byte [ecx + 0x9a125], 8
jne 0x4114ed
test edx, edx
je 0x411989
mov edx, dword [ebp - 0x3c]
lea ecx, [edx + 1]
add ecx, edi
add ecx, ebx
mov dword [ebp + 0x1c], ecx
mov ecx, edi
sub ecx, ebx
lea edi, [edx + 1]
add edi, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [ebp - 0x34]
xor edx, edx
cmp dword [ebp - 8], edx
jbe 0x4114d0
mov cl, byte [ebp + 0x1b]
test dl, 7
jne 0x411483
mov ecx, edx
sar ecx, 3
mov cl, byte [ecx + esi]
mov byte [ebp + 0x1b], cl
test cl, cl
jns 0x4114bf
mov ecx, dword [ebp + 0x1c]
mov byte [eax + edx], 1
mov byte [edi + edx - 1], 1
mov byte [ecx + edx - 1], 1
lea ecx, [ebx + edi]
mov byte [ecx + edx - 2], 1
lea ecx, [edi + edx]
mov byte [ecx + ebx], 1
mov ecx, dword [ebp + 0x1c]
mov byte [edi + edx - 2], 1
mov byte [edi + edx], 1
mov byte [ecx + edx - 2], 1
mov byte [ecx + edx], 1
mov cl, byte [ebp + 0x1b]
mov ebx, dword [ebp - 0x34]
inc edx
add cl, cl
mov byte [ebp + 0x1b], cl
cmp edx, dword [ebp - 8]
jl 0x411473
mov ecx, dword [ebp + 0x1c]
add esi, dword [ebp - 0x14]
add ecx, ebx
add eax, ebx
mov dword [ebp + 0x1c], ecx
add edi, ebx
sub dword [ebp - 0xc], 1
jne 0x411466
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 4]
jmp 0x41198b
test edx, edx
je 0x411989
mov ecx, dword [ebp + 0x20]
mov esi, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 8], 0
mov ebx, dword [ebp - 0x34]
mov dword [ebp + 0x1c], 0
jbe 0x411595
mov edx, dword [ebp + 0x20]
lea ecx, [edi + 1]
lea ecx, [eax + ecx*2]
add ecx, ebx
mov dword [ebp - 0x10], ecx
mov ecx, eax
sub ecx, ebx
inc edi
lea edi, [ecx + edi*2]
mov cl, byte [ebp + 0x1b]
nop dword [eax]
test byte [ebp + 0x1c], 7
mov ebx, dword [ebp - 0x34]
jne 0x411542
mov ecx, dword [ebp + 0x1c]
sar ecx, 3
mov cl, byte [ecx + edx]
test cl, cl
jns 0x411572
mov edx, dword [ebp + 0x1c]
mov word [eax + edx*2], si
mov edx, dword [ebp - 0x10]
mov word [edi - 2], si
mov word [edx - 2], si
mov word [ebx + edi - 4], si
mov word [edi + ebx], si
mov word [edi - 4], si
mov word [edi], si
mov word [edx - 4], si
mov word [edx], si
mov edx, dword [ebp + 0x20]
inc dword [ebp + 0x1c]
add edi, 2
mov ebx, dword [ebp - 8]
add cl, cl
add dword [ebp - 0x10], 2
cmp dword [ebp + 0x1c], ebx
mov ebx, dword [ebp - 0x34]
jl 0x411530
mov edx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x24]
mov byte [ebp + 0x1b], cl
mov ecx, dword [ebp + 0x20]
add ecx, dword [ebp - 0x14]
add eax, ebx
sub edx, esi
mov dword [ebp + 0x20], ecx
mov dword [ebp - 0xc], edx
jne 0x411500
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 4]
jmp 0x41198b
mov edi, dword [ebp + 8]
cmp edx, 4
mov edx, dword [ebp - 4]
jg 0x4117a9
cmp byte [edi + 0x9a125], 8
jne 0x4116a3
test edx, edx
je 0x41198b
mov edi, edx
mov dword [ebp - 0x40], edx
nop dword [eax]
xor edx, edx
mov dword [ebp + 0x1c], edx
cmp dword [ebp - 8], edx
jbe 0x411681
nop
test dl, 7
jne 0x411600
mov ecx, edx
shr ecx, 3
mov cl, byte [ecx + esi]
mov byte [ebp + 0x1b], cl
test cl, cl
jns 0x411669
mov esi, dword [ebp - 0x38]
mov byte [eax + edx], 1
mov edx, esi
neg edx
mov dword [ebp - 0x1c], edx
lea edi, [esi + 1]
cmp edx, edi
jge 0x411666
mov ecx, edx
mov edx, edi
mov esi, ecx
imul esi, ebx
add esi, eax
mov eax, dword [ebp - 0x64]
add esi, dword [ebp - 0x24]
add esi, dword [ebp + 0x1c]
sub edx, ecx
mov dword [ebp - 0xc], edx
cmp ecx, edi
jge 0x411650
mov edx, eax
cmp byte [edx], 0
je 0x411647
cmp byte [esi + ecx], 0
jne 0x411647
mov byte [esi + ecx], 1
inc ecx
inc edx
cmp ecx, edi
jl 0x411638
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 9
add esi, ebx
sub edx, 1
mov dword [ebp - 0xc], edx
jne 0x411632
mov eax, dword [ebp - 0x18]
mov cl, byte [ebp + 0x1b]
mov edx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x20]
inc edx
add cl, cl
mov dword [ebp + 0x1c], edx
mov byte [ebp + 0x1b], cl
cmp edx, dword [ebp - 8]
jl 0x4115f0
mov edi, dword [ebp - 0x40]
add esi, dword [ebp - 0x14]
add eax, ebx
sub edi, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x40], edi
jne 0x4115e0
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 4]
jmp 0x41198b
test edx, edx
je 0x41198b
mov ecx, dword [ebp + 0x20]
mov edi, edx
mov dword [ebp - 0x1c], edi
mov esi, 1
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 8], edx
jbe 0x41178b
mov cl, byte [ebp + 0x1b]
mov edi, dword [ebp - 8]
nop dword [eax]
test dl, 7
jne 0x4116e6
mov ecx, edx
mov edx, dword [ebp + 0x20]
shr ecx, 3
mov cl, byte [ecx + edx]
mov edx, dword [ebp - 0x2c]
mov byte [ebp + 0x1b], cl
test cl, cl
jns 0x411774
mov edi, dword [ebp - 0x38]
neg edi
mov word [eax + edx*2], si
mov dword [ebp + 0x1c], edi
mov edi, dword [ebp - 0x38]
inc edi
mov dword [ebp - 0x10], edi
cmp dword [ebp + 0x1c], edi
jge 0x411771
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x64]
imul ecx, ebx
mov dword [ebp - 0x4c], edx
mov edx, edi
sub edx, dword [ebp + 0x1c]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x60], ecx
nop dword [eax]
mov edx, dword [ebp + 0x1c]
cmp edx, edi
jge 0x41175d
mov edi, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x10]
cmp byte [edi], 0
je 0x41174e
mov ecx, dword [ebp - 0x24]
add ecx, edx
add ecx, dword [ebp - 0x2c]
lea ecx, [ebx + ecx*2]
cmp word [ecx + eax], 0
jne 0x41174b
mov word [ecx + eax], si
mov ecx, dword [ebp - 0x10]
inc edx
inc edi
cmp edx, ecx
jl 0x411730
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x10]
add dword [ebp - 0x4c], 9
add ecx, ebx
sub dword [ebp - 0xc], esi
mov dword [ebp - 0x60], ecx
jne 0x411720
mov edx, dword [ebp - 0x2c]
mov cl, byte [ebp + 0x1b]
mov edi, dword [ebp - 8]
inc edx
add cl, cl
mov dword [ebp - 0x2c], edx
mov byte [ebp + 0x1b], cl
cmp edx, edi
jl 0x4116d0
mov ecx, dword [ebp + 0x20]
mov edi, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x14]
add eax, ebx
sub edi, esi
mov dword [ebp + 0x20], ecx
mov dword [ebp - 0x1c], edi
jne 0x4116b8
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 4]
jmp 0x41198b
cmp byte [edi + 0x9a125], 8
jne 0x41188b
test edx, edx
je 0x41198b
mov edi, edx
mov dword [ebp - 0x40], edx
xor edx, edx
mov dword [ebp + 0x1c], edx
cmp dword [ebp - 8], edx
jbe 0x411869
test dl, 7
jne 0x4117e1
mov ecx, edx
shr ecx, 3
mov cl, byte [ecx + esi]
mov byte [ebp + 0x1b], cl
test cl, cl
jns 0x411851
mov esi, dword [ebp - 0x38]
mov byte [eax + edx], 1
mov edx, esi
neg edx
mov dword [ebp - 0x1c], edx
lea edi, [esi + 1]
cmp edx, edi
jge 0x41184e
mov ecx, edx
mov edx, edi
mov esi, ecx
imul esi, ebx
add esi, eax
mov eax, dword [ebp - 0x54]
add esi, dword [ebp - 0x24]
add esi, dword [ebp + 0x1c]
sub edx, ecx
mov dword [ebp - 0xc], edx
cmp ecx, edi
jge 0x411838
mov edx, eax
nop dword [eax]
cmp byte [edx], 0
je 0x41182f
cmp byte [esi + ecx], 0
jne 0x41182f
mov byte [esi + ecx], 1
inc ecx
inc edx
cmp ecx, edi
jl 0x411820
mov edx, dword [ebp - 0xc]
add eax, dword [ebp - 0x28]
add esi, ebx
mov ecx, dword [ebp - 0x1c]
sub edx, 1
mov dword [ebp - 0xc], edx
jne 0x411813
mov eax, dword [ebp - 0x18]
mov cl, byte [ebp + 0x1b]
mov edx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x20]
inc edx
add cl, cl
mov dword [ebp + 0x1c], edx
mov byte [ebp + 0x1b], cl
cmp edx, dword [ebp - 8]
jl 0x4117d1
mov edi, dword [ebp - 0x40]
add esi, dword [ebp - 0x14]
add eax, ebx
sub edi, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x40], edi
jne 0x4117c3
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 4]
jmp 0x41198b
test edx, edx
je 0x41198b
mov ecx, dword [ebp + 0x20]
mov edi, edx
mov dword [ebp - 0x1c], edi
mov esi, 1
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 8], edx
jbe 0x41196e
mov cl, byte [ebp + 0x1b]
mov edi, dword [ebp - 8]
test dl, 7
jne 0x4118ca
mov ecx, edx
mov edx, dword [ebp + 0x20]
shr ecx, 3
mov cl, byte [ecx + edx]
mov edx, dword [ebp - 0x2c]
mov byte [ebp + 0x1b], cl
test cl, cl
jns 0x411957
mov edi, dword [ebp - 0x38]
neg edi
mov word [eax + edx*2], si
mov dword [ebp + 0x1c], edi
mov edi, dword [ebp - 0x38]
inc edi
mov dword [ebp - 0x10], edi
cmp dword [ebp + 0x1c], edi
jge 0x411954
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x54]
imul ecx, ebx
mov dword [ebp - 0x60], edx
mov edx, edi
sub edx, dword [ebp + 0x1c]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp + 0x1c]
cmp edx, edi
jge 0x41193e
mov edi, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x10]
cmp byte [edi], 0
je 0x41192f
mov ecx, dword [ebp - 0x24]
add ecx, edx
add ecx, dword [ebp - 0x2c]
lea ecx, [ebx + ecx*2]
cmp word [ecx + eax], 0
jne 0x41192c
mov word [ecx + eax], si
mov ecx, dword [ebp - 0x10]
inc edx
inc edi
cmp edx, ecx
jl 0x411911
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x28]
add ecx, ebx
add dword [ebp - 0x60], edx
sub dword [ebp - 0xc], esi
mov dword [ebp - 0x4c], ecx
jne 0x411901
mov edx, dword [ebp - 0x2c]
mov cl, byte [ebp + 0x1b]
mov edi, dword [ebp - 8]
inc edx
add cl, cl
mov dword [ebp - 0x2c], edx
mov byte [ebp + 0x1b], cl
cmp edx, edi
jl 0x4118b4
mov ecx, dword [ebp + 0x20]
mov edi, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x14]
add eax, ebx
sub edi, esi
mov dword [ebp + 0x20], ecx
mov dword [ebp - 0x1c], edi
jne 0x4118a0
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 4]
jmp 0x41198b
mov edi, ecx
mov esi, dword [ebp - 0x58]
mov eax, ebx
imul eax, dword [ebp - 0x6c]
cmp byte [edi + 0x9a125], 8
jne 0x411add
mov edx, dword [ebp - 0x3c]
sub edx, eax
sub edx, dword [ebp - 0x30]
cmp dword [edi + 0x9a144], 0xf
mov edi, dword [ebp - 4]
mov dword [ebp - 0x3c], edx
jne 0x411a82
add edi, esi
test edi, edi
jle case.0x411419.1
mov eax, dword [ebp - 8]
add eax, esi
mov dword [ebp + 0x1c], eax
nop word [eax + eax]
test eax, eax
jle 0x411a10
mov ebx, dword [ebp - 0x24]
mov ecx, edx
mov esi, eax
lea edx, [edx + ebx*2]
nop
cmp byte [ecx], 0
je 0x4119ee
mov byte [ecx], 0xf
mov byte [ebx + ecx], 0
jmp 0x4119fe
mov byte [ecx], 0
mov ax, word [edx]
neg ax
sbb al, al
and al, 0xf
mov byte [ebx + ecx], al
add edx, 2
inc ecx
sub esi, 1
jne 0x4119e0
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x3c]
add edx, ebx
mov dword [ebp - 0x3c], edx
sub edi, 1
jne 0x4119d0
mov edi, dword [ebp + 8]
cmp dword [ebp + 0x3c], 0
je case.0x40fad9.1
mov esi, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x70]
movzx eax, word [edi + 0x99c62]
lea ecx, [esi - 1]
dec esi
add esi, eax
mov dword [ebp - 0xf0], ecx
dec eax
mov dword [ebp - 0xe8], esi
add eax, ebx
lea edx, [ebx - 1]
cmp dword [edi + 0x9a578], 0
mov dword [ebp - 0xec], edx
mov dword [ebp - 0xe4], eax
jne 0x410b70
movups xmm0, xmmword [ebp - 0xf0]
mov dword [edi + 0x9a578], 1
movups xmmword [edi + 0x9a57c], xmm0
jmp case.0x40fad9.1
add edi, esi
test edi, edi
jle case.0x411419.1
mov eax, dword [ebp - 8]
add eax, esi
mov dword [ebp + 0x1c], eax
test eax, eax
jle 0x411ace
mov ebx, dword [ebp - 0x24]
mov ecx, edx
mov esi, eax
lea edx, [edx + ebx*2]
nop
cmp byte [ecx], 0
je 0x411aae
mov byte [ecx], 0xff
mov byte [ebx + ecx], 0
jmp 0x411abc
mov byte [ecx], 0
mov ax, word [edx]
neg ax
sbb al, al
mov byte [ebx + ecx], al
add edx, 2
inc ecx
sub esi, 1
jne 0x411aa0
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x3c]
add edx, ebx
mov dword [ebp - 0x3c], edx
sub edi, 1
jne 0x411a90
jmp case.0x411419.1
mov ecx, dword [ebp - 0x30]
neg ecx
add ecx, ecx
sub ecx, eax
lea eax, [edx + esi]
add ecx, dword [ebp - 0x3c]
cmp dword [edi + 0x9a564], 0
mov dword [ebp - 0x30], ecx
je 0x411b5d
mov dword [ebp + 0x1c], eax
test eax, eax
jle 0x411a1d
mov edi, dword [ebp - 8]
add edi, esi
xor esi, esi
test edi, edi
jle 0x411b4b
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x78]
lea edx, [ecx + eax*2]
xor eax, eax
cmp word [ecx + esi*2], ax
je 0x411b28
mov word [ecx + esi*2], bx
mov word [edx], ax
jmp 0x411b3d
mov word [ecx + esi*2], ax
xor ecx, ecx
cmp word [edx], cx
movzx eax, bx
cmovne ecx, eax
mov word [edx], cx
mov ecx, dword [ebp - 0x30]
inc esi
add edx, 2
cmp esi, edi
jl 0x411b17
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp + 0x1c]
add ecx, ebx
sub eax, 1
mov dword [ebp - 0x30], ecx
mov dword [ebp + 0x1c], eax
jne 0x411b08
jmp case.0x411419.1
mov dword [ebp + 0x1c], eax
test eax, eax
jle 0x411a1d
mov edi, dword [ebp - 8]
mov ecx, dword [ebp - 0x30]
add edi, esi
xor esi, esi
test edi, edi
jle 0x411bb8
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x78]
lea edx, [ecx + eax*2]
nop
cmp word [ecx + esi*2], 0
mov eax, dword [ebp - 0x44]
je 0x411b93
mov word [ecx + esi*2], bx
mov word [edx], ax
jmp 0x411baa
mov word [ecx + esi*2], ax
cmp word [edx], 0
movzx ecx, ax
movzx eax, bx
cmovne ecx, eax
mov word [edx], cx
mov ecx, dword [ebp - 0x30]
inc esi
add edx, 2
cmp esi, edi
jl 0x411b80
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp + 0x1c]
add ecx, ebx
sub eax, 1
mov dword [ebp - 0x30], ecx
mov dword [ebp + 0x1c], eax
jne 0x411b70
jmp case.0x411419.1
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
cmp ecx, 1
jne 0x411d09
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0x9a125], 8
jne 0x411c83
test edx, edx
je 0x41208c
mov edx, dword [ebp - 0x3c]
lea ecx, [edx + 1]
add ecx, edi
add ecx, ebx
mov dword [ebp + 0x1c], ecx
mov ecx, edi
sub ecx, ebx
lea edi, [edx + 1]
add edi, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp + 0x18], ecx
mov ecx, dword [ebp + 0x1c]
xor edx, edx
cmp dword [ebp - 8], edx
jbe 0x411c69
sub esi, eax
mov dword [ebp - 0x20], esi
mov esi, dword [ebp + 0x1c]
nop
mov ebx, dword [ebp - 0x20]
lea ecx, [eax + edx]
cmp byte [ebx + ecx], 0
mov ebx, dword [ebp - 0x34]
je 0x411c5d
mov byte [ecx], 1
lea ecx, [edi + ebx]
mov byte [edi + edx - 1], 1
mov byte [esi + edx - 1], 1
mov byte [ecx + edx - 2], 1
lea ecx, [edi + edx]
mov byte [ecx + ebx], 1
mov byte [edi + edx - 2], 1
mov byte [edi + edx], 1
mov byte [esi + edx - 2], 1
mov byte [esi + edx], 1
inc edx
cmp edx, dword [ebp - 8]
jl 0x411c20
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
add esi, dword [ebp - 0x14]
add ecx, ebx
add eax, ebx
mov dword [ebp + 0x20], esi
add edi, ebx
mov dword [ebp + 0x1c], ecx
sub dword [ebp + 0x18], 1
jne 0x411c10
jmp 0x412089
test edx, edx
je 0x41208c
mov ecx, dword [ebp + 0x20]
mov esi, 1
mov dword [ebp + 0x18], edx
xor edi, edi
cmp dword [ebp - 8], edi
jbe 0x411cf5
mov edx, dword [ebp - 0x24]
lea ecx, [edx + 1]
lea ecx, [eax + ecx*2]
add ecx, ebx
mov dword [ebp + 0x1c], ecx
mov ecx, eax
sub ecx, ebx
inc edx
lea edx, [ecx + edx*2]
mov ecx, dword [ebp + 0x20]
cmp byte [ecx + edi], 0
je 0x411ce5
mov ecx, dword [ebp + 0x1c]
mov word [eax + edi*2], si
mov word [edx - 2], si
mov word [ecx - 2], si
mov word [ebx + edx - 4], si
mov word [edx + ebx], si
mov word [edx - 4], si
mov word [edx], si
mov word [ecx - 4], si
mov word [ecx], si
mov ecx, dword [ebp + 0x20]
add dword [ebp + 0x1c], 2
inc edi
add edx, 2
cmp edi, dword [ebp - 8]
jl 0x411cb6
mov edx, dword [ebp + 0x18]
add ecx, dword [ebp - 0x14]
add eax, ebx
sub edx, esi
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x18], edx
jne 0x411c96
jmp 0x412089
cmp ecx, 4
mov ecx, dword [ebp + 8]
jg 0x411ecc
cmp byte [ecx + 0x9a125], 8
jne 0x411ddf
test edx, edx
je 0x41208c
mov edi, dword [ebp - 8]
mov ecx, edx
mov dword [ebp - 0xc], ecx
xor edx, edx
mov dword [ebp + 0x18], edx
test edi, edi
je 0x411dc3
sub esi, eax
mov dword [ebp - 0x50], esi
lea ecx, [eax + edx]
cmp byte [esi + ecx], 0
je 0x411db1
mov edi, dword [ebp - 0x38]
mov byte [ecx], 1
mov ecx, edi
neg ecx
inc edi
mov dword [ebp - 0x48], ecx
cmp ecx, edi
jge 0x411db1
mov esi, ecx
imul esi, ebx
add esi, eax
mov eax, dword [ebp - 0x64]
add esi, dword [ebp - 0x24]
add esi, edx
mov edx, edi
sub edx, ecx
mov dword [ebp + 0x1c], edx
cmp ecx, edi
jge 0x411d98
mov edx, eax
nop dword [eax + eax]
cmp byte [edx], 0
je 0x411d8f
cmp byte [esi + ecx], 0
jne 0x411d8f
mov byte [esi + ecx], 1
inc ecx
inc edx
cmp ecx, edi
jl 0x411d80
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x48]
add eax, 9
add esi, ebx
sub edx, 1
mov dword [ebp + 0x1c], edx
jne 0x411d75
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp + 0x18]
mov esi, dword [ebp - 0x50]
inc edx
mov dword [ebp + 0x18], edx
cmp edx, dword [ebp - 8]
jl 0x411d44
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], ecx
jne 0x411d32
jmp 0x412089
test edx, edx
je 0x41208c
sub esi, edi
mov dword [ebp - 0x1c], edx
mov dword [ebp + 0x20], esi
mov esi, 1
mov ecx, dword [ebp + 0x20]
xor edi, edi
mov dword [ebp - 0x4c], edi
cmp dword [ebp - 8], edi
jbe 0x411eb4
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x60], edx
nop dword [eax + eax]
cmp byte [ecx + edx], 0
je 0x411ea0
mov word [eax + edi*2], si
mov edi, dword [ebp - 0x38]
neg edi
mov dword [ebp + 0x1c], edi
mov edi, dword [ebp - 0x38]
inc edi
mov dword [ebp + 0x18], edi
cmp dword [ebp + 0x1c], edi
jge 0x411e9d
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x64]
imul ecx, ebx
mov dword [ebp - 0x10], edx
mov edx, edi
sub edx, dword [ebp + 0x1c]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x2c], ecx
nop dword [eax]
mov edx, dword [ebp + 0x1c]
cmp edx, edi
jge 0x411e89
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0x60]
cmp byte [edi], 0
je 0x411e7a
lea ecx, [edx + ebx]
lea ecx, [eax + ecx*2]
add ecx, dword [ebp - 0x2c]
cmp word [ecx], 0
jne 0x411e77
mov word [ecx], si
mov ecx, dword [ebp + 0x18]
inc edx
inc edi
cmp edx, ecx
jl 0x411e60
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
mov edi, dword [ebp + 0x18]
add dword [ebp - 0x10], 9
add ecx, ebx
sub dword [ebp - 0xc], esi
mov dword [ebp - 0x2c], ecx
jne 0x411e50
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x4c]
inc edi
inc edx
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x60], edx
cmp edi, dword [ebp - 8]
jl 0x411e10
mov edx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x14]
add eax, ebx
sub edx, esi
mov dword [ebp + 0x20], ecx
mov dword [ebp - 0x1c], edx
jne 0x411df7
jmp 0x412089
cmp byte [ecx + 0x9a125], 8
jne 0x411f9f
test edx, edx
je 0x41208c
mov edi, dword [ebp - 8]
mov ecx, edx
mov dword [ebp - 0xc], ecx
nop dword [eax]
xor edx, edx
mov dword [ebp + 0x18], edx
test edi, edi
je 0x411f83
sub esi, eax
mov dword [ebp - 0x50], esi
lea ecx, [eax + edx]
cmp byte [esi + ecx], 0
je 0x411f71
mov edi, dword [ebp - 0x38]
mov byte [ecx], 1
mov ecx, edi
neg ecx
inc edi
mov dword [ebp - 0x48], ecx
cmp ecx, edi
jge 0x411f71
mov esi, ecx
imul esi, ebx
add esi, eax
mov eax, dword [ebp - 0x54]
add esi, dword [ebp - 0x24]
add esi, edx
mov edx, edi
sub edx, ecx
mov dword [ebp + 0x1c], edx
cmp ecx, edi
jge 0x411f58
mov edx, eax
nop dword [eax]
cmp byte [edx], 0
je 0x411f4f
cmp byte [esi + ecx], 0
jne 0x411f4f
mov byte [esi + ecx], 1
inc ecx
inc edx
cmp ecx, edi
jl 0x411f40
mov edx, dword [ebp + 0x1c]
add eax, dword [ebp - 0x28]
add esi, ebx
mov ecx, dword [ebp - 0x48]
sub edx, 1
mov dword [ebp + 0x1c], edx
jne 0x411f33
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp + 0x18]
mov esi, dword [ebp - 0x50]
inc edx
mov dword [ebp + 0x18], edx
cmp edx, dword [ebp - 8]
jl 0x411f02
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], ecx
jne 0x411ef0
jmp 0x412089
test edx, edx
je 0x41208c
sub esi, edi
mov dword [ebp - 0x1c], edx
mov dword [ebp + 0x20], esi
mov esi, 1
mov ecx, dword [ebp + 0x20]
xor edi, edi
mov dword [ebp - 0x4c], edi
cmp dword [ebp - 8], edi
jbe 0x412076
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x60], edx
nop dword [eax + eax]
cmp byte [ecx + edx], 0
je 0x412062
mov word [eax + edi*2], si
mov edi, dword [ebp - 0x38]
neg edi
mov dword [ebp + 0x1c], edi
mov edi, dword [ebp - 0x38]
inc edi
mov dword [ebp + 0x18], edi
cmp dword [ebp + 0x1c], edi
jge 0x41205f
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x54]
imul ecx, ebx
mov dword [ebp - 0x2c], edx
mov edx, edi
sub edx, dword [ebp + 0x1c]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], ecx
nop dword [eax]
mov edx, dword [ebp + 0x1c]
cmp edx, edi
jge 0x412049
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0x60]
cmp byte [edi], 0
je 0x41203a
lea ecx, [ebx + edx]
lea ecx, [eax + ecx*2]
add ecx, dword [ebp - 0x10]
cmp word [ecx], 0
jne 0x412037
mov word [ecx], si
mov ecx, dword [ebp + 0x18]
inc edx
inc edi
cmp edx, ecx
jl 0x412020
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp - 0x28]
add ecx, ebx
add dword [ebp - 0x2c], edx
sub dword [ebp - 0xc], esi
mov dword [ebp - 0x10], ecx
jne 0x412010
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x4c]
inc edi
inc edx
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x60], edx
cmp edi, dword [ebp - 8]
jl 0x411fd0
mov edx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x14]
add eax, ebx
sub edx, esi
mov dword [ebp + 0x20], ecx
mov dword [ebp - 0x1c], edx
jne 0x411fb7
mov edx, dword [ebp - 4]
mov edi, dword [ebp + 8]
mov eax, ebx
imul eax, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x58]
cmp byte [edi + 0x9a125], 8
jne 0x41217a
mov ecx, dword [ebp - 0x3c]
sub ecx, eax
sub ecx, dword [ebp - 0x30]
cmp dword [edi + 0x9a144], 0xf
lea edi, [edx + esi]
mov dword [ebp - 0x3c], ecx
jne 0x41211c
test edi, edi
jle case.0x411419.1
mov edx, dword [ebp - 0x24]
mov eax, ecx
add esi, dword [ebp - 8]
add edx, ecx
nop
xor ecx, ecx
test esi, esi
jle 0x41210b
mov ebx, dword [ebp - 0x3c]
nop dword [eax]
cmp byte [ebx + ecx], 0
je 0x4120f0
mov byte [ebx + ecx], 0xf
mov byte [edx + ecx], 0
jmp 0x412100
mov byte [ebx + ecx], 0
mov al, byte [edx + ecx]
neg al
sbb al, al
and al, 0xf
mov byte [edx + ecx], al
inc ecx
cmp ecx, esi
jl 0x4120e0
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
add eax, ebx
add edx, ebx
mov dword [ebp - 0x3c], eax
sub edi, 1
jne 0x4120d0
jmp case.0x411419.1
test edi, edi
jle case.0x411419.1
mov edx, dword [ebp - 0x24]
add esi, dword [ebp - 8]
add edx, ecx
mov eax, dword [ebp - 0x3c]
nop
xor ecx, ecx
test esi, esi
jle 0x412169
mov ebx, dword [ebp - 0x3c]
nop dword [eax]
cmp byte [ebx + ecx], 0
je 0x412150
mov byte [ebx + ecx], 0xff
mov byte [edx + ecx], 0
jmp 0x41215e
mov byte [ebx + ecx], 0
mov al, byte [edx + ecx]
neg al
sbb al, al
mov byte [edx + ecx], al
inc ecx
cmp ecx, esi
jl 0x412140
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
add eax, ebx
add edx, ebx
mov dword [ebp - 0x3c], eax
sub edi, 1
jne 0x412130
jmp case.0x411419.1
mov ecx, dword [ebp - 0x30]
neg ecx
add ecx, ecx
sub ecx, eax
lea eax, [edx + esi]
add ecx, dword [ebp - 0x3c]
cmp dword [edi + 0x9a564], 0
mov dword [ebp - 0x30], ecx
je 0x4121fa
mov dword [ebp + 0x1c], eax
test eax, eax
jle 0x411a1d
mov edi, dword [ebp - 8]
add edi, esi
xor esi, esi
test edi, edi
jle 0x4121e8
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x78]
lea edx, [ecx + eax*2]
xor eax, eax
cmp word [ecx + esi*2], ax
je 0x4121c5
mov word [ecx + esi*2], bx
mov word [edx], ax
jmp 0x4121da
mov word [ecx + esi*2], ax
xor ecx, ecx
cmp word [edx], cx
movzx eax, bx
cmovne ecx, eax
mov word [edx], cx
mov ecx, dword [ebp - 0x30]
inc esi
add edx, 2
cmp esi, edi
jl 0x4121b4
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp + 0x1c]
add ecx, ebx
sub eax, 1
mov dword [ebp - 0x30], ecx
mov dword [ebp + 0x1c], eax
jne 0x4121a5
jmp case.0x411419.1
mov dword [ebp + 0x1c], eax
test eax, eax
jle 0x411a1d
mov edi, dword [ebp - 8]
mov ecx, dword [ebp - 0x30]
add edi, esi
nop dword [eax]
xor esi, esi
test edi, edi
jle 0x412258
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x78]
lea edx, [ecx + eax*2]
nop
cmp word [ecx + esi*2], 0
mov eax, dword [ebp - 0x44]
je 0x412233
mov word [ecx + esi*2], bx
mov word [edx], ax
jmp 0x41224a
mov word [ecx + esi*2], ax
cmp word [edx], 0
movzx ecx, ax
movzx eax, bx
cmovne ecx, eax
mov word [edx], cx
mov ecx, dword [ebp - 0x30]
inc esi
add edx, 2
cmp esi, edi
jl 0x412220
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp + 0x1c]
add ecx, ebx
sub eax, 1
mov dword [ebp - 0x30], ecx
mov dword [ebp + 0x1c], eax
jne 0x412210
jmp case.0x411419.1
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
cmp ecx, 1
jne 0x4125ae
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0x9a125], 8
jne 0x41242d
test edx, edx
je 0x4129db
mov edx, dword [ebp - 0x3c]
mov ecx, edi
inc edx
sub ecx, ebx
add edx, edi
mov edi, dword [ebp - 0x3c]
inc edi
add edx, ebx
add ecx, edi
mov dword [ebp - 0x54], edx
mov edi, dword [ebp - 4]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0xc], edi
nop
xor edi, edi
cmp dword [ebp - 8], edi
jbe 0x41240c
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x24]
inc ecx
lea edx, [eax + ecx*2]
mov ecx, eax
sub ecx, ebx
add edx, ebx
mov dword [ebp + 0x18], edx
lea ecx, [ecx + esi*2]
add ecx, 2
mov dword [ebp + 0x1c], ecx
mov ecx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x1c]
sub ecx, eax
mov dword [ebp - 0x20], ecx
mov ebx, dword [ebp - 0x20]
lea ecx, [eax + edi]
movzx ecx, byte [ebx + ecx]
mov ebx, dword [ebp - 0x34]
mov dword [ebp + 0x1c], ecx
test ecx, ecx
je 0x4123f0
mov byte [eax + edi], cl
mov edx, 0x10
movzx ecx, word [esi - 2]
sub edx, ecx
mov ecx, dword [ebp - 0x28]
imul edx, dword [ebp + 0x1c]
shr edx, 4
add dl, byte [esi - 2]
mov byte [ecx + edi - 1], dl
mov edx, 0x10
mov ecx, dword [ebp + 0x18]
movzx ecx, word [ecx - 2]
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, dword [ebp + 0x1c]
shr edx, 4
add dl, byte [ecx - 2]
mov ecx, dword [ebp - 0x54]
mov byte [ecx + edi - 1], dl
mov edx, 0x10
movzx ecx, word [ebx + esi - 4]
sub edx, ecx
mov ecx, dword [ebp - 0x28]
imul edx, dword [ebp + 0x1c]
add ecx, ebx
shr edx, 4
add dl, byte [ebx + esi - 4]
mov byte [ecx + edi - 2], dl
mov edx, 0x10
movzx ecx, word [esi + ebx]
sub edx, ecx
mov ecx, dword [ebp - 0x28]
imul edx, dword [ebp + 0x1c]
add ecx, edi
shr edx, 4
add dl, byte [esi + ebx]
mov byte [ecx + ebx], dl
mov edx, 0x10
movzx ecx, word [esi - 4]
sub edx, ecx
mov ebx, dword [ebp - 0x54]
imul edx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x28]
shr edx, 4
add dl, byte [esi - 4]
mov byte [ecx + edi - 2], dl
mov edx, 0x10
movzx ecx, word [esi]
sub edx, ecx
mov ecx, dword [ebp - 0x28]
imul edx, dword [ebp + 0x1c]
shr edx, 4
add dl, byte [esi]
mov byte [ecx + edi], dl
mov edx, 0x10
mov ecx, dword [ebp + 0x18]
movzx ecx, word [ecx - 4]
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, dword [ebp + 0x1c]
shr edx, 4
add dl, byte [ecx - 4]
mov byte [ebx + edi - 2], dl
mov edx, 0x10
movzx ecx, word [ecx]
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, dword [ebp + 0x1c]
shr edx, 4
add dl, byte [ecx]
mov ecx, ebx
mov ebx, dword [ebp - 0x34]
mov byte [ecx + edi], dl
mov edx, dword [ebp + 0x18]
inc edi
add edx, 2
add esi, 2
mov dword [ebp + 0x18], edx
cmp edi, dword [ebp - 8]
jl 0x4122e2
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x54]
add esi, dword [ebp - 0x14]
add ecx, ebx
add edx, ebx
mov dword [ebp + 0x20], esi
add eax, ebx
mov dword [ebp - 0x28], ecx
sub dword [ebp - 0xc], 1
mov dword [ebp - 0x54], edx
jne 0x4122b0
jmp 0x4129d8
test edx, edx
je 0x4129db
mov ecx, edx
mov edx, dword [ebp - 8]
mov dword [ebp - 0xc], ecx
nop dword [eax]
xor edi, edi
mov dword [ebp - 0x10], edi
test edx, edx
je 0x412595
mov ecx, dword [ebp - 0x24]
inc ecx
lea edx, [eax + ecx*2]
mov ecx, eax
add edx, ebx
sub ecx, ebx
mov ebx, dword [ebp - 0x24]
mov dword [ebp + 0x18], edx
lea ecx, [ecx + ebx*2]
mov ebx, dword [ebp - 0x34]
add ecx, 2
mov dword [ebp + 0x1c], ecx
nop dword [eax]
movzx edi, byte [esi + edi]
test edi, edi
je 0x412573
mov edx, dword [ebp - 0x10]
mov word [eax + edx*2], di
mov edx, 0x10
movzx esi, word [ecx - 2]
mov ecx, esi
sub edx, ecx
mov ecx, dword [ebp + 0x1c]
imul edx, edi
shr edx, 4
add edx, esi
mov word [ecx - 2], dx
mov edx, 0x10
mov ecx, dword [ebp + 0x18]
movzx esi, word [ecx - 2]
mov ecx, esi
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, edi
shr edx, 4
add edx, esi
mov word [ecx - 2], dx
mov edx, 0x10
mov ecx, dword [ebp + 0x1c]
movzx esi, word [ebx + ecx - 4]
mov ecx, esi
sub edx, ecx
mov ecx, dword [ebp + 0x1c]
imul edx, edi
shr edx, 4
add edx, esi
movzx esi, word [ecx + ebx]
mov word [ebx + ecx - 4], dx
mov ecx, esi
mov edx, 0x10
sub edx, ecx
mov ecx, dword [ebp + 0x1c]
imul edx, edi
shr edx, 4
add edx, esi
mov word [ecx + ebx], dx
mov edx, 0x10
movzx esi, word [ecx - 4]
mov ecx, esi
sub edx, ecx
mov ecx, dword [ebp + 0x1c]
imul edx, edi
shr edx, 4
add edx, esi
mov word [ecx - 4], dx
mov edx, 0x10
movzx esi, word [ecx]
mov ecx, esi
sub edx, ecx
mov ecx, dword [ebp + 0x1c]
imul edx, edi
shr edx, 4
add edx, esi
mov word [ecx], dx
mov edx, 0x10
mov ecx, dword [ebp + 0x18]
movzx esi, word [ecx - 4]
mov ecx, esi
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, edi
shr edx, 4
add edx, esi
mov word [ecx - 4], dx
mov edx, 0x10
movzx esi, word [ecx]
mov ecx, esi
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, edi
shr edx, 4
add edx, esi
mov esi, dword [ebp + 0x20]
mov word [ecx], dx
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x10]
add ecx, 2
inc edi
mov dword [ebp + 0x1c], ecx
add edx, 2
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x18], edx
cmp edi, dword [ebp - 8]
jl 0x412470
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0xc], ecx
jne 0x412440
jmp 0x4129d8
cmp ecx, 4
mov ecx, dword [ebp + 8]
jg 0x4127cd
cmp byte [ecx + 0x9a125], 8
jne 0x4126c3
test edx, edx
je 0x4129db
mov ecx, edx
mov edx, dword [ebp - 8]
mov dword [ebp - 0x1c], ecx
xor edi, edi
mov dword [ebp - 0xc], edi
test edx, edx
je 0x4126a7
mov ecx, esi
sub ecx, eax
mov dword [ebp - 0x74], ecx
nop dword [eax + eax]
lea edx, [eax + edi]
movzx ecx, byte [ecx + edx]
mov dword [ebp - 0x48], ecx
test ecx, ecx
je 0x41268e
mov byte [edx], cl
mov ecx, dword [ebp - 0x38]
mov esi, ecx
neg esi
mov dword [ebp - 0x5c], esi
lea edx, [ecx + 1]
mov dword [ebp - 0x50], edx
cmp esi, edx
jge 0x41268e
mov ecx, esi
imul ecx, ebx
add ecx, eax
mov eax, dword [ebp - 0x64]
add ecx, dword [ebp - 0x24]
add ecx, edi
mov edi, edx
sub edi, esi
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x18], edi
cmp esi, edx
jge 0x412675
mov ebx, dword [ebp + 0x1c]
mov edi, eax
nop word [eax + eax]
cmp byte [edi], 0
je 0x412666
movzx edx, byte [ebx + esi]
mov ecx, 0x10
sub ecx, dword [ebp - 0x48]
sub edx, 0x10
imul edx, ecx
add edx, 0x100
shr edx, 4
mov byte [ebx + esi], dl
mov edx, dword [ebp - 0x50]
inc esi
inc edi
cmp esi, edx
jl 0x412640
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x18]
mov esi, dword [ebp - 0x5c]
add ecx, ebx
add eax, 9
mov dword [ebp + 0x1c], ecx
sub edi, 1
mov dword [ebp + 0x18], edi
jne 0x412631
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x74]
inc edi
mov dword [ebp - 0xc], edi
cmp edi, dword [ebp - 8]
jl 0x4125f0
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], ecx
jne 0x4125d7
jmp 0x4129d8
test edx, edx
je 0x4129db
mov ecx, edx
sub esi, edi
mov edx, dword [ebp - 8]
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x4c], ecx
xor edi, edi
mov dword [ebp + 0x18], edi
test edx, edx
je 0x4127b4
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x10], ecx
nop dword [eax + eax]
movzx edx, byte [esi + ecx]
mov dword [ebp - 0x20], edx
test edx, edx
je 0x41279e
mov word [eax + edi*2], dx
mov edx, dword [ebp - 0x38]
mov edi, edx
neg edi
inc edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x48], edx
cmp edi, edx
jge 0x41279b
mov esi, dword [ebp - 0x64]
mov ecx, edi
imul ecx, ebx
mov edi, edx
sub edi, dword [ebp - 0xc]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x2c], edi
mov dword [ebp + 0x1c], ecx
nop
mov edi, dword [ebp - 0xc]
cmp edi, edx
jge 0x412784
mov ebx, dword [ebp + 0x1c]
mov ecx, esi
mov dword [ebp - 0x1c], ecx
nop
cmp byte [ecx], 0
je 0x412772
mov ecx, dword [ebp - 0x10]
add ecx, edi
lea esi, [eax + ecx*2]
mov ecx, 0x10
movzx edx, word [esi + ebx]
sub ecx, dword [ebp - 0x20]
sub edx, 0x10
imul edx, ecx
mov ecx, dword [ebp - 0x1c]
add edx, 0x100
shr edx, 4
mov word [esi + ebx], dx
mov edx, dword [ebp - 0x48]
inc ecx
inc edi
mov dword [ebp - 0x1c], ecx
cmp edi, edx
jl 0x412740
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp - 0x40]
add esi, 9
add ecx, ebx
sub dword [ebp - 0x2c], 1
mov dword [ebp - 0x40], esi
mov dword [ebp + 0x1c], ecx
jne 0x412730
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp - 8]
inc edi
inc ecx
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x10], ecx
cmp edi, edx
jl 0x4126f0
mov ecx, dword [ebp - 0x4c]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x4c], ecx
jne 0x4126d8
jmp 0x4129d8
cmp byte [ecx + 0x9a125], 8
jne 0x4128d3
test edx, edx
je 0x4129db
mov ecx, edx
mov edx, dword [ebp - 8]
mov dword [ebp - 0x1c], ecx
nop word [eax + eax]
xor edi, edi
mov dword [ebp - 0xc], edi
test edx, edx
je 0x4128b7
mov ecx, esi
sub ecx, eax
mov dword [ebp - 0x74], ecx
lea edx, [eax + edi]
movzx ecx, byte [ecx + edx]
mov dword [ebp - 0x48], ecx
test ecx, ecx
je 0x41289e
mov byte [edx], cl
mov ecx, dword [ebp - 0x38]
mov esi, ecx
neg esi
mov dword [ebp - 0x5c], esi
lea edx, [ecx + 1]
mov dword [ebp - 0x50], edx
cmp esi, edx
jge 0x41289e
mov ecx, esi
imul ecx, ebx
add ecx, eax
mov eax, dword [ebp - 0x54]
add ecx, dword [ebp - 0x24]
add ecx, edi
mov edi, edx
sub edi, esi
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x18], edi
cmp esi, edx
jge 0x412885
mov ebx, dword [ebp + 0x1c]
mov edi, eax
nop
cmp byte [edi], 0
je 0x412876
movzx edx, byte [ebx + esi]
mov ecx, 0x10
sub ecx, dword [ebp - 0x48]
sub edx, 0x10
imul edx, ecx
add edx, 0x100
shr edx, 4
mov byte [ebx + esi], dl
mov edx, dword [ebp - 0x50]
inc esi
inc edi
cmp esi, edx
jl 0x412850
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x18]
add eax, dword [ebp - 0x28]
add ecx, ebx
mov esi, dword [ebp - 0x5c]
sub edi, 1
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x18], edi
jne 0x412845
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x74]
inc edi
mov dword [ebp - 0xc], edi
cmp edi, dword [ebp - 8]
jl 0x412804
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], ecx
jne 0x4127f0
jmp 0x4129d8
test edx, edx
je 0x4129db
mov ecx, edx
sub esi, edi
mov edx, dword [ebp - 8]
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x4c], ecx
xor edi, edi
mov dword [ebp + 0x18], edi
test edx, edx
je 0x4129c4
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x10], ecx
nop dword [eax + eax]
movzx edx, byte [esi + ecx]
mov dword [ebp - 0x20], edx
test edx, edx
je 0x4129ae
mov word [eax + edi*2], dx
mov edx, dword [ebp - 0x38]
mov edi, edx
neg edi
inc edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x48], edx
cmp edi, edx
jge 0x4129ab
mov esi, dword [ebp - 0x54]
mov ecx, edi
imul ecx, ebx
mov edi, edx
sub edi, dword [ebp - 0xc]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x2c], edi
mov dword [ebp + 0x1c], ecx
nop
mov edi, dword [ebp - 0xc]
cmp edi, edx
jge 0x412994
mov ebx, dword [ebp + 0x1c]
mov ecx, esi
mov dword [ebp - 0x1c], ecx
nop
cmp byte [ecx], 0
je 0x412982
mov ecx, dword [ebp - 0x10]
add ecx, edi
lea esi, [ebx + ecx*2]
mov ecx, 0x10
movzx edx, word [esi + eax]
sub ecx, dword [ebp - 0x20]
sub edx, 0x10
imul edx, ecx
mov ecx, dword [ebp - 0x1c]
add edx, 0x100
shr edx, 4
mov word [esi + eax], dx
mov edx, dword [ebp - 0x48]
inc ecx
inc edi
mov dword [ebp - 0x1c], ecx
cmp edi, edx
jl 0x412950
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp - 0x40]
add esi, dword [ebp - 0x28]
add ecx, ebx
sub dword [ebp - 0x2c], 1
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x40], esi
jne 0x412940
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp - 8]
inc edi
inc ecx
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x10], ecx
cmp edi, edx
jl 0x412900
mov ecx, dword [ebp - 0x4c]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x4c], ecx
jne 0x4128e8
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
cmp byte [eax + 0x9a125], 8
jne 0x412adc
mov ecx, dword [ebp - 0x3c]
mov eax, ebx
imul eax, dword [ebp - 0x6c]
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x58]
add esi, edx
sub ecx, eax
sub ecx, dword [ebp - 0x30]
cmp dword [edi + 0x9a144], 0xf
mov dword [ebp - 0x3c], ecx
jne 0x412a76
test esi, esi
jle 0x411a1d
mov edi, dword [ebp - 8]
add edi, dword [ebp - 0x58]
nop dword [eax + eax]
test edi, edi
jle 0x412a4a
mov ebx, dword [ebp - 0x24]
mov eax, ecx
mov edx, edi
nop dword [eax + eax]
mov cl, byte [eax]
cmp cl, 0x10
jne 0x412a59
mov byte [eax], 0xf
mov byte [eax + ebx], 0
inc eax
sub edx, 1
jne 0x412a30
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
add ecx, ebx
mov dword [ebp - 0x3c], ecx
sub esi, 1
jne 0x412a20
jmp case.0x411419.1
test cl, cl
je 0x412a64
sub cl, 1
mov byte [eax], cl
jmp 0x412a67
mov byte [eax], 0
mov cl, byte [eax + ebx]
test cl, cl
je 0x412a3a
sub cl, 1
mov byte [eax + ebx], cl
jmp 0x412a3e
test esi, esi
jle 0x411a1d
mov edi, dword [ebp - 8]
add edi, dword [ebp - 0x58]
test edi, edi
jle 0x412aaa
mov ebx, dword [ebp - 0x24]
mov eax, ecx
mov edx, edi
nop
mov cl, byte [eax]
cmp cl, 0x10
jne 0x412ab9
mov byte [eax], 0xff
mov byte [ebx + eax], 0
inc eax
sub edx, 1
jne 0x412a90
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
add ecx, ebx
mov dword [ebp - 0x3c], ecx
sub esi, 1
jne 0x412a84
jmp case.0x411419.1
test cl, cl
je 0x412ac7
shl cl, 4
sub cl, 1
mov byte [eax], cl
jmp 0x412aca
mov byte [eax], 0
mov cl, byte [ebx + eax]
test cl, cl
je 0x412a9a
shl cl, 4
sub cl, 1
mov byte [ebx + eax], cl
jmp 0x412a9e
mov cl, byte [eax + 0x9a12f]
mov esi, dword [ebp - 0x30]
sub cl, 4
add cl, byte [eax + 0x9a12b]
neg esi
mov eax, ebx
add esi, esi
imul eax, dword [ebp - 0x6c]
sub esi, eax
mov eax, dword [ebp + 8]
add esi, dword [ebp - 0x3c]
mov dword [ebp - 0x30], esi
cmp dword [eax + 0x9a564], 0
je 0x412c5e
add edx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x34]
mov dword [ebp - 0x10], edx
test edx, edx
jle 0x413f9b
movzx eax, byte [eax + 0x9a12e]
mov edi, dword [ebp + 8]
sub al, 4
add al, byte [edi + 0x9a12a]
movzx eax, al
mov dword [ebp + 0x18], eax
mov eax, edi
movzx eax, byte [eax + 0x9a12d]
sub al, 4
add al, byte [edi + 0x9a129]
movzx eax, al
mov dword [ebp - 0xc], eax
mov eax, edi
movzx eax, byte [eax + 0x9a12c]
sub al, 4
add al, byte [edi + 0x9a128]
mov edi, dword [ebp - 0x24]
movzx eax, al
mov dword [ebp - 0x1c], eax
movzx eax, cl
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 8]
mov dword [ebp - 0x40], eax
xor eax, eax
mov dword [ebp + 0x1c], eax
test ecx, ecx
jle 0x412c45
mov edx, dword [ebp - 8]
lea edi, [esi + edi*2]
mov ebx, 0xffff
nop
lea ecx, [esi + eax*2]
movzx esi, word [ecx]
mov dword [ebp - 0x20], ecx
cmp esi, 0x10
jne 0x412bab
mov word [ecx], bx
xor ecx, ecx
mov word [edi], cx
jmp 0x412c28
test si, si
je 0x412be3
mov ecx, dword [ebp + 0x18]
mov dx, si
shl dx, cl
mov ax, si
mov ecx, dword [ebp - 0xc]
shl ax, cl
mov ecx, dword [ebp - 0x1c]
or dx, ax
mov ax, si
shl ax, cl
mov ecx, dword [ebp - 0x40]
or dx, ax
mov eax, dword [ebp - 0x20]
shl si, cl
or dx, si
mov word [eax], dx
mov eax, dword [ebp + 0x1c]
movzx esi, word [edi]
cmp esi, 0x10
jne 0x412bf0
mov word [edi], bx
jmp 0x412c25
test si, si
je 0x412c25
mov ecx, dword [ebp + 0x18]
mov dx, si
shl dx, cl
mov ax, si
mov ecx, dword [ebp - 0xc]
shl ax, cl
mov ecx, dword [ebp - 0x1c]
or dx, ax
mov ax, si
shl ax, cl
mov ecx, dword [ebp - 0x40]
or dx, ax
mov eax, dword [ebp + 0x1c]
shl si, cl
or dx, si
mov word [edi], dx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x58]
inc eax
mov esi, dword [ebp - 0x30]
add ecx, edx
add edi, 2
mov dword [ebp + 0x1c], eax
cmp eax, ecx
jl 0x412b90
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x24]
add esi, ebx
sub edx, 1
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x10], edx
jne 0x412b76
jmp case.0x411419.1
mov esi, dword [ebp - 0x58]
lea eax, [edx + esi]
mov dword [ebp + 0x1c], eax
test eax, eax
jle case.0x411419.1
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0x30]
add edi, esi
movzx ecx, cl
nop word [eax + eax]
xor esi, esi
test edi, edi
jle 0x412cbd
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x30]
lea edx, [edx + eax*2]
nop
movzx eax, word [ebx + esi*2]
cmp eax, 0x10
jne 0x412ccf
shl ax, cl
dec ax
or ax, word [ebp - 0x44]
mov word [ebx + esi*2], ax
mov eax, dword [ebp - 0x44]
mov word [edx], ax
inc esi
add edx, 2
cmp esi, edi
jl 0x412c90
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x30]
add edx, ebx
sub eax, 1
mov dword [ebp - 0x30], edx
mov dword [ebp + 0x1c], eax
jne 0x412c80
jmp case.0x411419.1
test ax, ax
je 0x412cdf
shl ax, cl
dec ax
or ax, word [ebp - 0x44]
jmp 0x412ce2
mov eax, dword [ebp - 0x44]
mov word [ebx + esi*2], ax
movzx eax, word [edx]
test ax, ax
je 0x412ca6
shl ax, cl
dec ax
or ax, word [ebp - 0x44]
jmp 0x412ca9
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
cmp ecx, 1
jne 0x412ff8
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0x9a125], 8
jne 0x412ea3
test edx, edx
je 0x4133fe
mov edx, dword [ebp - 0x3c]
inc edi
mov ecx, dword [ebp - 0x24]
add edi, edx
sub ecx, ebx
add edi, ebx
inc edx
mov dword [ebp - 0x28], edi
add edx, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp + 0x18], edx
mov dword [ebp - 0xc], ecx
nop dword [eax]
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 8], ecx
jbe 0x412e82
mov edi, dword [ebp - 0x34]
mov ecx, esi
mov esi, dword [ebp - 0x10]
sub ecx, eax
mov dword [ebp - 0x20], ecx
nop dword [eax + eax]
lea ebx, [eax + esi]
movzx ecx, byte [ecx + ebx]
mov dword [ebp + 0x1c], ecx
test ecx, ecx
je 0x412e69
mov byte [ebx], cl
mov bl, byte [esi + edx - 1]
mov edx, 0x40
movzx ecx, bl
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, dword [ebp + 0x1c]
shr edx, 6
add dl, bl
mov byte [esi + ecx - 1], dl
mov edx, 0x40
mov ecx, dword [ebp - 0x28]
mov bl, byte [esi + ecx - 1]
movzx ecx, bl
sub edx, ecx
mov ecx, dword [ebp - 0x28]
imul edx, dword [ebp + 0x1c]
shr edx, 6
add dl, bl
mov byte [esi + ecx - 1], dl
add esi, 0xfffffffe
add esi, edi
mov edx, 0x40
add esi, dword [ebp + 0x18]
movzx ecx, byte [esi]
sub edx, ecx
imul edx, dword [ebp + 0x1c]
shr edx, 6
add byte [esi], dl
mov edx, 0x40
mov esi, dword [ebp - 0x10]
add esi, edi
add esi, dword [ebp + 0x18]
movzx ecx, byte [esi]
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, dword [ebp + 0x1c]
shr edx, 6
add byte [esi], dl
mov edx, 0x40
mov esi, dword [ebp - 0x10]
mov bl, byte [esi + ecx - 2]
movzx ecx, bl
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, dword [ebp + 0x1c]
shr edx, 6
add dl, bl
mov bl, byte [esi + ecx]
mov byte [esi + ecx - 2], dl
mov edx, 0x40
movzx ecx, bl
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, dword [ebp + 0x1c]
shr edx, 6
add dl, bl
mov byte [esi + ecx], dl
mov edx, 0x40
mov ecx, dword [ebp - 0x28]
mov bl, byte [esi + ecx - 2]
movzx ecx, bl
sub edx, ecx
mov ecx, dword [ebp - 0x28]
imul edx, dword [ebp + 0x1c]
shr edx, 6
add dl, bl
mov bl, byte [esi + ecx]
mov byte [esi + ecx - 2], dl
mov edx, 0x40
movzx ecx, bl
sub edx, ecx
mov ecx, dword [ebp - 0x28]
imul edx, dword [ebp + 0x1c]
shr edx, 6
add dl, bl
mov byte [esi + ecx], dl
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x10], esi
cmp esi, dword [ebp - 8]
jl 0x412d60
mov ebx, dword [ebp - 0x34]
mov esi, dword [ebp + 0x20]
mov edi, dword [ebp - 0x28]
add esi, dword [ebp - 0x14]
add edx, ebx
add edi, ebx
mov dword [ebp + 0x20], esi
add eax, ebx
mov dword [ebp + 0x18], edx
sub dword [ebp - 0xc], 1
mov dword [ebp - 0x28], edi
jne 0x412d40
jmp 0x4133fb
test edx, edx
je 0x4133fe
mov ecx, edx
mov edx, dword [ebp - 8]
mov dword [ebp - 0xc], ecx
xor edi, edi
mov dword [ebp - 0x10], edi
test edx, edx
je 0x412fe2
mov ecx, dword [ebp - 0x24]
lea edx, [ecx*4]
lea ecx, [edx + 4]
sub edx, ebx
add ecx, eax
add ecx, ebx
mov dword [ebp + 0x18], ecx
lea ecx, [edx + 4]
mov edx, dword [ebp + 0x18]
add ecx, eax
mov dword [ebp + 0x1c], ecx
movzx edi, byte [esi + edi]
test edi, edi
je 0x412fc0
mov edx, dword [ebp - 0x10]
mov dword [eax + edx*4], edi
mov edx, 0x40
mov ecx, dword [ecx - 4]
sub edx, ecx
imul edx, edi
shr edx, 6
add edx, ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ecx - 4], edx
mov edx, 0x40
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx - 4]
sub edx, ecx
imul edx, edi
shr edx, 6
add edx, ecx
mov ecx, dword [ebp + 0x18]
mov dword [ecx - 4], edx
mov edx, 0x40
mov ecx, dword [ebp + 0x1c]
mov ecx, dword [ebx + ecx - 8]
sub edx, ecx
imul edx, edi
shr edx, 6
add edx, ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ebx + ecx - 8], edx
mov edx, 0x40
mov ecx, dword [ebx + ecx]
sub edx, ecx
imul edx, edi
shr edx, 6
add edx, ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ebx + ecx], edx
mov edx, 0x40
mov ecx, dword [ecx - 8]
sub edx, ecx
imul edx, edi
shr edx, 6
add edx, ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ecx - 8], edx
mov edx, 0x40
mov ecx, dword [ecx]
sub edx, ecx
imul edx, edi
shr edx, 6
add edx, ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], edx
mov edx, 0x40
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx - 8]
sub edx, ecx
imul edx, edi
shr edx, 6
add edx, ecx
mov ecx, dword [ebp + 0x18]
mov dword [ecx - 8], edx
mov edx, 0x40
mov ecx, dword [ecx]
sub edx, ecx
imul edx, edi
shr edx, 6
add edx, ecx
mov ecx, dword [ebp + 0x18]
mov dword [ecx], edx
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x10]
add ecx, 4
inc edi
mov dword [ebp + 0x1c], ecx
add edx, 4
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x18], edx
cmp edi, dword [ebp - 8]
jl 0x412ee1
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp - 0xc], ecx
jne 0x412eb3
jmp 0x4133fb
cmp ecx, 4
mov ecx, dword [ebp + 8]
jg 0x413200
cmp byte [ecx + 0x9a125], 8
jne 0x413100
mov edi, dword [ebp - 8]
test edx, edx
je 0x413401
mov dword [ebp - 0x40], edx
nop
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
test edi, edi
je 0x4130e1
sub esi, eax
mov dword [ebp - 0x1c], esi
lea edx, [eax + ecx]
movzx ecx, byte [esi + edx]
mov dword [ebp - 0x48], ecx
test ecx, ecx
je 0x4130cc
mov byte [edx], cl
mov ecx, dword [ebp - 0x38]
mov esi, ecx
neg esi
mov dword [ebp - 0x5c], esi
lea edx, [ecx + 1]
mov dword [ebp - 0x50], edx
cmp esi, edx
jge 0x4130c9
mov edi, dword [ebp - 0x64]
mov ecx, esi
imul ecx, ebx
mov dword [ebp + 0x18], edi
add ecx, eax
mov eax, ecx
mov dword [ebp - 0x20], ecx
add eax, dword [ebp - 0x24]
mov ecx, edx
add eax, dword [ebp + 0x1c]
sub ecx, esi
mov dword [ebp - 0xc], ecx
nop dword [eax]
cmp esi, edx
jge 0x4130b0
cmp byte [edi], 0
je 0x4130a1
movzx ecx, byte [eax + esi]
mov edx, 0x40
sub edx, ecx
imul edx, dword [ebp - 0x48]
shr edx, 6
add byte [eax + esi], dl
mov edx, dword [ebp - 0x50]
inc esi
inc edi
cmp esi, edx
jl 0x413084
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp + 0x18]
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x5c]
add edi, 9
add eax, ebx
mov dword [ebp + 0x18], edi
sub ecx, 1
mov dword [ebp - 0xc], ecx
jne 0x413080
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x1c]
inc ecx
mov dword [ebp + 0x1c], ecx
cmp ecx, edi
jl 0x413032
mov esi, dword [ebp + 0x20]
mov edx, dword [ebp - 0x40]
add esi, dword [ebp - 0x14]
add eax, ebx
sub edx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x40], edx
jne 0x413020
mov edx, dword [ebp - 4]
jmp 0x413401
test edx, edx
je 0x4133fe
mov ecx, edx
sub esi, edi
mov edx, dword [ebp - 8]
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x4c], ecx
xor edi, edi
mov dword [ebp + 0x18], edi
test edx, edx
je 0x4131e7
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x10], ecx
nop dword [eax + eax]
movzx edx, byte [esi + ecx]
mov dword [ebp - 0x20], edx
test edx, edx
je 0x4131d1
mov dword [eax + edi*4], edx
mov edx, dword [ebp - 0x38]
mov edi, edx
neg edi
inc edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x48], edx
cmp edi, edx
jge 0x4131ce
mov esi, dword [ebp - 0x64]
mov ecx, edi
imul ecx, ebx
mov edi, edx
sub edi, dword [ebp - 0xc]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x2c], edi
mov dword [ebp + 0x1c], ecx
nop word [eax + eax]
mov edi, dword [ebp - 0xc]
cmp edi, edx
jge 0x4131b7
mov ebx, dword [ebp + 0x1c]
mov ecx, esi
mov dword [ebp - 0x1c], ecx
nop
cmp byte [ecx], 0
je 0x4131a5
mov ecx, dword [ebp - 0x10]
mov edx, 0x40
add ecx, edi
lea esi, [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
sub edx, dword [esi + ebx]
imul edx, dword [ebp - 0x20]
shr edx, 6
add dword [esi + ebx], edx
mov edx, dword [ebp - 0x48]
inc ecx
inc edi
mov dword [ebp - 0x1c], ecx
cmp edi, edx
jl 0x413180
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp - 0x40]
add esi, 9
add ecx, ebx
sub dword [ebp - 0x2c], 1
mov dword [ebp - 0x40], esi
mov dword [ebp + 0x1c], ecx
jne 0x413170
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp - 8]
inc edi
inc ecx
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x10], ecx
cmp edi, edx
jl 0x413130
mov ecx, dword [ebp - 0x4c]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x4c], ecx
jne 0x413115
jmp 0x4133fb
cmp byte [ecx + 0x9a125], 8
jne 0x413300
mov edi, dword [ebp - 8]
test edx, edx
je 0x413401
mov dword [ebp - 0x40], edx
nop dword [eax + eax]
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
test edi, edi
je 0x4132e1
sub esi, eax
mov dword [ebp - 0x1c], esi
lea edx, [eax + ecx]
movzx ecx, byte [esi + edx]
mov dword [ebp - 0x48], ecx
test ecx, ecx
je 0x4132cc
mov byte [edx], cl
mov ecx, dword [ebp - 0x38]
mov esi, ecx
neg esi
mov dword [ebp - 0x5c], esi
lea edx, [ecx + 1]
mov dword [ebp - 0x50], edx
cmp esi, edx
jge 0x4132c9
mov edi, dword [ebp - 0x54]
mov ecx, esi
imul ecx, ebx
mov dword [ebp + 0x18], edi
add ecx, eax
mov eax, ecx
mov dword [ebp - 0x20], ecx
add eax, dword [ebp - 0x24]
mov ecx, edx
add eax, dword [ebp + 0x1c]
sub ecx, esi
mov dword [ebp - 0xc], ecx
nop dword [eax]
cmp esi, edx
jge 0x4132b0
cmp byte [edi], 0
je 0x4132a1
movzx ecx, byte [eax + esi]
mov edx, 0x40
sub edx, ecx
imul edx, dword [ebp - 0x48]
shr edx, 6
add byte [eax + esi], dl
mov edx, dword [ebp - 0x50]
inc esi
inc edi
cmp esi, edx
jl 0x413284
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp + 0x18]
mov ecx, dword [ebp - 0xc]
add edi, dword [ebp - 0x28]
add eax, ebx
mov esi, dword [ebp - 0x5c]
sub ecx, 1
mov dword [ebp + 0x18], edi
mov dword [ebp - 0xc], ecx
jne 0x413280
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x1c]
inc ecx
mov dword [ebp + 0x1c], ecx
cmp ecx, edi
jl 0x413232
mov esi, dword [ebp + 0x20]
mov edx, dword [ebp - 0x40]
add esi, dword [ebp - 0x14]
add eax, ebx
sub edx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x40], edx
jne 0x413220
mov edx, dword [ebp - 4]
jmp 0x413401
test edx, edx
je 0x4133fe
mov ecx, edx
sub esi, edi
mov edx, dword [ebp - 8]
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x4c], ecx
xor edi, edi
mov dword [ebp + 0x18], edi
test edx, edx
je 0x4133e7
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x10], ecx
nop dword [eax + eax]
movzx edx, byte [esi + ecx]
mov dword [ebp - 0x20], edx
test edx, edx
je 0x4133d1
mov dword [eax + edi*4], edx
mov edx, dword [ebp - 0x38]
mov edi, edx
neg edi
inc edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x48], edx
cmp edi, edx
jge 0x4133ce
mov esi, dword [ebp - 0x54]
mov ecx, edi
imul ecx, ebx
mov edi, edx
sub edi, dword [ebp - 0xc]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x2c], edi
mov dword [ebp + 0x1c], ecx
nop word [eax + eax]
mov edi, dword [ebp - 0xc]
cmp edi, edx
jge 0x4133b7
mov ebx, dword [ebp + 0x1c]
mov ecx, esi
mov dword [ebp - 0x1c], ecx
nop
cmp byte [ecx], 0
je 0x4133a5
mov ecx, dword [ebp - 0x10]
mov edx, 0x40
add ecx, edi
lea esi, [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
sub edx, dword [esi + ebx]
imul edx, dword [ebp - 0x20]
shr edx, 6
add dword [esi + ebx], edx
mov edx, dword [ebp - 0x48]
inc ecx
inc edi
mov dword [ebp - 0x1c], ecx
cmp edi, edx
jl 0x413380
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp - 0x40]
add esi, dword [ebp - 0x28]
add ecx, ebx
sub dword [ebp - 0x2c], 1
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x40], esi
jne 0x413370
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp - 8]
inc edi
inc ecx
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x10], ecx
cmp edi, edx
jl 0x413330
mov ecx, dword [ebp - 0x4c]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x4c], ecx
jne 0x413315
mov edx, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esi, dword [ebp + 8]
mov eax, ebx
imul eax, dword [ebp - 0x6c]
cmp byte [esi + 0x9a125], 8
jne 0x4134f8
mov ecx, dword [ebp - 0x3c]
sub ecx, eax
sub ecx, dword [ebp - 0x30]
cmp dword [esi + 0x9a144], 0xf
mov dword [ebp - 0x3c], ecx
jne 0x413496
mov eax, dword [ebp - 0x58]
lea esi, [edx + eax]
test esi, esi
jle case.0x411419.1
add edi, eax
nop dword [eax + eax]
test edi, edi
jle 0x41346a
mov ebx, dword [ebp - 0x24]
mov eax, ecx
mov edx, edi
nop dword [eax + eax]
mov cl, byte [eax]
cmp cl, 0x40
jne 0x413479
mov byte [eax], 0xf
mov byte [eax + ebx], 0
inc eax
sub edx, 1
jne 0x413450
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
add ecx, ebx
mov dword [ebp - 0x3c], ecx
sub esi, 1
jne 0x413440
jmp case.0x411419.1
test cl, cl
je 0x413484
shr cl, 2
mov byte [eax], cl
jmp 0x413487
mov byte [eax], 0
mov cl, byte [eax + ebx]
test cl, cl
je 0x41345a
shr cl, 2
mov byte [eax + ebx], cl
jmp 0x41345e
mov esi, dword [ebp - 0x58]
lea edi, [edx + esi]
test edi, edi
jle case.0x411419.1
mov edx, dword [ebp - 0x24]
add esi, dword [ebp - 8]
add edx, ecx
mov eax, dword [ebp - 0x3c]
nop
xor ecx, ecx
test esi, esi
jle 0x4134e7
mov ebx, dword [ebp - 0x3c]
nop dword [eax]
movzx eax, byte [ebx + ecx]
movzx eax, byte [eax + 0x73c730]
mov byte [ebx + ecx], al
movzx eax, byte [edx + ecx]
movzx eax, byte [eax + 0x73c730]
mov byte [edx + ecx], al
inc ecx
cmp ecx, esi
jl 0x4134c0
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
add eax, ebx
add edx, ebx
mov dword [ebp - 0x3c], eax
sub edi, 1
jne 0x4134b0
jmp case.0x411419.1
mov ecx, dword [ebp - 0x30]
neg ecx
shl ecx, 2
sub ecx, eax
add ecx, dword [ebp - 0x3c]
cmp dword [esi + 0x9a564], 0
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x30], ecx
je 0x413638
add edx, esi
mov dword [ebp - 0xc], edx
test edx, edx
jle case.0x411419.1
lea ecx, [edi + esi]
mov esi, dword [ebp - 0x30]
mov dword [ebp + 0x18], ecx
nop
xor eax, eax
mov dword [ebp + 0x1c], eax
test ecx, ecx
jle 0x413622
mov ecx, dword [ebp - 0x24]
mov ebx, dword [ebp + 0x18]
lea edi, [esi + ecx*4]
mov ecx, dword [esi + eax*4]
lea edx, [esi + eax*4]
mov dword [ebp - 0x20], edx
cmp ecx, 0x40
jne 0x413565
mov dword [edx], 0xffffffff
mov dword [edi], 0
jmp 0x413607
test ecx, ecx
je 0x4135b0
movzx esi, byte [ecx + 0x73c730]
mov eax, dword [ebp + 8]
mov edx, esi
mov cl, byte [eax + 0x9a12f]
mov eax, esi
shl edx, cl
mov ecx, dword [ebp + 8]
mov cl, byte [ecx + 0x9a12e]
shl eax, cl
mov ecx, dword [ebp + 8]
or edx, eax
mov eax, esi
mov cl, byte [ecx + 0x9a12d]
shl eax, cl
or edx, eax
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x9a12c]
mov eax, dword [ebp - 0x20]
shl esi, cl
or edx, esi
mov dword [eax], edx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [edi]
cmp ecx, 0x40
jne 0x4135bf
mov dword [edi], 0xffffffff
jmp 0x413607
test ecx, ecx
je 0x413607
movzx esi, byte [ecx + 0x73c730]
mov eax, dword [ebp + 8]
mov edx, esi
mov cl, byte [eax + 0x9a12f]
mov eax, esi
shl edx, cl
mov ecx, dword [ebp + 8]
mov cl, byte [ecx + 0x9a12e]
shl eax, cl
mov ecx, dword [ebp + 8]
or edx, eax
mov eax, esi
mov cl, byte [ecx + 0x9a12d]
shl eax, cl
or edx, eax
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x9a12c]
mov eax, dword [ebp + 0x1c]
shl esi, cl
or edx, esi
mov dword [edi], edx
mov esi, dword [ebp - 0x30]
inc eax
add edi, 4
mov dword [ebp + 0x1c], eax
cmp eax, ebx
jl 0x413546
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
add esi, ebx
sub edx, 1
mov dword [ebp - 0x30], esi
mov dword [ebp - 0xc], edx
jne 0x413530
jmp case.0x411419.1
lea eax, [edx + esi]
mov dword [ebp + 0x1c], eax
test eax, eax
jle case.0x411419.1
add edi, esi
xor esi, esi
test edi, edi
jle 0x413678
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x78]
lea edx, [ecx + eax*4]
mov eax, dword [ecx + esi*4]
cmp eax, 0x40
jne 0x41368a
mov dword [ecx + esi*4], ebx
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x30]
inc esi
mov dword [edx], eax
add edx, 4
cmp esi, edi
jl 0x413657
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp + 0x1c]
add ecx, ebx
sub eax, 1
mov dword [ebp - 0x30], ecx
mov dword [ebp + 0x1c], eax
jne 0x413648
jmp case.0x411419.1
test eax, eax
je 0x4136a8
mov ecx, dword [ebp + 8]
movzx eax, byte [eax + 0x73c730]
mov cl, byte [ecx + 0x9a12f]
shl eax, cl
or eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x30]
jmp 0x4136ab
mov eax, dword [ebp - 0x44]
mov dword [ecx + esi*4], eax
mov eax, dword [edx]
test eax, eax
je 0x413662
mov ecx, dword [ebp + 8]
movzx eax, byte [eax + 0x73c730]
mov cl, byte [ecx + 0x9a12f]
shl eax, cl
or eax, dword [ebp - 0x44]
jmp 0x413665
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 4]
cmp ecx, 1
jne 0x4139ca
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0x9a125], 8
jne 0x413875
test edx, edx
je 0x413dd1
mov edx, dword [ebp - 0x3c]
inc edi
mov ecx, dword [ebp - 0x24]
add edi, edx
sub ecx, ebx
add edi, ebx
inc edx
mov dword [ebp - 0x28], edi
add edx, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp + 0x18], edx
mov dword [ebp - 0xc], ecx
nop
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 8], ecx
jbe 0x413854
mov edi, dword [ebp - 0x34]
mov ecx, esi
mov esi, dword [ebp - 0x10]
sub ecx, eax
mov dword [ebp - 0x20], ecx
nop dword [eax + eax]
lea ebx, [eax + esi]
movzx ecx, byte [ecx + ebx]
mov dword [ebp + 0x1c], ecx
test ecx, ecx
je 0x41383b
mov byte [ebx], cl
mov bl, byte [edx + esi - 1]
mov edx, 0xff
movzx ecx, bl
sub edx, ecx
mov ecx, dword [ebp - 0x28]
imul edx, dword [ebp + 0x1c]
shr edx, 8
add dl, bl
mov ebx, dword [ebp + 0x18]
mov byte [ebx + esi - 1], dl
mov edx, 0xff
mov bl, byte [ecx + esi - 1]
movzx ecx, bl
sub edx, ecx
mov ecx, dword [ebp - 0x28]
imul edx, dword [ebp + 0x1c]
shr edx, 8
add dl, bl
mov byte [ecx + esi - 1], dl
mov edx, 0xff
mov ecx, dword [ebp + 0x18]
add ecx, 0xfffffffe
add ecx, edi
add esi, ecx
movzx ecx, byte [esi]
sub edx, ecx
imul edx, dword [ebp + 0x1c]
shr edx, 8
add byte [esi], dl
mov edx, 0xff
mov esi, dword [ebp - 0x10]
add esi, dword [ebp + 0x18]
movzx ecx, byte [esi + edi]
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, dword [ebp + 0x1c]
shr edx, 8
add byte [esi + edi], dl
mov edx, 0xff
mov esi, dword [ebp - 0x10]
mov bl, byte [ecx + esi - 2]
movzx ecx, bl
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, dword [ebp + 0x1c]
shr edx, 8
add dl, bl
mov bl, byte [ecx + esi]
mov byte [ecx + esi - 2], dl
mov edx, 0xff
movzx ecx, bl
sub edx, ecx
mov ecx, dword [ebp + 0x18]
imul edx, dword [ebp + 0x1c]
shr edx, 8
add dl, bl
mov byte [ecx + esi], dl
mov edx, 0xff
mov ecx, dword [ebp - 0x28]
mov bl, byte [ecx + esi - 2]
movzx ecx, bl
sub edx, ecx
mov ecx, dword [ebp - 0x28]
imul edx, dword [ebp + 0x1c]
shr edx, 8
add dl, bl
mov bl, byte [ecx + esi]
mov byte [ecx + esi - 2], dl
mov edx, 0xff
movzx ecx, bl
sub edx, ecx
mov ecx, dword [ebp - 0x28]
imul edx, dword [ebp + 0x1c]
shr edx, 8
add dl, bl
mov byte [ecx + esi], dl
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x10], esi
cmp esi, dword [ebp - 8]
jl 0x413730
mov ebx, dword [ebp - 0x34]
mov esi, dword [ebp + 0x20]
mov edi, dword [ebp - 0x28]
add esi, dword [ebp - 0x14]
add edx, ebx
add edi, ebx
mov dword [ebp + 0x20], esi
add eax, ebx
mov dword [ebp + 0x18], edx
sub dword [ebp - 0xc], 1
mov dword [ebp - 0x28], edi
jne 0x413710
jmp 0x413dcb
test edx, edx
je 0x413dd1
mov ecx, edx
mov edx, dword [ebp - 8]
mov dword [ebp - 0xc], ecx
xor edi, edi
mov dword [ebp - 0x10], edi
test edx, edx
je 0x4139b4
mov ecx, dword [ebp - 0x24]
lea edx, [ecx*4]
lea ecx, [edx + 4]
sub edx, ebx
add ecx, eax
add ecx, ebx
mov dword [ebp + 0x18], ecx
lea ecx, [edx + 4]
mov edx, dword [ebp + 0x18]
add ecx, eax
mov dword [ebp + 0x1c], ecx
movzx edi, byte [esi + edi]
test edi, edi
je 0x413992
mov edx, dword [ebp - 0x10]
mov dword [eax + edx*4], edi
mov edx, 0xff
mov ecx, dword [ecx - 4]
sub edx, ecx
imul edx, edi
shr edx, 8
add edx, ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ecx - 4], edx
mov edx, 0xff
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx - 4]
sub edx, ecx
imul edx, edi
shr edx, 8
add edx, ecx
mov ecx, dword [ebp + 0x18]
mov dword [ecx - 4], edx
mov edx, 0xff
mov ecx, dword [ebp + 0x1c]
mov ecx, dword [ecx + ebx - 8]
sub edx, ecx
imul edx, edi
shr edx, 8
add edx, ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ecx + ebx - 8], edx
mov edx, 0xff
mov ecx, dword [ecx + ebx]
sub edx, ecx
imul edx, edi
shr edx, 8
add edx, ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ecx + ebx], edx
mov edx, 0xff
mov ecx, dword [ecx - 8]
sub edx, ecx
imul edx, edi
shr edx, 8
add edx, ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ecx - 8], edx
mov edx, 0xff
mov ecx, dword [ecx]
sub edx, ecx
imul edx, edi
shr edx, 8
add edx, ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], edx
mov edx, 0xff
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx - 8]
sub edx, ecx
imul edx, edi
shr edx, 8
add edx, ecx
mov ecx, dword [ebp + 0x18]
mov dword [ecx - 8], edx
mov edx, 0xff
mov ecx, dword [ecx]
sub edx, ecx
imul edx, edi
shr edx, 8
add edx, ecx
mov ecx, dword [ebp + 0x18]
mov dword [ecx], edx
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x10]
add ecx, 4
inc edi
mov dword [ebp + 0x1c], ecx
add edx, 4
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x18], edx
cmp edi, dword [ebp - 8]
jl 0x4138b3
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp - 0xc], ecx
jne 0x413885
jmp 0x413dcb
cmp ecx, 4
mov ecx, dword [ebp + 8]
jg 0x413bd0
cmp byte [ecx + 0x9a125], 8
jne 0x413ad3
mov edi, dword [ebp - 8]
test edx, edx
je 0x413dd4
mov dword [ebp - 0x40], edx
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
test edi, edi
je 0x413ab1
sub esi, eax
mov dword [ebp - 0x1c], esi
lea edx, [eax + ecx]
movzx ecx, byte [esi + edx]
mov dword [ebp - 0x48], ecx
test ecx, ecx
je 0x413a9c
mov byte [edx], cl
mov ecx, dword [ebp - 0x38]
mov esi, ecx
neg esi
mov dword [ebp - 0x5c], esi
lea edx, [ecx + 1]
mov dword [ebp - 0x50], edx
cmp esi, edx
jge 0x413a99
mov edi, dword [ebp - 0x64]
mov ecx, esi
imul ecx, ebx
mov dword [ebp + 0x18], edi
add ecx, eax
mov eax, ecx
mov dword [ebp - 0x20], ecx
add eax, dword [ebp - 0x24]
mov ecx, edx
add eax, dword [ebp + 0x1c]
sub ecx, esi
mov dword [ebp - 0xc], ecx
nop word [eax + eax]
cmp esi, edx
jge 0x413a80
cmp byte [edi], 0
je 0x413a71
movzx ecx, byte [eax + esi]
mov edx, 0xff
sub edx, ecx
imul edx, dword [ebp - 0x48]
shr edx, 8
add byte [eax + esi], dl
mov edx, dword [ebp - 0x50]
inc esi
inc edi
cmp esi, edx
jl 0x413a54
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp + 0x18]
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x5c]
add edi, 9
add eax, ebx
mov dword [ebp + 0x18], edi
sub ecx, 1
mov dword [ebp - 0xc], ecx
jne 0x413a50
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x1c]
inc ecx
mov dword [ebp + 0x1c], ecx
cmp ecx, edi
jl 0x413a03
mov esi, dword [ebp + 0x20]
mov edx, dword [ebp - 0x40]
add esi, dword [ebp - 0x14]
add eax, ebx
sub edx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x40], edx
jne 0x4139f1
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
jmp 0x413dd4
test edx, edx
je 0x413dd1
mov ecx, edx
sub esi, edi
mov edx, dword [ebp - 8]
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x4c], ecx
xor edi, edi
mov dword [ebp + 0x18], edi
test edx, edx
je 0x413bb7
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x10], ecx
nop dword [eax + eax]
movzx edx, byte [esi + ecx]
mov dword [ebp - 0x20], edx
test edx, edx
je 0x413ba1
mov dword [eax + edi*4], edx
mov edx, dword [ebp - 0x38]
mov edi, edx
neg edi
inc edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x48], edx
cmp edi, edx
jge 0x413b9e
mov esi, dword [ebp - 0x64]
mov ecx, edi
imul ecx, ebx
mov edi, edx
sub edi, dword [ebp - 0xc]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x2c], edi
mov dword [ebp + 0x1c], ecx
nop word [eax + eax]
mov edi, dword [ebp - 0xc]
cmp edi, edx
jge 0x413b87
mov ebx, dword [ebp + 0x1c]
mov ecx, esi
mov dword [ebp - 0x1c], ecx
nop
cmp byte [ecx], 0
je 0x413b75
mov ecx, dword [ebp - 0x10]
mov edx, 0xff
add ecx, edi
lea esi, [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
sub edx, dword [esi + ebx]
imul edx, dword [ebp - 0x20]
shr edx, 8
add dword [esi + ebx], edx
mov edx, dword [ebp - 0x48]
inc ecx
inc edi
mov dword [ebp - 0x1c], ecx
cmp edi, edx
jl 0x413b50
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp - 0x40]
add esi, 9
add ecx, ebx
sub dword [ebp - 0x2c], 1
mov dword [ebp - 0x40], esi
mov dword [ebp + 0x1c], ecx
jne 0x413b40
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp - 8]
inc edi
inc ecx
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x10], ecx
cmp edi, edx
jl 0x413b00
mov ecx, dword [ebp - 0x4c]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x4c], ecx
jne 0x413ae8
jmp 0x413dcb
cmp byte [ecx + 0x9a125], 8
jne 0x413cd3
mov edi, dword [ebp - 8]
test edx, edx
je 0x413dd4
mov dword [ebp - 0x40], edx
nop dword [eax + eax]
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
test edi, edi
je 0x413cb1
sub esi, eax
mov dword [ebp - 0x1c], esi
lea edx, [eax + ecx]
movzx ecx, byte [esi + edx]
mov dword [ebp - 0x48], ecx
test ecx, ecx
je 0x413c9c
mov byte [edx], cl
mov ecx, dword [ebp - 0x38]
mov esi, ecx
neg esi
mov dword [ebp - 0x5c], esi
lea edx, [ecx + 1]
mov dword [ebp - 0x50], edx
cmp esi, edx
jge 0x413c99
mov edi, dword [ebp - 0x54]
mov ecx, esi
imul ecx, ebx
mov dword [ebp + 0x18], edi
add ecx, eax
mov eax, ecx
mov dword [ebp - 0x20], ecx
add eax, dword [ebp - 0x24]
mov ecx, edx
add eax, dword [ebp + 0x1c]
sub ecx, esi
mov dword [ebp - 0xc], ecx
nop dword [eax]
cmp esi, edx
jge 0x413c80
cmp byte [edi], 0
je 0x413c71
movzx ecx, byte [eax + esi]
mov edx, 0xff
sub edx, ecx
imul edx, dword [ebp - 0x48]
shr edx, 8
add byte [eax + esi], dl
mov edx, dword [ebp - 0x50]
inc esi
inc edi
cmp esi, edx
jl 0x413c54
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp + 0x18]
mov ecx, dword [ebp - 0xc]
add edi, dword [ebp - 0x28]
add eax, ebx
mov esi, dword [ebp - 0x5c]
sub ecx, 1
mov dword [ebp + 0x18], edi
mov dword [ebp - 0xc], ecx
jne 0x413c50
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x1c]
inc ecx
mov dword [ebp + 0x1c], ecx
cmp ecx, edi
jl 0x413c02
mov esi, dword [ebp + 0x20]
mov edx, dword [ebp - 0x40]
add esi, dword [ebp - 0x14]
add eax, ebx
sub edx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x40], edx
jne 0x413bf0
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
jmp 0x413dd4
test edx, edx
je 0x413dd1
mov ecx, edx
sub esi, edi
mov edx, dword [ebp - 8]
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x4c], ecx
xor edi, edi
mov dword [ebp + 0x18], edi
test edx, edx
je 0x413db7
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x10], ecx
nop dword [eax + eax]
movzx edx, byte [esi + ecx]
mov dword [ebp - 0x20], edx
test edx, edx
je 0x413da1
mov dword [eax + edi*4], edx
mov edx, dword [ebp - 0x38]
mov edi, edx
neg edi
inc edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x48], edx
cmp edi, edx
jge 0x413d9e
mov esi, dword [ebp - 0x54]
mov ecx, edi
imul ecx, ebx
mov edi, edx
sub edi, dword [ebp - 0xc]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x2c], edi
mov dword [ebp + 0x1c], ecx
nop word [eax + eax]
mov edi, dword [ebp - 0xc]
cmp edi, edx
jge 0x413d87
mov ebx, dword [ebp + 0x1c]
mov ecx, esi
mov dword [ebp - 0x1c], ecx
nop
cmp byte [ecx], 0
je 0x413d75
mov ecx, dword [ebp - 0x10]
mov edx, 0xff
add ecx, edi
lea esi, [ebx + ecx*4]
mov ecx, dword [ebp - 0x1c]
sub edx, dword [esi + eax]
imul edx, dword [ebp - 0x20]
shr edx, 8
add dword [esi + eax], edx
mov edx, dword [ebp - 0x48]
inc ecx
inc edi
mov dword [ebp - 0x1c], ecx
cmp edi, edx
jl 0x413d50
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp - 0x40]
add esi, dword [ebp - 0x28]
add ecx, ebx
sub dword [ebp - 0x2c], 1
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x40], esi
jne 0x413d40
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp - 8]
inc edi
inc ecx
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x10], ecx
cmp edi, edx
jl 0x413d00
mov ecx, dword [ebp - 0x4c]
add esi, dword [ebp - 0x14]
add eax, ebx
sub ecx, 1
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x4c], ecx
jne 0x413ce8
mov edx, dword [ebp - 4]
mov ecx, dword [ebp + 8]
mov edi, dword [ebp - 8]
mov eax, ebx
imul eax, dword [ebp - 0x6c]
cmp byte [ecx + 0x9a125], 8
jne 0x413e41
mov ecx, dword [ebp - 0x30]
neg ecx
shl ecx, 2
sub ecx, eax
mov eax, dword [ebp + 8]
add ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x30], ecx
cmp dword [eax + 0x9a144], 0xf
jne 0x413f9b
mov eax, dword [ebp - 0x58]
lea esi, [edx + eax]
test esi, esi
jle case.0x411419.1
mov ecx, dword [ebp - 0x24]
lea edx, [edi + eax]
mov edi, dword [ebp - 0x30]
add ecx, edi
nop dword [eax]
xor eax, eax
test edx, edx
jle 0x413e33
shr byte [edi + eax], 4
shr byte [eax + ecx], 4
inc eax
cmp eax, edx
jl 0x413e26
add edi, ebx
add ecx, ebx
sub esi, 1
jne 0x413e20
jmp case.0x411419.1
mov esi, dword [ebp - 0x30]
neg esi
shl esi, 2
sub esi, eax
mov eax, dword [ebp - 0x58]
add esi, dword [ebp - 0x3c]
cmp dword [ecx + 0x9a564], 0
mov dword [ebp - 0x30], esi
je 0x413f31
lea ecx, [edx + eax]
mov dword [ebp + 0x1c], ecx
test ecx, ecx
jle case.0x411419.1
add eax, edi
xor edi, edi
test eax, eax
jle 0x413f1b
mov eax, dword [ebp - 0x24]
lea ebx, [esi + eax*4]
mov edx, dword [esi + edi*4]
lea ebx, [ebx + 4]
mov eax, dword [ebp + 8]
mov esi, edx
mov cl, byte [eax + 0x9a12d]
mov eax, edx
shl esi, cl
mov ecx, dword [ebp + 8]
mov cl, byte [ecx + 0x9a12f]
shl eax, cl
mov ecx, dword [ebp + 8]
or esi, eax
mov eax, edx
mov cl, byte [ecx + 0x9a12e]
shl eax, cl
or esi, eax
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x9a12c]
mov eax, dword [ebp - 0x30]
shl edx, cl
or esi, edx
mov dword [eax + edi*4], esi
inc edi
mov edx, dword [ebx - 4]
mov esi, edx
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x9a12d]
mov eax, edx
shl esi, cl
mov ecx, dword [ebp + 8]
mov cl, byte [ecx + 0x9a12f]
shl eax, cl
mov ecx, dword [ebp + 8]
or esi, eax
mov eax, edx
mov cl, byte [ecx + 0x9a12e]
shl eax, cl
or esi, eax
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x9a12c]
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x58]
shl edx, cl
or esi, edx
mov dword [ebx - 4], esi
mov esi, dword [ebp - 0x30]
cmp edi, eax
jl 0x413e81
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x1c]
add esi, ebx
sub ecx, 1
mov dword [ebp - 0x30], esi
mov dword [ebp + 0x1c], ecx
jne 0x413e71
jmp case.0x411419.1
add eax, edx
mov dword [ebp + 0x1c], eax
test eax, eax
jle case.0x411419.1
add edi, dword [ebp - 0x58]
xor edx, edx
test edi, edi
jle 0x413f89
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x30]
lea esi, [esi + eax*4]
mov cl, byte [ecx + 0x9a12f]
lea esi, [esi + 4]
mov eax, dword [ebx + edx*4]
shl eax, cl
or eax, dword [ebp - 0x44]
mov ecx, dword [ebp + 8]
mov dword [ebx + edx*4], eax
inc edx
mov eax, dword [esi - 4]
mov cl, byte [ecx + 0x9a12f]
shl eax, cl
or eax, dword [ebp - 0x44]
mov ecx, dword [ebp + 8]
mov dword [esi - 4], eax
cmp edx, edi
jl 0x413f50
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp + 0x1c]
mov esi, dword [ebp - 0x30]
add esi, ebx
sub eax, 1
mov dword [ebp - 0x30], esi
mov dword [ebp + 0x1c], eax
jne 0x413f41
jmp case.0x411419.1
mov edi, eax
jmp 0x411a1d
mov dword [esi + 0x28], 0
cmp dword [edi + 0x95c74], 0x400
jne 0x414003
lea eax, [edi + 0x95c78]
xor ecx, ecx
cmp dword [eax], esi
jne 0x413fc9
lea eax, [eax + 4]
inc ecx
cmp dword [eax], esi
je 0x413fc1
lea edx, [ecx + 0x2571e]
mov eax, dword [edi + edx*4]
lea edx, [edi + edx*4]
mov byte [eax + 8], 0
mov eax, dword [edi + 0x95c74]
dec eax
mov dword [edi + 0x95c74], eax
sub eax, ecx
test eax, eax
jle 0x414003
add ecx, 0x2571f
shl eax, 2
push eax
lea eax, [edi + ecx*4]
push eax
push edx
call fcn.00497240
add esp, 0xc
mov eax, dword [edi + 0x95c74]
mov dword [edi + eax*4 + 0x95c78], esi
inc dword [edi + 0x95c74]
xor eax, eax
pop edi
mov word [esi + 8], 1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret