Function at 0x40e060
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x68
push ebx
push ebp
mov ebp, dword [esp + 0x84]
push esi
push edi
mov esi, dword [ebp + 0xb8]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x80]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x84]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x88]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x90]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x94]
mov dword [esi + 0x1c], eax
lea ecx, [ecx]
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov edi, edi
mov edx, dword [ebp]
mov ecx, dword [ebp + 4]
mov edi, dword [ebp + 0x4c]
mov dword [esp + 0x8c], edi
lea eax, [edx + 1]
mov dword [ebp], eax
cmp edx, ecx
jb 0x40e0ee
mov esi, dword [esi]
test esi, esi
je 0x41bd91
mov edi, 0xfffffff8
jmp 0x417999
mov eax, dword [esi + 0x1c]
cmp eax, dword [ebp + 8]
jb 0x40e10a
mov esi, dword [esi]
test esi, esi
je 0x41bd9e
mov edi, 0xffffffeb
jmp 0x417999
cmp dword [ebp + 0x98], 2
jne 0x40e141
mov eax, dword [esi + 8]
lea ecx, [esi + 0x128]
mov dword [esi + 0x12c], eax
mov eax, dword [esi + 0x18]
mov dword [ecx], eax
mov dword [esi + 0x18], ecx
mov dword [ebp + 0x98], 0
jmp 0x40e141
add dword [esi + 0xc], 3
mov edi, dword [esp + 0x8c]
mov eax, dword [esi + 0xc]
xor ebx, ebx
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], ebx
movzx edx, byte [eax]
mov dword [esi + 0x9c], edx
cmp edx, 0xa1
ja case.0x40e174.98
movzx eax, byte [edx + 0x41bfac]
jmp dword [eax*4 + 0x41be60]
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], ebx
mov edi, dword [esi + 4]
test edi, edi
jne 0x41b5f5
push 0x134
call dword [0x4407d0]
mov edi, eax
add esp, 4
test edi, edi
jne 0x41b5ef
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov edx, dword [esi + 4]
test edx, edx
jne 0x41b645
push 0x134
call dword [0x4407d0]
mov edx, eax
add esp, 4
test edx, edx
jne 0x41b63f
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov edx, dword [esi + 4]
test edx, edx
jne 0x41b663
push 0x134
call dword [0x4407d0]
mov edx, eax
add esp, 4
test edx, edx
jne 0x41b65d
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], ebx
mov edi, dword [esi + 4]
test edi, edi
jne 0x41b681
push 0x134
call dword [0x4407d0]
mov edi, eax
add esp, 4
test edi, edi
jne 0x41b67b
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov edx, dword [esi + 4]
test edx, edx
jne 0x41b696
push 0x134
call dword [0x4407d0]
mov edx, eax
add esp, 4
test edx, edx
jne 0x41b690
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp + 0x2c]
ja 0x40e2ce
mov ecx, dword [esi + 0xc]
movzx eax, byte [ecx]
movzx edx, byte [eax + 0x42cef0]
movzx eax, byte [ecx + 1]
add edx, eax
add dword [esi + 0xc], edx
jmp 0x40e141
mov edi, dword [esi + 4]
test edi, edi
jne 0x41b6b4
push 0x134
call dword [0x4407d0]
mov edi, eax
add esp, 4
test edi, edi
jne 0x41b6ae
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov edx, dword [esi + 4]
test edx, edx
jne 0x41b6c9
push 0x134
call dword [0x4407d0]
mov edx, eax
add esp, 4
test edx, edx
jne 0x41b6c3
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], ebx
mov edi, dword [esi + 4]
test edi, edi
jne 0x41b6e7
push 0x134
call dword [0x4407d0]
mov edi, eax
add esp, 4
test edi, edi
jne 0x41b6e1
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov eax, dword [esi + 0xc]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
jmp 0x418ed8
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x94], ecx
add ecx, ecx
mov dword [esi + 0x98], ecx
cmp ecx, dword [ebp + 0x14]
jge case.0x40e174.129
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [esi + 0xa4], eax
mov ecx, dword [esi + 0x98]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4 + 4]
mov dword [esi + 0xa8], eax
mov ecx, dword [ebp + 0x10]
sub ecx, dword [esi + 0x94]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [esi + 0xac], eax
mov eax, dword [ebp + 0x90]
mov dword [esi + 0xa0], eax
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
mov edx, dword [esi + 8]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebp + 0x74]
sub ecx, dword [esi + 0x94]
mov eax, dword [ebp + 0xc]
mov dword [eax + ecx*4], edx
jmp 0x417a3b
mov dword [esi + 0x54], ebx
jmp 0x40ebdf
mov dword [esi + 0x54], ebx
jmp 0x40ec03
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x78], ecx
add dword [esi + 0xc], 3
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x76
jne 0x40e548
mov edi, dword [0x441cd8]
test edi, edi
je 0x40e534
mov dword [esp + 0x10], 2
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 1]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x78]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 8]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x38], ecx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 4]
movzx eax, byte [eax + 5]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esi + 0x14]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x2c], eax
movzx eax, word [ebp + 0x90]
mov dword [esp + 0x30], eax
test eax, eax
jne 0x40e4ee
mov dword [esp + 0x30], 0xffffffff
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0xb0]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x10]
push eax
call edi
mov edi, eax
add esp, 4
test edi, edi
jle 0x40e523
mov esi, dword [esi]
test esi, esi
je 0x41bdb8
xor edi, edi
jmp 0x417999
jns 0x40e534
mov esi, dword [esi]
test esi, esi
je 0x417e7c
jmp 0x417999
movzx eax, byte [0x42cf66]
add dword [esi + 0xc], eax
movzx eax, byte [0x42cf66]
sub dword [esi + 0x78], eax
mov dword [esi + 0x58], ebx
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx]
mov dword [esp + 0x88], edx
lea eax, [edx - 0x8d]
cmp eax, 0x10
ja case.0x40e56e.146
movzx eax, byte [eax + 0x41c068]
jmp dword [eax*4 + 0x41c050]
mov edi, dword [ebp + 0xa4]
test edi, edi
je case.0x40e56e.145
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
shl edx, 8
or edx, eax
cmp edx, 0xffff
je 0x40e5a7
cmp edx, dword [edi + 4]
je 0x40e5a7
xor eax, eax
mov dword [esi + 0x58], eax
jmp 0x417cd3
mov eax, 1
mov dword [esi + 0x58], eax
jmp 0x417cd3
cmp dword [ebp + 0xa4], ebx
je case.0x40e56e.145
movzx ebx, byte [ecx + 3]
movzx eax, byte [ecx + 4]
movzx edi, byte [ecx + 1]
shl ebx, 8
shl edi, 8
or ebx, eax
movzx eax, byte [ecx + 2]
or edi, eax
imul edi, dword [ebp + 0x24]
add edi, dword [ebp + 0x30]
test ebx, ebx
jle case.0x40e56e.145
lea esp, [esp]
movzx eax, byte [edi]
xor ecx, ecx
movzx edx, byte [edi + 1]
dec ebx
shl eax, 8
or edx, eax
mov eax, dword [ebp + 0xa4]
cmp edx, dword [eax + 4]
sete cl
mov dword [esi + 0x58], ecx
test ecx, ecx
jne 0x417cd3
add edi, dword [ebp + 0x24]
test ebx, ebx
jg 0x40e5f0
jmp 0x417cd3
mov eax, dword [esi + 0xc]
movzx ecx, byte [ecx + 1]
shl ecx, 8
movzx eax, byte [eax + 2]
or ecx, eax
add ecx, ecx
mov dword [esi + 0x98], ecx
cmp ecx, dword [esi + 0x14]
jge 0x40e654
mov eax, dword [ebp + 0xc]
cmp dword [eax + ecx*4], ebx
jl 0x40e654
mov eax, 1
mov dword [esi + 0x58], eax
jmp case.0x40e56e.145
xor eax, eax
mov dword [esi + 0x58], eax
jmp case.0x40e56e.145
movzx edi, byte [ecx + 3]
movzx eax, byte [ecx + 4]
movzx edx, byte [ecx + 1]
shl edi, 8
shl edx, 8
or edi, eax
movzx eax, byte [ecx + 2]
or edx, eax
imul edx, dword [ebp + 0x24]
add edx, dword [ebp + 0x30]
test edi, edi
jle 0x417cd3
movzx eax, byte [edx]
dec edi
movzx ecx, byte [edx + 1]
shl eax, 8
or ecx, eax
add ecx, ecx
mov dword [esi + 0x98], ecx
cmp ecx, dword [esi + 0x14]
jge 0x40e6a9
mov eax, dword [ebp + 0xc]
cmp dword [eax + ecx*4], ebx
jge 0x40e6b8
mov dword [esi + 0x58], ebx
add edx, dword [ebp + 0x24]
test edi, edi
jg 0x40e687
jmp 0x417cd3
mov dword [esi + 0x58], 1
jmp 0x417cd3
mov dword [ebp + 0x98], 1
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x41b6fc
push 0x134
call dword [0x4407d0]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x41b6f6
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x94], ecx
lea eax, [ecx + ecx]
mov dword [esi + 0x98], eax
mov eax, dword [ebp + 0x90]
and eax, 0xffff0000
or eax, dword [esi + 0x94]
mov dword [ebp + 0x90], eax
mov edx, dword [esi + 0x98]
cmp edx, dword [ebp + 0x14]
jl 0x40e754
or eax, 0x10000
mov dword [ebp + 0x90], eax
jmp 0x40e136
mov eax, dword [ebp + 0x10]
sub eax, dword [esi + 0x94]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 8]
mov eax, dword [ebp + 0xc]
sub edx, dword [ebp + 0x74]
mov dword [eax + ecx*4 + 4], edx
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 0x14]
cmp ecx, edx
jl 0x40e136
mov eax, dword [ebp + 0xc]
lea edi, [eax + edx*4]
lea ecx, [eax + ecx*4]
cmp edi, ecx
jae 0x40e7a3
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x98]
add eax, 2
mov dword [esi + 0x14], eax
jmp 0x40e136
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0x10]
cmp edi, ecx
jne 0x40e7f6
cmp edx, 0x9f
je 0x40e7f6
cmp dword [ebp + 0xa4], ebx
jne 0x40e7f6
cmp dword [ebp + 0x5c], ebx
jne 0x40e7e5
cmp dword [ebp + 0x60], ebx
je 0x40e7f6
mov eax, dword [ebp + 0x94]
add eax, dword [ebp + 0x74]
cmp ecx, eax
jne 0x40e7f6
mov esi, dword [esi]
test esi, esi
je 0x41bdb8
xor edi, edi
jmp 0x417999
mov dword [ebp + 0x80], edi
mov eax, dword [esi + 0x14]
mov dword [ebp + 0x8c], eax
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x7c], eax
mov edi, dword [esi + 0x9c]
mov esi, dword [esi]
neg edi
sbb edi, edi
and edi, 0xfffffc18
inc edi
test esi, esi
je 0x417e7c
jmp 0x417999
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
cmp dword [ebp + 0x98], 1
jne 0x40e84f
mov dword [esi + 0x58], 1
mov dword [ebp + 0x98], ebx
jmp 0x417dcd
mov dword [esi + 0x58], ebx
jmp 0x417dcd
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
cmp dword [ebp + 0x98], 1
jne 0x40e87b
mov dword [esi + 0x58], 1
mov dword [ebp + 0x98], ebx
jmp 0x417f1b
mov dword [esi + 0x58], ebx
jmp 0x417f1b
mov edx, dword [esp + 0x8c]
mov eax, dword [esi + 0xc]
test edx, edx
je 0x40e8e2
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl edx, 8
or edx, eax
jle 0x40e8c8
dec dword [esi + 8]
dec edx
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x74]
jb case.0x4150c6.14
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x40e8c4
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x40e8b8
test edx, edx
jg 0x40e8a0
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jae 0x40e136
mov dword [ebp + 0x84], eax
jmp 0x40e136
movzx ecx, byte [eax + 1]
mov eax, dword [esi + 0xc]
shl ecx, 8
movzx eax, byte [eax + 2]
or ecx, eax
sub dword [esi + 8], ecx
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
jae 0x40e8c8
mov esi, dword [esi]
test esi, esi
je 0x41bdb8
xor edi, edi
jmp 0x4179a0
mov edi, dword [0x441cd8]
test edi, edi
je 0x40e9ec
mov dword [esp + 0x44], 2
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 1]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x78]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 8]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x6c], ecx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 4]
movzx eax, byte [eax + 5]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x70], ecx
mov eax, dword [esi + 0x14]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x60], eax
movzx eax, word [ebp + 0x90]
mov dword [esp + 0x64], eax
test eax, eax
jne 0x40e9a6
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0xb0]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x44]
push eax
call edi
mov edi, eax
add esp, 4
test edi, edi
jle 0x40e9db
mov esi, dword [esi]
test esi, esi
je 0x41bdb8
xor edi, edi
jmp 0x417999
jns 0x40e9ec
mov esi, dword [esi]
test esi, esi
je 0x417e7c
jmp 0x417999
add dword [esi + 0xc], 6
jmp 0x40e13a
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp + 0x70]
add eax, ecx
mov dword [esi + 0x20], eax
cmp eax, dword [ebp + 0x70]
jne 0x40ea16
xor edx, edx
jmp 0x40ea23
movzx edx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl edx, 8
or edx, eax
mov ecx, dword [ebp + 0xa4]
test ecx, ecx
je 0x40ea43
lea ecx, [ecx]
cmp edx, dword [ecx + 4]
jne 0x40ea3d
mov eax, dword [esi + 8]
cmp eax, dword [ecx + 0x14]
je 0x40eaa4
mov ecx, dword [ecx]
test ecx, ecx
jne 0x40ea30
mov dword [esi + 0x40], edx
lea ecx, [esi + 0x3c]
mov eax, dword [ebp + 0x90]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov eax, dword [ebp + 0xa4]
mov dword [ecx], eax
mov dword [ebp + 0xa4], ecx
add dword [esi + 0xc], 3
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x48], eax
cmp eax, 0x1e
jg 0x40eab8
lea eax, [esi + 0xb0]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x48]
shl eax, 2
push eax
push dword [ebp + 0xc]
push dword [esi + 0x44]
call sub.MSVCRT.dll_memcpy
mov eax, dword [esi + 0x20]
add esp, 0xc
cmp byte [eax], 0x88
sbb eax, eax
inc eax
mov dword [esi + 0x58], eax
jmp 0x418004
mov esi, dword [esi]
test esi, esi
je 0x41bdc2
mov edi, 0xffffffe6
jmp 0x417999
shl eax, 2
push eax
call dword [0x4407c8]
add esp, 4
mov dword [esi + 0x44], eax
test eax, eax
jne 0x40ea7e
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
cmp byte [edx], 0x77
je 0x40eae1
jmp 0x40e141
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0x2c], eax
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x41b737
push 0x134
call dword [0x4407d0]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x41b731
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov edx, dword [esi + 0xc]
inc edx
mov dword [esi + 0x2c], edx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0x2c], edx
cmp byte [edx], 0x77
je 0x40eb40
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x41b755
push 0x134
call dword [0x4407d0]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x41b74f
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov edx, dword [esi + 0xc]
inc edx
mov dword [esi + 0x2c], edx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0x2c], edx
cmp byte [edx], 0x77
je 0x40eb93
lea eax, [edx + 3]
mov dword [esi + 0xc], eax
jmp 0x40e141
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x9c], eax
mov dword [esi + 0x54], 1
mov eax, dword [esi + 0x9c]
cmp eax, 0x86
je 0x40ebdf
cmp eax, 0x8b
jne 0x40ec03
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x94], ecx
lea eax, [ecx + ecx]
mov dword [esi + 0x98], eax
cmp eax, dword [ebp + 0x14]
jl 0x40ec20
mov dword [esi + 0x5c], ebx
mov eax, dword [esi + 0xc]
sub eax, dword [ebp + 0x70]
mov dword [esi + 0x78], eax
mov eax, dword [ebp + 0x90]
mov dword [esi + 0xa0], eax
jmp 0x418aed
mov dword [esi + 0x5c], ebx
mov eax, dword [esi + 0xc]
sub eax, dword [ebp + 0x70]
mov dword [esi + 0x78], eax
mov ecx, dword [esi + 0x98]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [esi + 0xa4], eax
mov ecx, dword [esi + 0x98]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4 + 4]
mov dword [esi + 0xa8], eax
mov ecx, dword [ebp + 0x10]
sub ecx, dword [esi + 0x94]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [esi + 0xac], eax
mov eax, dword [ebp + 0x90]
mov dword [esi + 0xa0], eax
mov ecx, dword [ebp + 0x10]
sub ecx, dword [esi + 0x94]
mov edx, dword [esi + 8]
mov eax, dword [ebp + 0xc]
sub edx, dword [ebp + 0x74]
mov dword [eax + ecx*4], edx
cmp dword [esi + 0x9c], 0x88
jb 0x40ec9d
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x41bae7
push 0x134
call dword [0x4407d0]
mov edx, eax
add esp, 4
test edx, edx
jne 0x41badd
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov edx, dword [esi + 0xc]
mov eax, edx
movzx ecx, byte [eax + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
sub edx, ecx
mov dword [esi + 0x34], edx
mov al, byte [edx]
cmp al, 0x88
jae 0x40ecf8
cmp al, 0x81
je 0x40ecf8
mov dword [esi + 0x38], ebx
jmp 0x40ed09
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 4]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x34]
mov al, byte [edx]
cmp al, 0x7d
jb 0x40ed16
cmp al, 0x80
jbe 0x40ed1a
cmp al, 0x82
jne 0x40ed46
mov eax, dword [esi + 8]
mov dword [ebp + 0x80], eax
mov eax, dword [esi + 0x14]
mov dword [ebp + 0x8c], eax
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x7c], eax
mov esi, dword [esi]
test esi, esi
je 0x41bdf6
mov edi, 1
jmp 0x417999
cmp al, 0x85
je 0x40ed5a
cmp al, 0x8a
je 0x40ed5a
cmp al, 0x86
je 0x40ed5a
cmp al, 0x8b
jne 0x40ee21
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x94], ecx
lea eax, [ecx + ecx]
mov dword [esi + 0x98], eax
mov eax, dword [ebp + 0xa4]
test eax, eax
je 0x40ed96
mov eax, dword [eax + 4]
cmp eax, dword [esi + 0x94]
jne 0x40ed96
mov eax, dword [esi + 8]
mov dword [ebp + 0x80], eax
jmp 0x40ed2c
mov eax, dword [ebp + 0x90]
and eax, 0xffff0000
or eax, dword [esi + 0x94]
mov dword [ebp + 0x90], eax
mov ecx, dword [esi + 0x98]
cmp ecx, dword [ebp + 0x14]
jl 0x40edc5
or eax, 0x10000
mov dword [ebp + 0x90], eax
jmp 0x40ee21
mov edx, dword [esi + 0x14]
cmp ecx, edx
jle 0x40ede5
mov eax, dword [ebp + 0xc]
lea edi, [eax + edx*4]
lea ecx, [eax + ecx*4]
cmp edi, ecx
jae 0x40ede5
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x10]
sub eax, dword [esi + 0x94]
mov edx, dword [ebp + 0xc]
mov ecx, dword [esi + 0x98]
mov eax, dword [edx + eax*4]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x98]
sub edx, dword [ebp + 0x74]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esi + 0x98]
cmp dword [esi + 0x14], eax
jg 0x40ee21
add eax, 2
mov dword [esi + 0x14], eax
mov edx, dword [esi + 0xc]
mov cl, byte [edx]
cmp cl, 0x7b
jne 0x40ee57
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x7c], eax
mov eax, dword [esi + 8]
mov dword [ebp + 0x80], eax
mov eax, dword [esi + 0x14]
mov dword [ebp + 0x8c], eax
mov esi, dword [esi]
test esi, esi
je 0x41bdcf
mov edi, 0xfffffc1a
jmp 0x417999
cmp cl, 0x78
je 0x40eed0
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x38]
je 0x40eed0
cmp cl, 0x7a
mov ecx, dword [esi + 4]
jne 0x40ee9e
test ecx, ecx
jne 0x41b776
push 0x134
call dword [0x4407d0]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x41b770
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
test ecx, ecx
jne 0x41b797
push 0x134
call dword [0x4407d0]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x41b791
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
mov eax, dword [esi + 0x34]
cmp byte [eax], 0x81
jne 0x418137
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x41b7b5
push 0x134
call dword [0x4407d0]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x41b7af
mov esi, dword [esi]
test esi, esi
je 0x41bdab
lea edi, [eax - 6]
jmp 0x417999
cmp dword [ebp + 0x44], ebx
je case.0x40e174.1
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
jne case.0x40e174.1
mov esi, dword [esi]
test esi, esi
je 0x41bdb8
xor edi, edi
jmp 0x417999
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
je 0x40eff8
mov esi, dword [esi]
test esi, esi
je 0x41bdb8
xor edi, edi
jmp 0x417999
cmp dword [ebp + 0x44], ebx
je 0x40ef6a
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
jne 0x40ef6a
mov esi, dword [esi]
test esi, esi
je 0x41bdb8
xor edi, edi
jmp 0x417999
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x74]
cmp ecx, edx
je 0x40f9b4
cmp ecx, dword [ebp + 0x78]
je 0x40efd0
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x40efa8
cmp ecx, edx
jbe 0x40efd0
push dword [esp + 0x8c]
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.0041e020
add esp, 0x14
test eax, eax
jne 0x40f9b4
jmp 0x40efd0
mov edi, dword [ebp + 0x1c]
lea eax, [edi + edx]
cmp ecx, eax
jb 0x40efd0
sub ecx, edi
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x40efd0
cmp edi, 1
je 0x40f9b4
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je 0x40f9b4
mov esi, dword [esi]
test esi, esi
je 0x41bdb8
xor edi, edi
jmp 0x417999
mov eax, dword [ebp + 0x94]
add eax, dword [ebp + 0x74]
cmp dword [esi + 8], eax
jmp 0x40ef35
mov eax, dword [esi + 8]
mov dword [esi + 0x10], eax
inc dword [esi + 0xc]
jmp 0x40e141
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x78]
cmp ecx, eax
jae 0x40f0ba
mov edx, dword [ebp + 0x18]
lea edi, [ebp + 0x1c]
test edx, edx
je 0x40f035
push dword [esp + 0x8c]
push edi
push eax
push edx
push ecx
call fcn.0041ded0
add esp, 0x14
test eax, eax
jne 0x40f9b4
jmp 0x40f059
mov edx, dword [edi]
sub eax, edx
cmp ecx, eax
ja 0x40f059
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x40f059
cmp edx, 1
je 0x40f9b4
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je 0x40f9b4
cmp dword [ebp + 0x88], ebx
je case.0x4150c6.14
mov eax, dword [esi + 8]
inc eax
cmp eax, dword [ebp + 0x78]
jb case.0x4150c6.14
cmp dword [ebp + 0x18], ebx
jne case.0x4150c6.14
cmp dword [edi], 2
jne case.0x4150c6.14
mov eax, dword [esi + 8]
mov al, byte [eax]
cmp al, byte [ebp + 0x34]
jne case.0x4150c6.14
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle case.0x4150c6.14
mov esi, dword [esi]
test esi, esi
je 0x41bddc
mov edi, 0xfffffff4
jmp 0x417999
cmp dword [ebp + 0x48], ebx
jne 0x40ef3b
cmp dword [ebp + 0x88], ebx
je 0x40f9b4
cmp ecx, dword [ebp + 0x84]
jbe 0x40f9b4
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x40f9b4
mov esi, dword [esi]
test esi, esi
je 0x41bddc
mov edi, 0xfffffff4
jmp 0x417999
cmp dword [ebp + 0x48], ebx
jne 0x40ef3b
cmp dword [ebp + 0x58], ebx
je case.0x40e174.23
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x40ef3b
cmp dword [ebp + 0x88], ebx
je 0x40eff8
cmp eax, dword [ebp + 0x84]
jbe 0x40eff8
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x40eff8
mov esi, dword [esi]
test esi, esi
je 0x41bddc
mov edi, 0xfffffff4
jmp 0x417999
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x78]
cmp ecx, eax
jae 0x40f1c5
mov edx, dword [ebp + 0x18]
lea edi, [ebp + 0x1c]
test edx, edx
je 0x40f18d
push dword [esp + 0x8c]
push edi
push eax
push edx
push ecx
call fcn.0041ded0
add esp, 0x14
test eax, eax
jne 0x40f1b5
jmp 0x40f059
mov edx, dword [edi]
sub eax, edx
cmp ecx, eax
ja 0x40f059
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x40f059
cmp edx, 1
je 0x40f1b5
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
jne 0x40f059
mov eax, dword [ebp + 0x78]
sub eax, dword [edi]
mov ecx, dword [esi + 8]
cmp ecx, eax
jne 0x40f059
cmp dword [ebp + 0x88], ebx
je 0x40f9b4
cmp ecx, dword [ebp + 0x84]
jbe 0x40f9b4
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x40f9b4
jmp 0x40f0a6
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x40f4c7
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x74]
jne 0x40f215
mov dword [esi + 0x5c], ebx
jmp 0x40f34e
mov al, byte [edx - 1]
dec edx
and al, 0xc0
cmp al, 0x80
jne 0x40f22a
nop
mov al, byte [edx - 1]
dec edx
and al, 0xc0
cmp al, 0x80
je 0x40f220
cmp edx, dword [ebp + 0x84]
jae 0x40f238
mov dword [ebp + 0x84], edx
movzx ebx, byte [edx]
cmp ebx, 0xc0
jb 0x40f2ec
test bl, 0x20
jne 0x40f260
movzx eax, byte [edx + 1]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
jmp 0x40f2ec
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x40f27a
and ebx, 0xf
shl ebx, 6
or ecx, ebx
jmp 0x40f2e2
and eax, 0x3f
test bl, 8
jne 0x40f295
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x40f2e2
test bl, 4
jne 0x40f2b9
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x40f2e2
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov ebx, ecx
cmp dword [ebp + 0x54], 0
je 0x40f387
cmp ebx, 0x5f
jne 0x40f304
mov dword [esi + 0x5c], 1
jmp 0x40f34e
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x42e878]
shl eax, 7
and ebx, 0x8000007f
jns 0x40f326
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x430a78]
movzx eax, byte [eax*8 + 0x42d1f9]
mov eax, dword [eax*4 + 0x42d008]
cmp eax, 1
je 0x40f398
cmp eax, 3
je 0x40f398
xor eax, eax
mov dword [esi + 0x5c], eax
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x40f39f
cmp dword [ebp + 0x88], 0
je 0x40f37b
cmp edx, dword [ebp + 0x84]
jbe 0x40f37b
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x40f0a6
mov dword [esi + 0x54], 0
jmp 0x40f605
cmp ebx, 0x100
jae 0x40f349
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 0x10
je 0x40f349
mov eax, 1
jmp 0x40f34b
movzx ebx, byte [edx]
cmp ebx, 0xc0
jb 0x40f449
test bl, 0x20
jne 0x40f3bf
movzx eax, byte [edx + 1]
and ebx, 0x1f
jmp 0x40f441
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x40f3d9
and ebx, 0xf
shl ebx, 6
or ebx, ecx
jmp 0x40f441
and eax, 0x3f
test bl, 8
jne 0x40f3f4
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
jmp 0x40f441
test bl, 4
jne 0x40f418
and ebx, 3
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 4]
jmp 0x40f441
and ebx, 1
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 5]
and eax, 0x3f
shl ebx, 6
or ebx, eax
cmp dword [ebp + 0x54], 0
je 0x40f4ac
cmp ebx, 0x5f
jne 0x40f460
mov dword [esi + 0x54], 1
jmp 0x40f605
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x42e878]
shl eax, 7
and ebx, 0x8000007f
jns 0x40f482
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x430a78]
movzx eax, byte [eax*8 + 0x42d1f9]
mov eax, dword [eax*4 + 0x42d008]
cmp eax, 1
je 0x40f4bd
cmp eax, 3
je 0x40f4bd
xor eax, eax
jmp 0x40f602
cmp ebx, 0x100
jae 0x40f4a5
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 0x10
je 0x40f4a5
mov eax, 1
jmp 0x40f602
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
jne 0x40f4d7
mov dword [esi + 0x5c], ebx
jmp 0x40f572
cmp eax, dword [ebp + 0x84]
ja 0x40f4e6
dec eax
mov dword [ebp + 0x84], eax
mov eax, dword [esi + 8]
cmp dword [ebp + 0x54], ebx
je 0x40f55e
movzx ecx, byte [eax - 1]
cmp ecx, 0x5f
jne 0x40f500
mov dword [esi + 0x5c], 1
jmp 0x40f572
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x42e878]
shl eax, 7
and ecx, 0x8000007f
jns 0x40f522
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x430a78]
movzx eax, byte [eax*8 + 0x42d1f9]
mov eax, dword [eax*4 + 0x42d008]
cmp eax, 1
je 0x40f550
cmp eax, 3
je 0x40f550
mov edx, dword [esp + 0x8c]
xor eax, eax
jmp 0x40f56f
mov edx, dword [esp + 0x8c]
mov eax, 1
jmp 0x40f56f
movzx eax, byte [eax - 1]
mov ecx, dword [ebp + 0x40]
movzx eax, byte [eax + ecx]
shr eax, 4
and eax, 1
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x40f5b3
cmp dword [ebp + 0x88], ebx
je 0x40f5ae
cmp eax, dword [ebp + 0x84]
jbe 0x40f5ae
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x40f5ae
mov esi, dword [esi]
test esi, esi
je 0x41bddc
mov edi, 0xfffffff4
jmp 0x4179a0
mov dword [esi + 0x54], ebx
jmp 0x40f605
cmp dword [ebp + 0x54], ebx
je 0x40f5f2
movzx ecx, byte [eax]
cmp ecx, 0x5f
jne 0x40f5c9
mov dword [esi + 0x54], 1
jmp 0x40f605
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x42e878]
shl eax, 7
and ecx, 0x8000007f
jns 0x40f5eb
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
jmp 0x40f484
movzx eax, byte [eax]
mov ecx, dword [ebp + 0x40]
movzx eax, byte [eax + ecx]
shr eax, 4
and eax, 1
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0xc]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x54]
cmp cl, 5
jne 0x40f620
xor ecx, ecx
cmp eax, dword [esi + 0x5c]
sete cl
jmp 0x40f628
xor ecx, ecx
cmp eax, dword [esi + 0x5c]
setne cl
mov edi, dword [esp + 0x8c]
test ecx, ecx
je 0x40e141
jmp 0x40ef3b
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x40f66d
mov edx, dword [esi + 8]
mov edi, dword [ebp + 0x78]
cmp edx, edi
jae 0x40f698
push dword [esp + 0x8c]
lea eax, [ebp + 0x1c]
push eax
push edi
push ecx
push edx
call fcn.0041ded0
add esp, 0x14
test eax, eax
jne 0x40ef3b
jmp 0x40f698
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp + 0x1c]
sub eax, edx
mov ecx, dword [esi + 8]
cmp ecx, eax
ja 0x40f698
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x40f698
cmp edx, 1
je 0x40ef3b
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je 0x40ef3b
cmp dword [ebp + 0x88], ebx
je case.0x40e174.13
mov eax, dword [ebp + 0x78]
mov ecx, dword [esi + 8]
dec eax
cmp ecx, eax
jne case.0x40e174.13
cmp dword [ebp + 0x18], ebx
jne case.0x40e174.13
cmp dword [ebp + 0x1c], 2
jne case.0x40e174.13
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne case.0x40e174.13
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x40f0a6
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x40f6f6
cmp dword [ebp + 0x88], ebx
je case.0x4150c6.14
cmp eax, dword [ebp + 0x84]
jbe case.0x4150c6.14
jmp 0x40f092
mov edi, dword [esp + 0x8c]
inc eax
mov dword [esi + 8], eax
test edi, edi
je 0x40eff8
cmp eax, dword [ebp + 0x78]
jae 0x40eff8
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x40eff8
lea eax, [ecx + 1]
mov dword [esi + 8], eax
cmp eax, dword [ebp + 0x78]
jb 0x40f712
inc dword [esi + 0xc]
jmp 0x40e141
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x40f6d9
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0xc]
jmp 0x40e141
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x40f76d
cmp dword [ebp + 0x88], ebx
je case.0x4150c6.14
cmp edi, dword [ebp + 0x84]
jbe case.0x4150c6.14
jmp 0x40f092
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x40f869
cmp ebx, 0xc0
jb 0x40f869
test bl, 0x20
jne 0x40f7aa
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x40f866
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x40f7d4
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x40f869
mov edx, dword [esi + 8]
test bl, 8
jne 0x40f7fa
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x40f85d
test bl, 4
jne 0x40f829
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x40f85d
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x100
jae 0x40f9b4
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 4
je 0x40f9b4
mov esi, dword [esi]
test esi, esi
je 0x41bdb8
xor edi, edi
jmp 0x4179a0
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x40f750
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x40f99b
cmp ebx, 0xc0
jb 0x40f99b
test bl, 0x20
jne 0x40f8dc
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x40f998
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x40f906
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x40f99b
mov edx, dword [esi + 8]
test bl, 8
jne 0x40f92c
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x40f98f
test bl, 4
jne 0x40f95b
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x40f98f
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0xff
ja 0x40e8fd
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 4
je 0x40e8fd
inc dword [esi + 0xc]
jmp 0x40e13a
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x40f750
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x40fac4
cmp ebx, 0xc0
jb 0x40fac4
test bl, 0x20
jne 0x40fa05
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x40fac1
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x40fa2f
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x40fac4
mov edx, dword [esi + 8]
test bl, 8
jne 0x40fa55
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x40fab8
test bl, 4
jne 0x40fa84
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x40fab8
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x100
jae 0x40f9b4
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 1
jmp 0x40f87c
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x40f750
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x40fbe4
cmp ebx, 0xc0
jb 0x40fbe4
test bl, 0x20
jne 0x40fb25
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x40fbe1
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x40fb4f
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x40fbe4
mov edx, dword [esi + 8]
test bl, 8
jne 0x40fb75
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x40fbd8
test bl, 4
jne 0x40fba4
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x40fbd8
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0xff
ja 0x40e8fd
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 1
je 0x40e8fd
inc dword [esi + 0xc]
jmp 0x40e13a
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x40f750
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x40fd0d
cmp ebx, 0xc0
jb 0x40fd0d
test bl, 0x20
jne 0x40fc4e
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x40fd0a
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x40fc78
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x40fd0d
mov edx, dword [esi + 8]
test bl, 8
jne 0x40fc9e
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x40fd01
test bl, 4
jne 0x40fccd
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x40fd01
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x100
jae 0x40f9b4
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 0x10
jmp 0x40f87c
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x40f750
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x40fe2d
cmp ebx, 0xc0
jb 0x40fe2d
test bl, 0x20
jne 0x40fd6e
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x40fe2a
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x40fd98
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x40fe2d
mov edx, dword [esi + 8]
test bl, 8
jne 0x40fdbe
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x40fe21
test bl, 4
jne 0x40fded
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x40fe21
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0xff
ja 0x40e8fd
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 0x10
je 0x40e8fd
inc dword [esi + 0xc]
jmp 0x40e13a
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x40f750
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x40ff56
cmp ebx, 0xc0
jb 0x40ff56
test bl, 0x20
jne 0x40fe97
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x40ff53
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x40fec1
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x40ff56
mov edx, dword [esi + 8]
test bl, 8
jne 0x40fee7
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x40ff4a
test bl, 4
jne 0x40ff16
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x40ff4a
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0xd
ja 0x40ffcf
je 0x40ff71
cmp ebx, 0xa
je 0x40f9b4
jbe 0x40f882
cmp ebx, 0xc
jmp 0x40ffe9
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x40ffba
cmp dword [ebp + 0x88], 0
je 0x40f9b4
cmp eax, dword [ebp + 0x84]
jbe 0x40f9b4
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x40f9b4
mov esi, dword [esi]
test esi, esi
je 0x41bddc
mov edi, 0xfffffff4
jmp 0x4179a0
cmp byte [eax], 0xa
jne 0x40f9b4
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0xc]
jmp 0x40e13a
cmp ebx, 0x85
je 0x40ffef
cmp ebx, 0x2027
jbe 0x40f882
cmp ebx, 0x2029
ja 0x40f882
cmp dword [ebp + 0x68], 0
jmp 0x40f87c
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x40f750
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x410100
cmp ebx, 0xc0
jb 0x410100
test bl, 0x20
jne 0x410041
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x4100fd
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x41006b
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x410100
mov edx, dword [esi + 8]
test bl, 8
jne 0x410091
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4100f4
test bl, 4
jne 0x4100c0
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4100f4
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x180e
ja 0x410138
je 0x40e8fd
cmp ebx, 0xa0
ja 0x41012d
je 0x40e8fd
cmp ebx, 9
je 0x40e8fd
cmp ebx, 0x20
jmp 0x40f9ae
cmp ebx, 0x1680
jmp 0x40f9ae
cmp ebx, 0x205f
ja 0x410169
je 0x40e8fd
cmp ebx, 0x2000
jb 0x40f9b4
cmp ebx, 0x200a
jbe 0x40e8fd
cmp ebx, 0x202f
jmp 0x40f9ae
cmp ebx, 0x3000
je 0x40e8fd
inc dword [esi + 0xc]
jmp 0x40e13a
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x40f750
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x410285
cmp ebx, 0xc0
jb 0x410285
test bl, 0x20
jne 0x4101c6
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x410282
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x4101f0
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x410285
mov edx, dword [esi + 8]
test bl, 8
jne 0x410216
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x410279
test bl, 4
jne 0x410245
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x410279
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x180e
ja 0x4102bd
je 0x40f9b4
cmp ebx, 0xa0
ja 0x4102b2
je 0x40f9b4
cmp ebx, 9
je 0x40f9b4
cmp ebx, 0x20
jmp 0x40f87c
cmp ebx, 0x1680
jmp 0x40f87c
cmp ebx, 0x205f
ja 0x4102ee
je 0x40f9b4
cmp ebx, 0x2000
jb 0x40f882
cmp ebx, 0x200a
jbe 0x40f9b4
cmp ebx, 0x202f
jmp 0x40f87c
cmp ebx, 0x3000
jmp 0x40f87c
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x40f750
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x410401
cmp ebx, 0xc0
jb 0x410401
test bl, 0x20
jne 0x410342
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x4103fe
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x41036c
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x410401
mov edx, dword [esi + 8]
test bl, 8
jne 0x410392
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4103f5
test bl, 4
jne 0x4103c1
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4103f5
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x85
ja 0x410429
je 0x40f882
cmp ebx, 0xa
jb 0x40f9b4
cmp ebx, 0xd
jbe 0x40f882
inc dword [esi + 0xc]
jmp 0x40e13a
lea eax, [ebx - 0x2028]
cmp eax, 1
ja 0x40f9b4
jmp 0x40f882
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x40f750
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x410545
cmp ebx, 0xc0
jb 0x410545
test bl, 0x20
jne 0x410486
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x410542
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x4104b0
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x410545
mov edx, dword [esi + 8]
test bl, 8
jne 0x4104d6
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x410539
test bl, 4
jne 0x410505
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x410539
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x85
ja 0x41056a
je 0x40f9b4
cmp ebx, 0xa
jb 0x40e8fd
cmp ebx, 0xd
jbe 0x40f9b4
jmp 0x40e8fd
lea eax, [ebx - 0x2028]
cmp eax, 1
ja 0x40e8fd
inc dword [esi + 0xc]
jmp 0x40e13a
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x40f750
movzx ebx, byte [edi]
inc edi
cmp dword [esp + 0x8c], 0
mov dword [esi + 8], edi
je 0x41067d
cmp ebx, 0xc0
jb 0x41067d
test bl, 0x20
jne 0x4105c9
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x41067a
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x4105f1
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
add dword [esi + 8], 2
jmp 0x41067d
mov edx, dword [esi + 8]
test bl, 8
jne 0x410617
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 3]
jmp 0x41067a
test bl, 4
jne 0x410646
and ebx, 3
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 4]
jmp 0x41067a
and ebx, 1
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x42e878]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x4106a0
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 1]
movzx edx, word [ecx*2 + 0x430a78]
cmp eax, 0xa
ja case.default.0x4106ba
jmp dword [eax*4 + 0x41c07c]
cmp dword [esi + 0x9c], 0xf
jne 0x40e136
jmp 0x40ef3b
mov al, byte [edx*8 + 0x42d1f9]
cmp al, 9
je 0x4106ea
cmp al, 5
je 0x4106ea
cmp al, 8
je 0x4106ea
xor ecx, ecx
jmp 0x4106ef
mov ecx, 1
xor eax, eax
cmp dword [esi + 0x9c], 0xf
sete al
cmp ecx, eax
jne 0x40e136
jmp 0x40ef3b
movzx ecx, byte [edx*8 + 0x42d1f9]
xor edx, edx
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 2]
invalid
add al, 0x8d
or al, dl