Function at 0x409b50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x11c
xor eax, eax
push ebx
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], eax
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
push esi
push edi
jae 0x40dfab
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0x24]
add dword [ebx], 1
cmp ecx, dword [ebx + 8]
jae 0x40dfba
mov eax, dword [ebx + 0x38]
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x2c], eax
mov al, byte [ebp + 0x20]
test al, 2
mov dword [esp + 0x48], edx
je 0x409bd1
test al, 4
je 0x409bbf
mov ecx, dword [ebx + 0x70]
cmp ecx, 0x3e8
jge 0x40dfc6
mov edx, dword [ebx + 0x6c]
lea eax, [edx + ecx*8]
add ecx, 1
mov dword [ebx + 0x70], ecx
jmp 0x409bc6
lea eax, [esp + 0xa8]
mov ecx, dword [ebp + 0x1c]
mov dword [eax + 4], esi
mov dword [eax], ecx
mov dword [ebp + 0x1c], eax
mov edi, dword [ebp + 0xc]
movzx edx, byte [edi]
mov ebx, dword [ebp + 0x14]
xor eax, eax
cmp dword [ebx + 0x44], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edx
je 0x409bfe
cmp esi, dword [ebx + 0x54]
jb 0x409bfe
cmp esi, dword [ebx + 0x58]
jbe 0x409bfe
mov dword [ebx + 0x48], 1
cmp edx, 0x62
ja case.0x409c0e.64
movzx ecx, byte [edx + 0x40f9a0]
jmp dword [ecx*4 + 0x40f8ac]
mov cl, byte [edi + 3]
cmp cl, 0x5f
lea eax, [edi + 3]
jne 0x409c46
mov eax, dword [ebx + 0x74]
xor ecx, ecx
test eax, eax
mov ch, byte [edi + 4]
mov cl, byte [edi + 5]
je 0x409c63
cmp ecx, 0xffff
je 0x409c3c
cmp ecx, dword [eax + 4]
jne 0x409c63
mov ecx, 1
lea eax, [ecx + 2]
jmp 0x409c6d
cmp cl, 0x5e
jne 0x409c8b
xor eax, eax
mov ah, byte [edi + 4]
mov al, byte [edi + 5]
add eax, eax
cmp eax, dword [ebp + 0x10]
jge 0x409c63
mov edx, dword [ebx + 0xc]
cmp dword [edx + eax*4], 0
jge 0x409c3c
xor ecx, ecx
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
test ecx, ecx
jne 0x40ddc4
cmp byte [edi], 0x4e
je 0x40ddc4
add edi, 3
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp cl, 0x60
jne 0x409c9c
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
jmp 0x409c77
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x18]
add ecx, 1
push ecx
mov ecx, dword [ebp + 0x10]
push 1
push 0
push edx
push ebx
push ecx
push eax
push esi
call fcn.00409b50
add esp, 0x20
cmp eax, 1
je 0x40dd9e
test eax, eax
jne 0x40f8a5
xor edx, edx
mov dh, byte [edi + 1]
mov dl, byte [edi + 2]
add edi, edx
jmp 0x409c77
mov edi, dword [ebx + 0x74]
cmp edi, eax
je 0x40e09e
cmp dword [edi + 4], eax
jne 0x40e09e
mov eax, dword [edi]
mov dword [ebx + 0x74], eax
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x10]
mov eax, dword [ebx + 0xc]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call sub.MSVCRT.dll_memmove
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x54]
mov dword [ebx + 0x58], ecx
mov eax, dword [edi + 8]
add esp, 0xc
mov dword [ebp + 0x18], edx
mov dword [ebp + 0xc], eax
jmp 0x409bd1
movzx ecx, byte [edi + 1]
add edi, 2
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0xc], edi
jmp 0x409bd1
mov edx, dword [ebp + 0x24]
add edx, 1
mov dword [esp + 0x14], edx
lea esp, [esp]
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x10]
push eax
push 0
push 0
push ecx
push ebx
push edx
lea eax, [edi + 3]
push eax
push esi
call fcn.00409b50
add esp, 0x20
cmp eax, 1
je 0x409d7b
test eax, eax
jne 0x40f8a5
xor ecx, ecx
mov ch, byte [edi + 1]
mov cl, byte [edi + 2]
add edi, ecx
cmp byte [edi], 0x4e
je 0x409d40
cmp byte [edi], 0x4f
je case.0x40f7c6.14
test byte [ebp + 0x20], 1
jne 0x40e0b1
mov edi, edi
xor edx, edx
mov dh, byte [edi + 1]
mov dl, byte [edi + 2]
add edi, edx
cmp byte [edi], 0x4e
je 0x409d90
mov eax, dword [ebx + 0x60]
add edi, 3
mov dword [ebp + 0xc], edi
mov dword [ebp + 0x10], eax
jmp 0x409bd1
mov ecx, dword [ebp + 0x24]
add ecx, 1
mov dword [esp + 0x14], ecx
lea ebx, [ebx]
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
push edx
push 0
push 0
push eax
push ebx
push ecx
lea edx, [edi + 3]
push edx
push esi
call fcn.00409b50
add esp, 0x20
cmp eax, 1
je case.0x40f7c6.14
test eax, eax
jne 0x40f8a5
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x4e
je 0x409dc0
test byte [ebp + 0x20], 1
jne 0x40e0b1
add edi, 3
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp dword [esp + 0x2c], eax
je 0x409e6d
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
test eax, eax
jle 0x409e80
mov ebx, dword [ebx + 0x50]
lea esp, [esp]
sub esi, 1
sub eax, 1
cmp esi, ebx
jb case.0x40f7c6.14
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x409e5e
jmp 0x409e50
mov dl, byte [esi - 1]
sub esi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x409e50
test eax, eax
jg 0x409e30
add edi, 3
mov dword [ebp + 0xc], edi
jmp 0x409bd1
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
sub esi, eax
cmp esi, dword [ebx + 0x50]
jb case.0x40f7c6.14
add edi, 3
mov dword [ebp + 0xc], edi
jmp 0x409bd1
mov ecx, dword [0x438ef4]
cmp ecx, eax
je 0x409f39
movzx edx, byte [edi + 1]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x7c], edx
mov edx, dword [ebx + 0x54]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x50]
sub edx, eax
mov dword [esp + 0x88], edx
mov edx, dword [ebx + 0x58]
sub edx, eax
mov dword [esp + 0x8c], edx
mov dword [esp + 0x84], eax
mov edx, esi
sub edx, eax
xor eax, eax
mov ah, byte [edi + 2]
mov dword [esp + 0x90], edx
xor edx, edx
mov dh, byte [edi + 4]
mov dword [esp + 0x78], 1
mov al, byte [edi + 3]
mov dl, byte [edi + 5]
mov dword [esp + 0xa0], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xa4], edx
cdq
sub eax, edx
mov edx, dword [ebx + 0x78]
sar eax, 1
mov dword [esp + 0x94], eax
mov eax, dword [ebx + 0x64]
mov dword [esp + 0x98], eax
lea eax, [esp + 0x78]
push eax
mov dword [esp + 0xa0], edx
call ecx
add esp, 4
test eax, eax
jg case.0x40f7c6.14
jl 0x40f8a5
add edi, 6
mov dword [ebp + 0xc], edi
jmp 0x409bd1
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], esi
lea esp, [esp]
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add eax, 1
push eax
mov eax, dword [ebp + 0x10]
push 0
push ecx
push edx
push ebx
push eax
lea ecx, [edi + 3]
push ecx
push esi
call fcn.00409b50
add esp, 0x20
cmp eax, 1
je 0x409f8f
test eax, eax
jne 0x40f8a5
xor edx, edx
mov dh, byte [edi + 1]
mov dl, byte [edi + 2]
add edi, edx
cmp byte [edi], 0x4e
je 0x409f50
mov al, byte [edi]
cmp al, 0x57
je 0x409fa0
cmp al, 0x4e
jne case.0x40f7c6.14
lea ecx, [ecx]
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x4e
je 0x409fa0
cmp byte [edi], 0x4f
mov eax, dword [ebx + 0x60]
mov esi, dword [ebx + 0x5c]
mov dword [ebp + 0x10], eax
je 0x409fc7
cmp esi, dword [esp + 0x24]
jne 0x40de89
add edi, 3
mov dword [ebp + 0xc], edi
jmp 0x409bd1
xor ecx, ecx
mov ch, byte [edi + 1]
mov cl, byte [edi + 2]
add edi, ecx
cmp byte [edi], 0x4e
je case.0x409c0e.78
mov dword [ebp + 0xc], edi
jmp 0x409bd1
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
add edx, 1
push edx
mov edx, dword [ebp + 0x10]
push 0
push eax
push ecx
push ebx
push edx
add edi, 1
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x4e
je 0x40a014
add edi, 3
mov dword [ebp + 0xc], edi
jmp 0x409bd1
add edi, 1
mov eax, edi
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x4e
je 0x40a033
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
add edx, 1
push edx
mov edx, dword [ebp + 0x18]
push 0
push ecx
mov ecx, dword [ebp + 0x10]
push edx
push ebx
push ecx
add eax, 3
push eax
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov dword [ebp + 0xc], edi
jmp 0x409bd1
xor eax, eax
mov ah, byte [edi + 1]
mov edx, edi
mov al, byte [edi + 2]
sub edx, eax
mov al, byte [edx]
cmp al, 0x5b
mov dword [esp + 0x18], edx
jb 0x40a09f
mov ecx, dword [ebp + 0x1c]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp + 0x1c]
mov ecx, dword [ecx]
mov dword [ebp + 0x1c], ecx
jmp 0x40a0a7
mov dword [esp + 0x24], 0
cmp al, 0x52
je 0x40e25c
cmp al, 0x53
je 0x40e25c
cmp al, 0x54
je 0x40e25c
cmp al, 0x55
je 0x40e25c
cmp al, 0x57
je 0x40e25c
cmp al, 0x59
je 0x40a0db
cmp al, 0x5c
jne 0x40a16d
xor ecx, ecx
mov ch, byte [edx + 3]
mov cl, byte [edx + 4]
lea eax, [ecx + ecx]
cmp eax, dword [ebx + 0x14]
mov dword [esp + 0x28], ecx
mov dword [ebx + 0x64], ecx
jl 0x40a0fb
mov dword [ebx + 0x2c], 1
jmp 0x40a12a
mov edx, dword [ebx + 0x10]
sub edx, dword [esp + 0x28]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx + edx*4]
mov dword [ecx + eax*4], edx
mov edx, dword [ebx + 0xc]
mov ecx, esi
sub ecx, dword [ebx + 0x50]
cmp dword [ebp + 0x10], eax
mov dword [edx + eax*4 + 4], ecx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
jg 0x40a12a
add eax, 2
mov dword [ebp + 0x10], eax
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x40a16d
cmp dword [eax + 4], ecx
jne 0x40a16d
mov edi, eax
mov eax, dword [edi]
mov dword [ebx + 0x74], eax
mov ecx, dword [edi + 0xc]
mov dword [ebx + 0x58], ecx
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
mov ecx, dword [ebx + 0xc]
add edx, edx
add edx, edx
push edx
push eax
push ecx
call sub.MSVCRT.dll_memcpy
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x54]
add esp, 0xc
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x18], eax
jmp 0x409bd1
cmp byte [edi], 0x4f
mov eax, dword [esp + 0x48]
mov dword [ebp + 0x18], eax
je 0x40a183
cmp esi, dword [esp + 0x24]
jne 0x40df19
add edi, 3
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp dword [ebx + 0x30], eax
je 0x40a19c
cmp esi, dword [ebx + 0x50]
je case.0x40f7c6.14
test byte [ebp + 0x18], 2
je case.0x409c0e.1
mov eax, dword [ebx + 0x50]
cmp esi, eax
je 0x40a215
cmp esi, dword [ebx + 0x54]
je case.0x40f7c6.14
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x40a1e8
cmp esi, eax
jbe case.0x40f7c6.14
mov edx, dword [esp + 0x2c]
push edx
add ebx, 0x1c
push ebx
push eax
push ecx
push esi
call fcn.00410cf0
add esp, 0x14
test eax, eax
je case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
mov ecx, dword [ebx + 0x1c]
add eax, ecx
cmp esi, eax
jb case.0x40f7c6.14
mov eax, esi
sub eax, ecx
mov dl, byte [eax]
cmp dl, byte [ebx + 0x20]
jne case.0x40f7c6.14
cmp ecx, 1
je 0x40a215
mov al, byte [eax + 1]
cmp al, byte [ebx + 0x21]
jne case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp esi, dword [ebx + 0x50]
jne case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
mov ecx, dword [ebx + 0x68]
add ecx, dword [ebx + 0x50]
cmp esi, ecx
jne case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
test byte [ebp + 0x18], 2
je 0x40a2c2
mov eax, dword [ebx + 0x54]
cmp esi, eax
jae 0x40a2ad
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x40a288
mov edx, dword [esp + 0x2c]
push edx
add ebx, 0x1c
push ebx
push eax
push ecx
push esi
call fcn.00410bc0
add esp, 0x14
test eax, eax
je case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
mov ecx, dword [ebx + 0x1c]
sub eax, ecx
cmp esi, eax
ja case.0x40f7c6.14
mov al, byte [esi]
cmp al, byte [ebx + 0x20]
jne case.0x40f7c6.14
cmp ecx, 1
je 0x40a2b7
mov cl, byte [esi + 1]
cmp cl, byte [ebx + 0x21]
jmp 0x40a2b1
cmp dword [ebx + 0x34], 0
jne case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp dword [ebx + 0x34], eax
jne case.0x40f7c6.14
cmp dword [ebx + 0x3c], eax
jne case.0x409c0e.18
mov eax, dword [ebx + 0x54]
cmp esi, eax
je 0x40a34d
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x40a314
cmp esi, eax
jae case.0x40f7c6.14
lea edx, [ebx + 0x1c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.00410bc0
add esp, 0x14
test eax, eax
je case.0x40f7c6.14
mov edx, dword [esp + 0x18]
jmp 0x40a340
mov ecx, dword [ebx + 0x1c]
lea edx, [ebx + 0x1c]
sub eax, ecx
cmp esi, eax
ja case.0x40f7c6.14
mov al, byte [esi]
cmp al, byte [ebx + 0x20]
jne case.0x40f7c6.14
cmp ecx, 1
je 0x40a340
mov cl, byte [esi + 1]
cmp cl, byte [ebx + 0x21]
jne case.0x40f7c6.14
mov eax, dword [ebx + 0x54]
sub eax, dword [edx]
cmp esi, eax
jne case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp esi, dword [ebx + 0x54]
jb case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp dword [esp + 0x2c], eax
je 0x40a4ab
cmp esi, dword [ebx + 0x50]
je 0x40a422
mov cl, byte [esi - 1]
lea eax, [esi - 1]
and cl, 0xc0
cmp cl, 0x80
mov dword [esp + 0x34], eax
jne 0x40a3a3
mov dl, byte [eax - 1]
sub eax, 1
and dl, 0xc0
cmp dl, 0x80
je 0x40a391
mov dword [esp + 0x34], eax
movzx eax, byte [eax]
cmp eax, 0xc0
jb 0x40a40b
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x42a030]
mov dword [esp + 0x28], edx
lea ecx, [edx + edx*2]
mov edx, dword [edx*4 + 0x42a018]
and edx, eax
add ecx, ecx
shl edx, cl
mov eax, edx
mov edx, 1
cmp dword [esp + 0x28], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
jl 0x40a40b
mov eax, dword [esp + 0x34]
movzx edx, byte [edx + eax]
and edx, 0x3f
sub ecx, 6
shl edx, cl
or dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18]
add edx, 1
cmp edx, dword [esp + 0x28]
mov dword [esp + 0x18], edx
jle 0x40a3e2
mov eax, dword [esp + 0x1c]
cmp eax, 0x100
jae 0x40a422
mov ecx, dword [ebx + 0x28]
test byte [eax + ecx], 0x10
je 0x40a422
mov ecx, 1
jmp 0x40a424
xor ecx, ecx
cmp esi, dword [ebx + 0x54]
mov dword [esp + 0x18], ecx
jae 0x40a4de
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40a49a
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
mov dword [esp + 0x28], eax
lea ecx, [eax + eax*2]
mov eax, dword [eax*4 + 0x42a018]
and eax, edx
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp dword [esp + 0x28], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x34], eax
jl 0x40a496
movzx edx, byte [eax + esi]
mov eax, dword [esp + 0x34]
sub ecx, 6
and edx, 0x3f
shl edx, cl
add eax, 1
mov dword [esp + 0x34], eax
or dword [esp + 0x1c], edx
cmp eax, dword [esp + 0x28]
jle 0x40a471
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp edx, 0x100
jae 0x40a4de
mov eax, dword [ebx + 0x28]
test byte [edx + eax], 0x10
jmp 0x40a4d5
cmp esi, dword [ebx + 0x50]
je 0x40a4c4
movzx ecx, byte [esi - 1]
mov edx, dword [ebx + 0x28]
test byte [ecx + edx], 0x10
je 0x40a4c4
mov ecx, 1
jmp 0x40a4c6
xor ecx, ecx
cmp esi, dword [ebx + 0x54]
jae 0x40a4de
movzx eax, byte [esi]
mov edx, dword [ebx + 0x28]
test byte [eax + edx], 0x10
je 0x40a4de
mov eax, 1
jmp 0x40a4e0
xor eax, eax
mov dl, byte [edi]
add edi, 1
cmp dl, 4
mov dword [ebp + 0xc], edi
jne 0x40a4f6
xor edx, edx
cmp eax, ecx
sete dl
jmp 0x40a4fd
xor edx, edx
cmp eax, ecx
setne dl
mov eax, edx
test eax, eax
je 0x409bd1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test byte [ebp + 0x18], 4
jne 0x40a56a
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x40a542
mov eax, dword [ebx + 0x54]
cmp esi, eax
jae 0x40a56a
mov edx, dword [esp + 0x2c]
push edx
lea edx, [ebx + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.00410bc0
add esp, 0x14
test eax, eax
jne case.0x40f7c6.14
jmp 0x40a56a
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x54]
sub ecx, eax
cmp esi, ecx
ja 0x40a56a
mov dl, byte [esi]
cmp dl, byte [ebx + 0x20]
jne 0x40a56a
cmp eax, 1
je case.0x40f7c6.14
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x21]
je case.0x40f7c6.14
mov eax, dword [ebx + 0x54]
mov ecx, esi
add esi, 1
cmp ecx, eax
jae case.0x40f7c6.14
cmp dword [esp + 0x2c], 0
je 0x40a597
cmp esi, eax
jae 0x40a597
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x40a597
add esi, 1
cmp esi, dword [ebx + 0x54]
jb 0x40a585
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
mov eax, esi
add esi, 1
cmp eax, dword [ebx + 0x54]
jae case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40a637
cmp ecx, 0xc0
jb 0x40a637
mov edx, ecx
and edx, 0x3f
movzx eax, byte [edx + 0x42a030]
lea edx, [eax + eax*2]
add edx, edx
mov dword [esp + 0x18], edx
mov edx, dword [eax*4 + 0x42a018]
and edx, ecx
mov ecx, dword [esp + 0x18]
shl edx, cl
test eax, eax
mov ecx, edx
mov dword [esp + 0x1c], ecx
jle 0x40a637
jmp 0x40a610
movzx edx, byte [esi]
mov ecx, dword [esp + 0x18]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
sub eax, 1
or ecx, edx
add esi, 1
test eax, eax
mov dword [esp + 0x1c], ecx
jg 0x40a610
cmp ecx, 0x100
jae 0x40a64c
mov eax, dword [ebx + 0x28]
test byte [ecx + eax], 4
jne case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40a6ca
cmp ecx, 0xc0
jb 0x40a6ca
mov edx, ecx
and edx, 0x3f
movzx eax, byte [edx + 0x42a030]
lea edx, [eax + eax*2]
add edx, edx
mov dword [esp + 0x18], edx
mov edx, dword [eax*4 + 0x42a018]
and edx, ecx
mov ecx, dword [esp + 0x18]
shl edx, cl
test eax, eax
mov ecx, edx
mov dword [esp + 0x1c], ecx
jle 0x40a6ca
movzx edx, byte [esi]
mov ecx, dword [esp + 0x18]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
sub eax, 1
or ecx, edx
add esi, 1
test eax, eax
mov dword [esp + 0x1c], ecx
jg 0x40a6a3
cmp ecx, 0x100
jae case.0x40f7c6.14
mov eax, dword [ebx + 0x28]
test byte [ecx + eax], 4
je case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40a767
cmp ecx, 0xc0
jb 0x40a767
mov edx, ecx
and edx, 0x3f
movzx eax, byte [edx + 0x42a030]
lea edx, [eax + eax*2]
add edx, edx
mov dword [esp + 0x18], edx
mov edx, dword [eax*4 + 0x42a018]
and edx, ecx
mov ecx, dword [esp + 0x18]
shl edx, cl
test eax, eax
mov ecx, edx
mov dword [esp + 0x1c], ecx
jle 0x40a767
lea ebx, [ebx]
movzx edx, byte [esi]
mov ecx, dword [esp + 0x18]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
sub eax, 1
or ecx, edx
add esi, 1
test eax, eax
mov dword [esp + 0x1c], ecx
jg 0x40a740
cmp ecx, 0x100
jae 0x40a77c
mov eax, dword [ebx + 0x28]
test byte [ecx + eax], 1
jne case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40a7fa
cmp ecx, 0xc0
jb 0x40a7fa
mov edx, ecx
and edx, 0x3f
movzx eax, byte [edx + 0x42a030]
lea edx, [eax + eax*2]
add edx, edx
mov dword [esp + 0x18], edx
mov edx, dword [eax*4 + 0x42a018]
and edx, ecx
mov ecx, dword [esp + 0x18]
shl edx, cl
test eax, eax
mov ecx, edx
mov dword [esp + 0x1c], ecx
jle 0x40a7fa
movzx edx, byte [esi]
mov ecx, dword [esp + 0x18]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
sub eax, 1
or ecx, edx
add esi, 1
test eax, eax
mov dword [esp + 0x1c], ecx
jg 0x40a7d3
cmp ecx, 0x100
jae case.0x40f7c6.14
mov eax, dword [ebx + 0x28]
test byte [ecx + eax], 1
je case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40a897
cmp ecx, 0xc0
jb 0x40a897
mov edx, ecx
and edx, 0x3f
movzx eax, byte [edx + 0x42a030]
lea edx, [eax + eax*2]
add edx, edx
mov dword [esp + 0x18], edx
mov edx, dword [eax*4 + 0x42a018]
and edx, ecx
mov ecx, dword [esp + 0x18]
shl edx, cl
test eax, eax
mov ecx, edx
mov dword [esp + 0x1c], ecx
jle 0x40a897
lea ebx, [ebx]
movzx edx, byte [esi]
mov ecx, dword [esp + 0x18]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
sub eax, 1
or ecx, edx
add esi, 1
test eax, eax
mov dword [esp + 0x1c], ecx
jg 0x40a870
cmp ecx, 0x100
jae 0x40a8ac
mov eax, dword [ebx + 0x28]
test byte [ecx + eax], 0x10
jne case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40a92a
cmp ecx, 0xc0
jb 0x40a92a
mov edx, ecx
and edx, 0x3f
movzx eax, byte [edx + 0x42a030]
lea edx, [eax + eax*2]
add edx, edx
mov dword [esp + 0x18], edx
mov edx, dword [eax*4 + 0x42a018]
and edx, ecx
mov ecx, dword [esp + 0x18]
shl edx, cl
test eax, eax
mov ecx, edx
mov dword [esp + 0x1c], ecx
jle 0x40a92a
movzx edx, byte [esi]
mov ecx, dword [esp + 0x18]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
sub eax, 1
or ecx, edx
add esi, 1
test eax, eax
mov dword [esp + 0x1c], ecx
jg 0x40a903
cmp ecx, 0x100
jae case.0x40f7c6.14
mov eax, dword [ebx + 0x28]
test byte [ecx + eax], 0x10
je case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
mov ebx, dword [ebx + 0x54]
cmp esi, ebx
mov dword [esp + 0x20], ebx
jae case.0x40f7c6.14
movzx edx, byte [esi]
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40a9bf
cmp edx, 0xc0
jb 0x40a9bf
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x42a030]
mov ebx, dword [eax*4 + 0x42a018]
lea ecx, [eax + eax*2]
and ebx, edx
add ecx, ecx
shl ebx, cl
test eax, eax
mov edx, ebx
mov dword [esp + 0x1c], edx
jle 0x40a9bf
jmp 0x40a9a0
movzx ebx, byte [esi]
mov edx, dword [esp + 0x1c]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
mov dword [esp + 0x1c], edx
jg 0x40a9a0
cmp edx, 0x85
ja 0x40a9f9
je 0x40aa11
cmp edx, 0xa
jb case.0x40f7c6.14
cmp edx, 0xc
jbe 0x40aa11
cmp edx, 0xd
jne case.0x40f7c6.14
cmp esi, dword [esp + 0x20]
jae 0x40aa11
cmp byte [esi], 0xa
jne 0x40aa11
add esi, 1
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp edx, 0x2028
jb case.0x40f7c6.14
cmp edx, 0x2029
ja case.0x40f7c6.14
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx edx, byte [esi]
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40aa7f
cmp edx, 0xc0
jb 0x40aa7f
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
mov ebx, dword [eax*4 + 0x42a018]
lea ecx, [eax + eax*2]
and ebx, edx
add ecx, ecx
shl ebx, cl
test eax, eax
mov edx, ebx
mov dword [esp + 0x1c], edx
jle 0x40aa7f
movzx ebx, byte [esi]
mov edx, dword [esp + 0x1c]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
mov dword [esp + 0x1c], edx
jg 0x40aa60
lea ecx, [esp + 0x44]
push ecx
lea eax, [esp + 0x50]
push eax
push edx
call fcn.00410aa0
movzx ecx, byte [edi + 1]
add esp, 0xc
cmp ecx, 4
ja case.default.0x40aa9f
jmp dword [ecx*4 + 0x40fa04]
cmp dword [esp + 0x18], 0xd
jmp 0x40ab12
mov eax, dword [esp + 0x4c]
cmp eax, 9
je 0x40aad0
cmp eax, 5
je 0x40aad0
cmp eax, 8
je 0x40aad0
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x18], 0xd
sete cl
cmp eax, ecx
jmp 0x40ab12
xor ecx, ecx
cmp dword [esp + 0x18], 0xd
mov eax, 1
sete cl
cmp eax, ecx
jmp 0x40ab12
movzx edx, byte [edi + 2]
xor ecx, ecx
cmp edx, eax
jmp 0x40ab03
movzx eax, byte [edi + 2]
xor ecx, ecx
cmp eax, dword [esp + 0x4c]
jmp 0x40ab03
movzx eax, byte [edi + 2]
xor ecx, ecx
cmp eax, dword [esp + 0x44]
setne cl
xor edx, edx
cmp dword [esp + 0x18], 0xe
sete dl
cmp ecx, edx
je case.0x40f7c6.14
add edi, 3
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40ab97
cmp ecx, 0xc0
jb 0x40ab97
mov eax, ecx
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
lea edx, [eax + eax*2]
add edx, edx
mov dword [esp + 0x18], edx
mov edx, dword [eax*4 + 0x42a018]
and edx, ecx
mov ecx, dword [esp + 0x18]
shl edx, cl
test eax, eax
mov ecx, edx
mov dword [esp + 0x1c], ecx
jle 0x40ab97
nop
movzx edx, byte [esi]
mov ecx, dword [esp + 0x18]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
sub eax, 1
or ecx, edx
add esi, 1
test eax, eax
mov dword [esp + 0x1c], ecx
jg 0x40ab70
lea eax, [esp + 0x74]
push eax
lea edx, [esp + 0x74]
push edx
push ecx
call fcn.00410aa0
add esp, 0xc
cmp eax, 2
je case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae 0x40ac48
lea esp, [esp]
cmp dword [esp + 0x2c], 0
movzx edx, byte [esi]
mov dword [esp + 0x34], 1
je 0x40ac23
cmp edx, 0xc0
jb 0x40ac23
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40ac16
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40ac01
mov ebx, dword [ebp + 0x14]
add edi, 1
mov dword [esp + 0x34], edi
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x74]
push ecx
lea eax, [esp + 0x74]
push eax
push edx
call fcn.00410aa0
add esp, 0xc
cmp eax, 2
jne 0x40ac48
add esi, dword [esp + 0x34]
cmp esi, dword [ebx + 0x54]
jb 0x40abc0
add edi, 1
mov dword [ebp + 0xc], edi
jmp 0x409bd1
xor eax, eax
mov ah, byte [edi + 1]
add edi, 3
mov dword [ebp + 0xc], edi
mov al, byte [edi - 1]
add eax, eax
cmp eax, dword [ebp + 0x10]
mov dword [esp + 0x18], eax
jge 0x40ac7f
mov ecx, dword [ebx + 0xc]
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
test ecx, ecx
jl 0x40ac7f
mov edx, dword [eax + 4]
sub edx, ecx
jmp 0x40ac87
mov edx, dword [ebx + 0x54]
sub edx, esi
add edx, 1
movzx eax, byte [edi]
lea ecx, [eax - 0x40]
cmp ecx, 7
mov dword [esp + 0x20], edx
ja case.default.0x40aca1
movzx ecx, byte [ecx + 0x40fa20]
jmp dword [ecx*4 + 0x40fa18]
movsx edx, byte [eax + 0x429c0c]
add eax, 0xffffffc0
mov ecx, eax
movsx eax, byte [eax + 0x429c54]
add edi, 1
and ecx, 1
test eax, eax
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
mov dword [ebp + 0xc], edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], eax
jne 0x40ad1a
mov eax, 0x7fffffff
mov dword [esp + 0x10], eax
jmp 0x40ad1a
xor ecx, ecx
cmp byte [edi], 0x47
sete cl
xor eax, eax
mov ah, byte [edi + 1]
mov dword [esp + 0x24], ecx
mov al, byte [edi + 2]
mov dword [esp + 0x14], eax
xor eax, eax
mov ah, byte [edi + 3]
mov al, byte [edi + 4]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x40ad14
mov eax, 0x7fffffff
mov dword [esp + 0x10], eax
add edi, 5
mov dword [ebp + 0xc], edi
test edx, edx
je 0x409bd1
mov edx, dword [esp + 0x14]
cmp edx, 1
mov dword [esp + 0xc], 1
jl 0x40ad73
mov ecx, dword [ebp + 0x18]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
push ecx
push esi
mov ecx, ebx
call fcn.00409ad0
add esp, 8
test eax, eax
je case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add esi, dword [esp + 0x20]
add eax, 1
cmp eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jle 0x40ad33
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
cmp edx, eax
je 0x409bd1
test ecx, ecx
je 0x40e27d
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 0
push ecx
push edx
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
push ebx
push eax
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
jmp 0x40adc0
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0xc], ecx
jge case.0x40f7c6.14
mov edx, dword [ebp + 0x18]
mov eax, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x1c]
push esi
mov ecx, ebx
call fcn.00409ad0
add esp, 8
test eax, eax
je case.0x40f7c6.14
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add esi, dword [esp + 0x20]
add dword [esp + 0xc], 1
push eax
mov eax, dword [ebp + 0x10]
push 0
push ecx
push edx
push ebx
push eax
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40adc0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x18]
mov edi, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x1c]
push esi
mov ecx, ebx
mov eax, edi
call fcn.00409ad0
add esp, 8
test eax, eax
je case.0x40f7c6.14
add esi, edi
jmp 0x409bd1
mov dl, byte [edi + 0x21]
lea eax, [edi + 1]
add edi, 0x21
mov dword [esp + 0x28], eax
movzx eax, dl
lea ecx, [eax - 0x40]
cmp ecx, 7
mov dword [ebp + 0xc], edi
ja case.default.0x40ae6d
movzx ecx, byte [ecx + 0x40fa30]
jmp dword [ecx*4 + 0x40fa28]
add eax, 0xffffffc0
mov ecx, 1
mov edx, eax
and edx, ecx
mov dword [esp + 0x24], edx
movsx edx, byte [eax + 0x429c4c]
mov dword [esp + 0x14], edx
movsx edx, byte [eax + 0x429c54]
add edi, ecx
test edx, edx
mov dword [ebp + 0xc], edi
mov dword [esp + 0x10], edx
jne 0x40aef7
mov edx, 0x7fffffff
jmp 0x40aef3
xor eax, eax
cmp dl, 0x47
sete al
xor edx, edx
mov dh, byte [edi + 3]
xor ecx, ecx
mov ch, byte [edi + 1]
mov dword [esp + 0x24], eax
mov dl, byte [edi + 4]
mov cl, byte [edi + 2]
test edx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
jne 0x40aedb
mov edx, 0x7fffffff
mov dword [esp + 0x10], edx
add edi, 5
mov dword [ebp + 0xc], edi
mov ecx, 1
jmp 0x40aef7
mov edx, 1
mov dword [esp + 0x14], edx
mov ecx, edx
mov dword [esp + 0x10], edx
cmp dword [esp + 0x2c], 0
mov dword [esp + 0xc], ecx
je 0x40afaf
cmp dword [esp + 0x14], ecx
jl 0x40aff7
mov edx, dword [ebx + 0x54]
mov dword [esp + 0x20], edx
cmp esi, dword [esp + 0x20]
jae case.0x40f7c6.14
movzx edi, byte [esi]
add esi, 1
cmp edi, 0xc0
jb 0x40af68
mov eax, edi
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
mov edx, dword [eax*4 + 0x42a018]
lea ecx, [eax + eax*2]
and edx, edi
add ecx, ecx
shl edx, cl
test eax, eax
mov edi, edx
jle 0x40af68
movzx edx, byte [esi]
sub ecx, 6
and edx, 0x3f
shl edx, cl
sub eax, 1
add esi, 1
or edi, edx
test eax, eax
jg 0x40af51
cmp edi, 0xff
jbe 0x40af77
cmp dword [esp + 0x18], 0x48
jmp 0x40af8f
mov ecx, edi
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x28]
shr edi, 3
mov dl, byte [edi + ecx]
test dl, al
je case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jle 0x40af17
mov edi, dword [ebp + 0xc]
jmp 0x40aff3
cmp dword [esp + 0x14], ecx
jl 0x40aff7
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx eax, byte [esi]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
shr eax, 3
mov al, byte [eax + ecx]
add esi, 1
test al, dl
je case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jle 0x40afb5
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp eax, edx
je 0x409bd1
cmp dword [esp + 0x24], 0
je 0x40e3da
mov edx, dword [ebp + 0x1c]
mov ecx, eax
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 0
push edx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x18]
push eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x10]
push ebx
push ecx
push edi
push esi
call fcn.00409b50
add esp, 0x20
cmp dword [esp + 0x2c], 0
je 0x40e369
test eax, eax
jne 0x40f8a5
mov edx, dword [esp + 0x10]
cmp dword [esp + 0xc], edx
jge case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx edx, byte [esi]
add esi, 1
cmp edx, 0xc0
jb 0x40b0c9
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
lea ecx, [eax + eax*2]
add ecx, ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [eax*4 + 0x42a018]
and ecx, edx
mov edx, ecx
mov ecx, dword [esp + 0x48]
shl edx, cl
test eax, eax
mov dword [esp + 0x1c], edx
jle 0x40b0c9
mov edi, edi
movzx edx, byte [esi]
mov ecx, dword [esp + 0x48]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x48], ecx
sub eax, 1
add esi, 1
mov ecx, edx
mov edx, dword [esp + 0x1c]
or edx, ecx
test eax, eax
mov dword [esp + 0x1c], edx
jg 0x40b0a0
cmp edx, 0xff
jbe 0x40e319
cmp dword [esp + 0x18], 0x48
jmp 0x40e331
xor edx, edx
mov dh, byte [edi + 1]
lea ecx, [edi + 3]
mov dword [esp + 0x28], ecx
mov dl, byte [edi + 2]
mov cl, byte [edi + edx]
movzx eax, cl
add edi, edx
lea edx, [eax - 0x40]
cmp edx, 7
mov dword [ebp + 0xc], edi
ja case.default.0x40b10c
movzx edx, byte [edx + 0x40fa40]
jmp dword [edx*4 + 0x40fa38]
movsx ebx, byte [eax + 0x429c0c]
add eax, 0xffffffc0
mov ecx, eax
movsx eax, byte [eax + 0x429c54]
add edi, 1
and ecx, 1
test eax, eax
mov dword [ebp + 0xc], edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
jne 0x40b18e
mov dword [esp + 0x10], 0x7fffffff
jmp 0x40b18e
xor eax, eax
cmp cl, 0x47
sete al
xor ebx, ebx
mov bh, byte [edi + 1]
mov dword [esp + 0x24], eax
xor eax, eax
mov ah, byte [edi + 3]
mov bl, byte [edi + 2]
mov al, byte [edi + 4]
mov dword [esp + 0x14], ebx
test eax, eax
mov dword [esp + 0x10], eax
jne 0x40b179
mov dword [esp + 0x10], 0x7fffffff
add edi, 5
mov dword [ebp + 0xc], edi
jmp 0x40b18e
mov ebx, 1
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
cmp ebx, 1
mov dword [esp + 0xc], 1
jl 0x40b220
nop
mov ecx, dword [ebp + 0x14]
cmp esi, dword [ecx + 0x54]
jae case.0x40f7c6.14
movzx edx, byte [esi]
add esi, 1
cmp edx, 0xc0
jb 0x40b1fb
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
mov ecx, dword [eax*4 + 0x42a018]
and ecx, edx
lea edi, [eax + eax*2]
add edi, edi
mov edx, ecx
mov ecx, edi
shl edx, cl
test eax, eax
jle 0x40b1fb
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40b1de
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
push ecx
push edx
call fcn.00410fc0
add esp, 8
test eax, eax
je case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, ebx
mov dword [esp + 0xc], eax
jle 0x40b1a0
mov edi, dword [esp + 0x10]
cmp ebx, edi
je 0x409bd1
cmp dword [esp + 0x24], 0
mov dword [esp + 0xc], ebx
je 0x40e6bb
mov ebx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
add ebx, 1
push ebx
push 0
push eax
mov eax, dword [ebp + 0x10]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push eax
push ecx
push esi
mov dword [esp + 0x34], ebx
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
jmp 0x40e604
cmp dword [esp + 0x2c], eax
je 0x40b2d1
mov eax, 1
movzx ecx, byte [edi + eax]
add edi, eax
cmp ecx, 0xc0
mov dword [ebp + 0xc], edi
jb 0x40b29b
and ecx, 0x3f
movzx eax, byte [ecx + 0x42a030]
add eax, 1
mov edx, dword [ebx + 0x54]
sub edx, esi
cmp eax, edx
jg case.0x40f7c6.14
test eax, eax
jle 0x409bd1
mov cl, byte [edi]
mov dl, byte [esi]
add edi, 1
sub eax, 1
add esi, 1
cmp cl, dl
mov dword [ebp + 0xc], edi
jne case.0x40f7c6.14
test eax, eax
jg 0x40b2b0
jmp 0x409bd1
mov eax, dword [ebx + 0x54]
sub eax, esi
cmp eax, 1
jl case.0x40f7c6.14
mov cl, byte [esi]
add esi, 1
cmp byte [edi + 1], cl
jne case.0x40f7c6.14
add edi, 2
mov dword [ebp + 0xc], edi
jmp 0x409bd1
cmp dword [esp + 0x2c], eax
je 0x40b44c
movzx eax, byte [edi + 1]
add edi, 1
mov edx, eax
cmp edx, 0xc0
mov dword [esp + 0x20], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], edx
jb 0x40b38e
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
mov dword [esp + 0x18], eax
lea ecx, [eax + eax*2]
mov eax, dword [eax*4 + 0x42a018]
and eax, edx
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x34], eax
jl 0x40b37f
movzx edx, byte [edi + eax]
mov eax, dword [esp + 0x34]
sub ecx, 6
and edx, 0x3f
shl edx, cl
add eax, 1
mov dword [esp + 0x34], eax
or dword [esp + 0x1c], edx
cmp eax, dword [esp + 0x18]
jle 0x40b35a
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add eax, 1
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [ebx + 0x54]
sub ecx, esi
cmp dword [esp + 0x20], ecx
jg case.0x40f7c6.14
cmp edx, 0x80
jae 0x40b3c9
movzx edx, byte [esi]
mov ebx, dword [ebx + 0x24]
mov cl, byte [edx + ebx]
add edi, 1
add esi, 1
cmp byte [eax + ebx], cl
mov dword [ebp + 0xc], edi
je 0x409bd1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx ebx, byte [esi]
add esi, 1
cmp ebx, 0xc0
jb 0x40b423
mov edx, ebx
and edx, 0x3f
movzx eax, byte [edx + 0x42a030]
mov edx, dword [eax*4 + 0x42a018]
lea ecx, [eax + eax*2]
and edx, ebx
add ecx, ecx
shl edx, cl
test eax, eax
mov ebx, edx
mov dword [esp + 0x34], ebx
jle 0x40b41f
lea ecx, [ecx]
movzx edx, byte [esi]
mov ebx, dword [esp + 0x34]
sub ecx, 6
and edx, 0x3f
shl edx, cl
sub eax, 1
add esi, 1
or ebx, edx
test eax, eax
mov dword [esp + 0x34], ebx
jg 0x40b400
mov edx, dword [esp + 0x1c]
add edi, dword [esp + 0x20]
cmp edx, ebx
mov dword [ebp + 0xc], edi
je 0x409bd1
push edx
call fcn.00410b30
add esp, 4
cmp ebx, eax
je 0x409bd1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x54]
sub eax, esi
cmp eax, 1
jl case.0x40f7c6.14
movzx edx, byte [esi]
mov ebx, dword [ebx + 0x24]
movzx ecx, byte [edi + 1]
mov al, byte [edx + ebx]
add esi, 1
cmp byte [ecx + ebx], al
jne case.0x40f7c6.14
add edi, 2
mov dword [ebp + 0xc], edi
jmp 0x409bd1
xor ecx, ecx
mov ch, byte [edi + 1]
add edi, 3
mov cl, byte [edi - 1]
mov eax, ecx
mov dword [esp + 0x14], eax
jmp 0x40b522
mov dword [esp + 0x28], 1
xor ecx, ecx
mov ch, byte [edi + 1]
xor edx, edx
xor eax, eax
cmp byte [edi], 0x20
mov dword [esp + 0x14], eax
sete dl
add edi, 3
mov cl, byte [edi - 1]
mov dword [esp + 0x24], edx
jmp 0x40b522
mov dword [esp + 0x28], 1
mov dword [esp + 0x14], eax
add edi, 1
jmp 0x40b51d
mov eax, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], eax
add edi, eax
jmp 0x40b51d
mov ecx, 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], eax
add edi, ecx
jmp 0x40b522
movzx ecx, byte [edi]
sub ecx, 0x19
mov eax, ecx
and eax, 1
mov dword [esp + 0x24], eax
movsx eax, byte [ecx + 0x429c4c]
movsx ecx, byte [ecx + 0x429c54]
add edi, 1
test ecx, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
jne 0x40b526
mov ecx, 0x7fffffff
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x2c], 0
je 0x40b99b
movzx ecx, byte [edi]
cmp ecx, 0xc0
mov dword [esp + 0x20], 1
mov dword [esp + 0x34], edi
mov dword [esp + 0x1c], ecx
jb 0x40b5c0
and ecx, 0x3f
movzx ecx, byte [ecx + 0x42a030]
lea edx, [ecx + ecx*2]
add edx, edx
mov dword [esp + 0x18], edx
mov edx, dword [ecx*4 + 0x42a018]
and edx, dword [esp + 0x1c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
shl edx, cl
mov ecx, 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
cmp edx, ecx
jl 0x40b5b9
lea ecx, [ecx]
movzx edx, byte [ecx + edi]
sub dword [esp + 0x18], 6
mov ecx, dword [esp + 0x18]
and edx, 0x3f
shl edx, cl
mov ecx, dword [esp + 0x20]
add ecx, 1
mov dword [esp + 0x20], ecx
or dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
cmp ecx, edx
jle 0x40b590
add edx, 1
mov dword [esp + 0x20], edx
mov ecx, dword [ebx + 0x54]
mov edx, eax
imul edx, dword [esp + 0x20]
sub ecx, esi
cmp edx, ecx
jg case.0x40f7c6.14
mov ecx, dword [esp + 0x20]
add edi, ecx
cmp ecx, 1
mov dword [ebp + 0xc], edi
jle 0x40b9b7
test byte [ebp + 0x18], 1
je 0x40b612
mov eax, dword [esp + 0x1c]
push eax
call fcn.00410b30
add esp, 4
cmp eax, 0xffffffff
je 0x40b612
lea ecx, [esp + 0x68]
push ecx
push eax
call fcn.00410e50
add esp, 8
mov dword [esp + 0x18], eax
jmp 0x40b61a
mov dword [esp + 0x18], 0
mov eax, 1
cmp dword [esp + 0x14], eax
mov dword [esp + 0xc], eax
jl 0x40b77b
mov eax, dword [esp + 0x20]
cmp eax, 4
mov ecx, dword [esp + 0x34]
mov edx, esi
jb 0x40b654
lea esp, [esp]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x40b658
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40b640
test eax, eax
je 0x40b6b5
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x40b6a7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40b6b5
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x40b6a7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40b6b5
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x40b6a7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40b6b5
movzx edi, byte [edx]
movzx edx, byte [ecx]
sub edi, edx
je 0x40b6b5
test edi, edi
mov eax, 1
jg 0x40b6b7
or eax, 0xffffffff
jmp 0x40b6b7
xor eax, eax
test eax, eax
jne 0x40b6c4
add esi, dword [esp + 0x20]
jmp 0x40b763
mov eax, dword [esp + 0x18]
test eax, eax
je case.0x40f7c6.14
cmp eax, 4
lea ecx, [esp + 0x68]
mov edx, esi
jb 0x40b6f4
jmp 0x40b6e0
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x40b6f8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40b6e0
test eax, eax
je 0x40b755
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x40b747
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40b755
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x40b747
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40b755
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x40b747
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40b755
movzx edi, byte [edx]
movzx eax, byte [ecx]
sub edi, eax
je 0x40b755
test edi, edi
mov eax, 1
jg 0x40b757
or eax, 0xffffffff
jmp 0x40b757
xor eax, eax
test eax, eax
jne case.0x40f7c6.14
add esi, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jle 0x40b62d
mov ebx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x14], ecx
je 0x409bd1
cmp dword [esp + 0x24], 0
jne 0x40e7d6
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0xc], eax
jge 0x40b914
mov ebx, dword [ebx + 0x54]
sub ebx, dword [esp + 0x20]
mov dword [esp + 0x14], ebx
jmp 0x40b7c4
mov ebx, dword [esp + 0x14]
cmp esi, ebx
ja 0x40b914
mov eax, dword [esp + 0x20]
cmp eax, 4
mov ecx, dword [esp + 0x34]
mov edx, esi
jb 0x40b7f4
jmp 0x40b7e0
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x40b7f8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40b7e0
test eax, eax
je 0x40b855
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x40b847
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40b855
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x40b847
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40b855
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x40b847
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40b855
movzx edi, byte [edx]
movzx edx, byte [ecx]
sub edi, edx
je 0x40b855
test edi, edi
mov eax, 1
jg 0x40b857
or eax, 0xffffffff
jmp 0x40b857
xor eax, eax
test eax, eax
jne 0x40b864
add esi, dword [esp + 0x20]
jmp 0x40b8ff
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40b914
cmp eax, 4
lea ecx, [esp + 0x68]
mov edx, esi
jb 0x40b894
jmp 0x40b880
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x40b898
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40b880
test eax, eax
je 0x40b8f5
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x40b8e7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40b8f5
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x40b8e7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40b8f5
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x40b8e7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40b8f5
movzx edi, byte [edx]
movzx eax, byte [ecx]
sub edi, eax
je 0x40b8f5
test edi, edi
mov eax, 1
jg 0x40b8f7
or eax, 0xffffffff
jmp 0x40b8f7
xor eax, eax
test eax, eax
jne 0x40b914
add esi, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40b7c0
cmp dword [esp + 0x28], 0
jne 0x409bd1
mov edi, dword [ebp + 0x24]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
add edi, 1
push edi
push 0
push eax
mov eax, dword [ebp + 0x10]
push ecx
push edx
push eax
push ebx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
cmp esi, dword [esp + 0x24]
je case.0x40f7c6.14
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
jne 0x40b973
mov dl, byte [esi - 1]
sub esi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x40b965
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push edi
push 0
push eax
mov eax, dword [ebp + 0x10]
push ecx
push edx
push eax
push ebx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40b94d
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebx + 0x54]
sub edx, esi
cmp eax, edx
jg case.0x40f7c6.14
movzx edx, byte [edi]
add edi, 1
mov dword [esp + 0x1c], edx
mov dword [ebp + 0xc], edi
jmp 0x40b9bf
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
test byte [ebp + 0x18], 1
mov dword [esp + 0xc], 1
je 0x40ba9a
cmp eax, 1
mov ecx, dword [ebx + 0x24]
movzx ecx, byte [edx + ecx]
mov dword [esp + 0x1c], ecx
jl 0x40ba07
movzx edx, byte [esi]
mov ecx, dword [ebx + 0x24]
movzx ecx, byte [edx + ecx]
add esi, 1
cmp dword [esp + 0x1c], ecx
jne case.0x40f7c6.14
mov ecx, dword [esp + 0xc]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0xc], ecx
jle 0x40b9e1
mov ecx, dword [esp + 0x10]
cmp eax, ecx
je 0x409bd1
cmp dword [esp + 0x24], 0
jne 0x40ea0d
cmp eax, ecx
mov dword [esp + 0x24], esi
jge 0x40ba47
cmp esi, dword [ebx + 0x54]
jae 0x40ba47
movzx edx, byte [esi]
mov ecx, dword [ebx + 0x24]
movzx ecx, byte [edx + ecx]
cmp dword [esp + 0x1c], ecx
jne 0x40ba47
add eax, 1
add esi, 1
cmp eax, dword [esp + 0x10]
jl 0x40ba26
cmp dword [esp + 0x28], 0
jne 0x409bd1
cmp esi, dword [esp + 0x24]
jb 0x40ba91
mov ecx, dword [ebp + 0x24]
add ecx, 1
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
push edx
mov edx, dword [ebp + 0x10]
push 0
push eax
push ecx
push ebx
push edx
push edi
push esi
call fcn.00409b50
add esp, 0x20
sub esi, 1
test eax, eax
jne 0x40f8a5
cmp esi, dword [esp + 0x24]
jae 0x40ba62
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 1
jl 0x40bac1
nop
movzx ecx, byte [esi]
add esi, 1
cmp edx, ecx
jne case.0x40f7c6.14
mov ecx, dword [esp + 0xc]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0xc], ecx
jle 0x40baa0
mov ecx, dword [esp + 0x10]
cmp eax, ecx
je 0x409bd1
cmp dword [esp + 0x24], 0
jne 0x40ea9d
cmp eax, ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0xc], eax
jge 0x40bb02
mov edx, dword [esp + 0x1c]
cmp esi, dword [ebx + 0x54]
jae 0x40bb02
movzx eax, byte [esi]
cmp edx, eax
jne 0x40bb02
mov eax, dword [esp + 0xc]
add eax, 1
add esi, 1
cmp eax, ecx
mov dword [esp + 0xc], eax
jl 0x40bae4
cmp dword [esp + 0x28], 0
jne 0x409bd1
cmp esi, dword [esp + 0x24]
jb 0x40bb4f
mov ecx, dword [ebp + 0x24]
add ecx, 1
mov dword [esp + 0x14], ecx
lea ecx, [ecx]
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
push edx
mov edx, dword [ebp + 0x10]
push 0
push eax
push ecx
push ebx
push edx
push edi
push esi
call fcn.00409b50
add esp, 0x20
sub esi, 1
test eax, eax
jne 0x40f8a5
cmp esi, dword [esp + 0x24]
jae 0x40bb20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx ecx, byte [esi]
add edi, 1
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40bbd7
cmp ecx, 0xc0
jb 0x40bbd7
mov edx, ecx
and edx, 0x3f
movzx eax, byte [edx + 0x42a030]
lea edx, [eax + eax*2]
add edx, edx
mov dword [esp + 0x18], edx
mov edx, dword [eax*4 + 0x42a018]
and edx, ecx
mov ecx, dword [esp + 0x18]
shl edx, cl
test eax, eax
mov ecx, edx
mov dword [esp + 0x1c], ecx
jle 0x40bbd7
nop
movzx edx, byte [esi]
mov ecx, dword [esp + 0x18]
sub ecx, 6
and edx, 0x3f
shl edx, cl
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
sub eax, 1
or ecx, edx
add esi, 1
test eax, eax
mov dword [esp + 0x1c], ecx
jg 0x40bbb0
test byte [ebp + 0x18], 1
je 0x40bc0d
cmp ecx, 0x100
jae 0x40bbec
mov eax, dword [ebx + 0x24]
movzx ecx, byte [eax + ecx]
movzx edx, byte [edi]
mov eax, dword [ebx + 0x24]
movzx edx, byte [eax + edx]
add edi, 1
cmp edx, ecx
mov dword [ebp + 0xc], edi
jne 0x409bd1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [edi]
add edi, 1
cmp eax, ecx
mov dword [ebp + 0xc], edi
jne 0x409bd1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
xor ebx, ebx
mov bh, byte [eax + 1]
add eax, 3
mov dword [ebp + 0xc], eax
mov bl, byte [eax - 1]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
jmp 0x40bd17
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov ch, byte [eax + 1]
xor edx, edx
xor ebx, ebx
cmp byte [eax], 0x2d
mov dword [esp + 0x14], ebx
sete dl
add eax, 3
mov cl, byte [eax - 1]
mov dword [ebp + 0xc], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], ecx
jmp 0x40bd17
mov eax, 1
xor ebx, ebx
add dword [ebp + 0xc], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ebx
jmp 0x40bd0f
mov ebx, 1
add dword [ebp + 0xc], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], ebx
jmp 0x40bd0f
mov eax, 1
xor ebx, ebx
add dword [ebp + 0xc], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
jmp 0x40bd17
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov ch, byte [eax + 1]
xor ebx, ebx
add eax, 3
mov dword [esp + 0x28], 1
mov dword [esp + 0x14], ebx
mov dword [ebp + 0xc], eax
mov cl, byte [eax - 1]
mov dword [esp + 0x10], ecx
jmp 0x40bd17
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
movsx ebx, byte [eax + 0x429c26]
add ecx, 1
sub eax, 0x26
mov dword [ebp + 0xc], ecx
mov ecx, eax
movsx eax, byte [eax + 0x429c54]
and ecx, 1
test eax, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
jne 0x40bd17
mov dword [esp + 0x10], 0x7fffffff
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x54]
mov dword [esp + 0x20], eax
sub eax, esi
cmp ebx, eax
jg case.0x40f7c6.14
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
mov edi, 1
add eax, edi
test byte [ebp + 0x18], 1
mov dword [esp + 0x1c], ecx
mov dword [ebp + 0xc], eax
je 0x40bfc9
cmp dword [esp + 0x2c], 0
mov eax, dword [edx + 0x24]
movzx edx, byte [ecx + eax]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
je 0x40bdea
cmp ebx, edi
mov dword [esp + 0xc], edi
jl 0x40be09
nop
movzx edx, byte [esi]
add esi, 1
cmp edx, 0xc0
jb 0x40bdbf
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
mov ecx, dword [eax*4 + 0x42a018]
and ecx, edx
lea edi, [eax + eax*2]
add edi, edi
mov edx, ecx
mov ecx, edi
shl edx, cl
test eax, eax
jle 0x40bdbf
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40bda2
mov ebx, dword [esp + 0x14]
cmp edx, 0x100
jae 0x40bdcf
mov ecx, dword [esp + 0x18]
movzx edx, byte [ecx + edx]
cmp dword [esp + 0x1c], edx
je case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, ebx
mov dword [esp + 0xc], eax
jle 0x40bd70
jmp 0x40be09
cmp ebx, edi
mov ecx, edi
jl 0x40be09
movzx edi, byte [esi]
movzx edi, byte [edi + eax]
add esi, 1
cmp edx, edi
je case.0x40f7c6.14
add ecx, 1
cmp ecx, ebx
jle 0x40bdf0
cmp ebx, dword [esp + 0x10]
je 0x409bd1
cmp dword [esp + 0x24], 0
jne 0x40eb26
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x24], esi
je 0x40bf4d
cmp ebx, dword [esp + 0x10]
mov dword [esp + 0xc], ebx
jge 0x40bec6
jmp 0x40be40
cmp esi, dword [esp + 0x20]
mov edi, 1
jae 0x40bec6
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40be99
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40be96
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40be81
add edi, 1
cmp edx, 0x100
jae 0x40bea9
mov ecx, dword [esp + 0x18]
movzx edx, byte [ecx + edx]
cmp dword [esp + 0x1c], edx
je 0x40bec6
mov eax, dword [esp + 0xc]
add eax, 1
add esi, edi
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40be40
cmp dword [esp + 0x28], 0
jne 0x409bd1
mov edi, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
add edi, 1
push edi
push 0
push ecx
mov ecx, dword [ebp + 0x10]
push edx
push eax
push ecx
push ebx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
nop
mov edx, esi
sub esi, 1
cmp edx, dword [esp + 0x24]
je 0x40bfc0
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x40bf25
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x40bf17
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
push edi
push 0
push edx
mov edx, dword [ebp + 0x10]
push eax
push ecx
push edx
push ebx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40bf00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
cmp ebx, eax
jge 0x40bf78
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
cmp esi, edx
jae 0x40bf78
movzx edi, byte [esi]
movzx edi, byte [edi + ecx]
cmp dword [esp + 0x1c], edi
je 0x40bf78
add ebx, 1
add esi, 1
cmp ebx, eax
jl 0x40bf5d
cmp dword [esp + 0x28], 0
jne 0x409bd1
cmp esi, dword [esp + 0x24]
jb 0x40bfc0
mov edi, dword [ebp + 0x24]
mov ebx, dword [ebp + 0xc]
add edi, 1
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push edi
push 0
push eax
mov eax, dword [ebp + 0x10]
push ecx
push edx
push eax
push ebx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
sub esi, 1
cmp esi, dword [esp + 0x24]
jae 0x40bf92
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x2c], 0
je 0x40c04e
cmp ebx, edi
mov dword [esp + 0xc], edi
jl 0x40c067
movzx edx, byte [esi]
add esi, 1
cmp edx, 0xc0
jb 0x40c033
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
mov ecx, dword [eax*4 + 0x42a018]
and ecx, edx
lea edi, [eax + eax*2]
add edi, edi
mov edx, ecx
mov ecx, edi
shl edx, cl
test eax, eax
jle 0x40c033
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40c016
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x1c], edx
je case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, ebx
mov dword [esp + 0xc], eax
jle 0x40bfe0
jmp 0x40c067
cmp ebx, edi
mov eax, edi
jl 0x40c067
movzx edx, byte [esi]
add esi, edi
cmp ecx, edx
je case.0x40f7c6.14
add eax, edi
cmp eax, ebx
jle 0x40c054
cmp ebx, dword [esp + 0x10]
je 0x409bd1
cmp dword [esp + 0x24], 0
jne 0x40ecab
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x24], esi
je 0x40c19d
cmp ebx, dword [esp + 0x10]
mov dword [esp + 0xc], ebx
jge 0x40c112
lea esp, [esp]
cmp esi, dword [esp + 0x20]
mov edi, 1
jae 0x40c112
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40c0f9
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40c0f6
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40c0e1
add edi, 1
cmp dword [esp + 0x1c], edx
je 0x40c112
mov eax, dword [esp + 0xc]
add eax, 1
add esi, edi
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40c0a0
cmp dword [esp + 0x28], 0
jne 0x409bd1
mov edi, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
add edi, 1
push edi
push 0
push ecx
mov ecx, dword [ebp + 0x10]
push edx
push eax
push ecx
push ebx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
jmp 0x40c150
mov edx, esi
sub esi, 1
cmp edx, dword [esp + 0x24]
je 0x40c20e
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x40c175
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x40c167
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
push edi
push 0
push edx
mov edx, dword [ebp + 0x10]
push eax
push ecx
push edx
push ebx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40c150
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
cmp ebx, eax
jge 0x40c1c2
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
cmp esi, edx
jae 0x40c1c2
movzx edi, byte [esi]
cmp ecx, edi
je 0x40c1c2
add ebx, 1
add esi, 1
cmp ebx, eax
jl 0x40c1ad
cmp dword [esp + 0x28], 0
jne 0x409bd1
cmp esi, dword [esp + 0x24]
jb 0x40c20e
mov edi, dword [ebp + 0x24]
mov ebx, dword [ebp + 0xc]
add edi, 1
lea esp, [esp]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push edi
push 0
push eax
mov eax, dword [ebp + 0x10]
push ecx
push edx
push eax
push ebx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
sub esi, 1
cmp esi, dword [esp + 0x24]
jae 0x40c1e0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov ch, byte [eax + 1]
add eax, 3
mov dword [esp + 0x24], 1
mov dword [ebp + 0xc], eax
mov cl, byte [eax - 1]
mov edi, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
jmp 0x40c311
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dh, byte [eax + 1]
xor ecx, ecx
xor edi, edi
cmp byte [eax], 0x3a
mov dword [esp + 0x14], edi
sete cl
add eax, 3
mov dl, byte [eax - 1]
mov dword [ebp + 0xc], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], edx
jmp 0x40c311
mov eax, 1
xor edi, edi
add dword [ebp + 0xc], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], edi
jmp 0x40c309
mov edi, 1
add dword [ebp + 0xc], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], edi
jmp 0x40c309
mov eax, 1
xor edi, edi
add dword [ebp + 0xc], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
jmp 0x40c311
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dh, byte [eax + 1]
xor edi, edi
add eax, 3
mov dword [esp + 0x28], 1
mov dword [esp + 0x14], edi
mov dword [ebp + 0xc], eax
mov dl, byte [eax - 1]
mov dword [esp + 0x10], edx
jmp 0x40c311
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
movsx edi, byte [eax + 0x429c19]
add ecx, 1
sub eax, 0x33
mov dword [ebp + 0xc], ecx
mov ecx, eax
movsx eax, byte [eax + 0x429c54]
and ecx, 1
test eax, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
jne 0x40c311
mov dword [esp + 0x10], 0x7fffffff
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
add edx, 1
cmp eax, 0xe
mov dword [esp + 0x18], eax
mov dword [ebp + 0xc], edx
je 0x40c330
cmp eax, 0xd
je 0x40c330
or ecx, 0xffffffff
jmp 0x40c351
xor ecx, ecx
cmp eax, 0xd
sete cl
add edx, 1
mov dword [ebp + 0xc], edx
add dword [ebp + 0xc], 1
mov dword [esp + 0x40], ecx
movzx ecx, byte [edx - 1]
movzx edx, byte [edx]
mov dword [esp + 0x30], edx
mov edx, dword [ebx + 0x54]
mov dword [esp + 0x20], edx
sub edx, esi
cmp edi, edx
mov dword [esp + 0x1c], ecx
jg case.0x40f7c6.14
test edi, edi
jle 0x40cdab
test ecx, ecx
jl 0x40c6b5
cmp ecx, 4
ja case.default.0x40aa9f
jmp dword [ecx*4 + 0x40fa48]
cmp dword [esp + 0x40], 0
jne case.0x40f7c6.14
mov ecx, 1
cmp edi, ecx
jl 0x40cdab
mov edx, dword [esp + 0x20]
cmp esi, edx
jae case.0x40f7c6.14
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x40c3c7
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
test eax, eax
jle 0x40c3c7
add esi, eax
add ecx, 1
cmp ecx, edi
jle 0x40c3a2
jmp 0x40cdab
cmp edi, 1
mov dword [esp + 0xc], 1
jl 0x40cdab
mov eax, dword [ebp + 0x14]
cmp esi, dword [eax + 0x54]
jae case.0x40f7c6.14
movzx edx, byte [esi]
add esi, 1
cmp edx, 0xc0
jb 0x40c43b
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x42a030]
mov ebx, dword [eax*4 + 0x42a018]
lea edi, [eax + eax*2]
add edi, edi
and ebx, edx
mov ecx, edi
shl ebx, cl
test eax, eax
mov edx, ebx
jle 0x40c43b
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40c422
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x3c]
push ecx
push edx
call fcn.00410aa0
mov eax, dword [esp + 0x44]
add esp, 0xc
cmp eax, 9
je 0x40c465
cmp eax, 5
je 0x40c465
cmp eax, 8
je 0x40c465
xor eax, eax
jmp 0x40c46a
mov eax, 1
cmp eax, dword [esp + 0x40]
je case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jle 0x40c3e4
mov ebx, dword [ebp + 0x14]
mov edi, dword [esp + 0x14]
jmp 0x40cdab
cmp edi, 1
mov dword [esp + 0xc], 1
jl 0x40cdab
jmp 0x40c4b0
mov edx, dword [ebp + 0x14]
cmp esi, dword [edx + 0x54]
jae case.0x40f7c6.14
movzx edx, byte [esi]
add esi, 1
cmp edx, 0xc0
jb 0x40c507
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
mov ebx, dword [eax*4 + 0x42a018]
lea edi, [eax + eax*2]
add edi, edi
and ebx, edx
mov ecx, edi
shl ebx, cl
test eax, eax
mov edx, ebx
jle 0x40c507
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40c4ee
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x3c]
push eax
push edx
call fcn.00410aa0
xor ecx, ecx
add esp, 0xc
cmp eax, dword [esp + 0x30]
sete cl
cmp ecx, dword [esp + 0x40]
je case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jle 0x40c4b0
mov ebx, dword [ebp + 0x14]
mov edi, dword [esp + 0x14]
jmp 0x40cdab
cmp edi, 1
mov dword [esp + 0xc], 1
jl 0x40cdab
nop
mov edx, dword [ebp + 0x14]
cmp esi, dword [edx + 0x54]
jae case.0x40f7c6.14
movzx edx, byte [esi]
add esi, 1
cmp edx, 0xc0
jb 0x40c5b7
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
mov ebx, dword [eax*4 + 0x42a018]
lea edi, [eax + eax*2]
add edi, edi
and ebx, edx
mov ecx, edi
shl ebx, cl
test eax, eax
mov edx, ebx
jle 0x40c5b7
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40c59e
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x3c]
push eax
push edx
call fcn.00410aa0
mov edx, dword [esp + 0x3c]
xor ecx, ecx
add esp, 0xc
cmp dword [esp + 0x38], edx
sete cl
cmp ecx, dword [esp + 0x40]
je case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jle 0x40c560
mov ebx, dword [ebp + 0x14]
mov edi, dword [esp + 0x14]
jmp 0x40cdab
cmp edi, 1
mov dword [esp + 0xc], 1
jl 0x40cdab
mov eax, dword [ebp + 0x14]
cmp esi, dword [eax + 0x54]
jae case.0x40f7c6.14
movzx edx, byte [esi]
add esi, 1
cmp edx, 0xc0
jb 0x40c66a
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x42a030]
mov ebx, dword [eax*4 + 0x42a018]
lea edi, [eax + eax*2]
add edi, edi
and ebx, edx
mov ecx, edi
shl ebx, cl
test eax, eax
mov edx, ebx
jle 0x40c66a
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40c651
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x3c]
push ecx
push edx
call fcn.00410aa0
mov eax, dword [esp + 0x3c]
xor edx, edx
add esp, 0xc
cmp dword [esp + 0x3c], eax
sete dl
cmp edx, dword [esp + 0x40]
je case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jle 0x40c613
mov ebx, dword [ebp + 0x14]
mov edi, dword [esp + 0x14]
jmp 0x40cdab
cmp eax, 0x10
jne 0x40c7f1
cmp edi, 1
mov dword [esp + 0xc], 1
jl 0x40cdab
nop
movzx edx, byte [esi]
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40c726
cmp edx, 0xc0
jb 0x40c726
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x42a030]
mov ebx, dword [eax*4 + 0x42a018]
lea edi, [eax + eax*2]
add edi, edi
and ebx, edx
mov ecx, edi
shl ebx, cl
test eax, eax
mov edx, ebx
jle 0x40c726
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40c70d
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x3c]
push ecx
push edx
call fcn.00410aa0
add esp, 0xc
cmp eax, 2
je case.0x40f7c6.14
mov edx, dword [ebp + 0x14]
cmp esi, dword [edx + 0x54]
jae 0x40c7d0
mov edi, edi
cmp dword [esp + 0x2c], 0
movzx edx, byte [esi]
mov edi, 1
je 0x40c7ae
cmp edx, 0xc0
jb 0x40c7ae
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40c7ab
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40c796
add edi, 1
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x3c]
push eax
push edx
call fcn.00410aa0
add esp, 0xc
cmp eax, 2
jne 0x40c7d0
mov ecx, dword [ebp + 0x14]
add esi, edi
cmp esi, dword [ecx + 0x54]
jb 0x40c750
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jle 0x40c6d0
mov ebx, dword [ebp + 0x14]
mov edi, dword [esp + 0x14]
jmp 0x40cdab
add eax, 0xfffffffb
cmp dword [esp + 0x2c], 0
je 0x40cba0
cmp eax, 0xa
ja case.default.0x40aa9f
jmp dword [eax*4 + 0x40fa5c]
cmp edi, 1
mov dword [esp + 0xc], 1
jl 0x40cdab
mov ecx, dword [esp + 0x20]
cmp esi, ecx
jae case.0x40f7c6.14
test byte [ebp + 0x18], 4
jne 0x40c87c
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x40c857
mov edx, dword [esp + 0x2c]
push edx
lea edx, [ebx + 0x1c]
push edx
push ecx
push eax
push esi
call fcn.00410bc0
add esp, 0x14
test eax, eax
jne case.0x40f7c6.14
jmp 0x40c87c
mov eax, dword [ebx + 0x1c]
sub ecx, eax
cmp esi, ecx
ja 0x40c87c
mov cl, byte [esi]
cmp cl, byte [ebx + 0x20]
jne 0x40c87c
cmp eax, 1
je case.0x40f7c6.14
mov dl, byte [esi + 1]
cmp dl, byte [ebx + 0x21]
je case.0x40f7c6.14
mov ecx, dword [ebx + 0x54]
add esi, 1
cmp esi, ecx
jae 0x40c896
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x40c896
add esi, 1
cmp esi, dword [ebx + 0x54]
jb 0x40c886
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, edi
mov dword [esp + 0xc], eax
jle 0x40c824
jmp 0x40cdab
cmp edi, 1
mov dword [esp + 0xc], 1
jl 0x40cdab
nop
cmp esi, dword [esp + 0x20]
jae case.0x40f7c6.14
movzx edi, byte [esi]
add esi, 1
cmp edi, 0xc0
jb 0x40c911
mov ecx, edi
and ecx, 0x3f
movzx eax, byte [ecx + 0x42a030]
mov edx, dword [eax*4 + 0x42a018]
lea ecx, [eax + eax*2]
and edx, edi
add ecx, ecx
shl edx, cl
test eax, eax
mov edi, edx
jle 0x40c911
movzx edx, byte [esi]
sub ecx, 6
and edx, 0x3f
shl edx, cl
sub eax, 1
add esi, 1
or edi, edx
test eax, eax
jg 0x40c8fa
cmp edi, 0x85
ja 0x40c942
je 0x40c95a
cmp edi, 0xa
jb case.0x40f7c6.14
cmp edi, 0xc
jbe 0x40c95a
cmp edi, 0xd
jne case.0x40f7c6.14
cmp esi, dword [esp + 0x20]
jae 0x40c95a
cmp byte [esi], 0xa
jne 0x40c95a
add esi, 1
jmp 0x40c95a
cmp edi, 0x2028
jb case.0x40f7c6.14
cmp edi, 0x2029
ja case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jle 0x40c8c0
mov edi, dword [esp + 0x14]
jmp 0x40cdab
cmp edi, 1
mov dword [esp + 0xc], 1
jl 0x40cdab
lea esp, [esp]
cmp esi, dword [esp + 0x20]
jae case.0x40f7c6.14
movzx edx, byte [esi]
add esi, 1
cmp edx, 0xc0
jb 0x40c9e9
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
mov ebx, dword [eax*4 + 0x42a018]
lea edi, [eax + eax*2]
add edi, edi
and ebx, edx
mov ecx, edi
shl ebx, cl
test eax, eax
mov edx, ebx
jle 0x40c9e9
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40c9d0
cmp edx, 0x80
jae 0x40ca01
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x28]
test byte [edx + eax], 4
jne case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jle 0x40c990
mov ebx, dword [ebp + 0x14]
mov edi, dword [esp + 0x14]
jmp 0x40cdab
mov ecx, 1
cmp edi, ecx
jl 0x40cdab
cmp esi, dword [esp + 0x20]
jae case.0x40f7c6.14
mov al, byte [esi]
cmp al, 0x80
jae case.0x40f7c6.14
movzx edx, al
mov eax, dword [ebx + 0x28]
mov dl, byte [edx + eax]
and dl, 4
add esi, 1
test dl, dl
je case.0x40f7c6.14
add ecx, 1
cmp ecx, edi
jle 0x40ca2f
jmp 0x40cdab
mov ecx, 1
cmp edi, ecx
jl 0x40cdab
mov edx, dword [esp + 0x20]
cmp esi, edx
jae case.0x40f7c6.14
mov al, byte [esi]
cmp al, 0x80
jae 0x40ca9f
mov edx, dword [ebx + 0x28]
movzx eax, al
mov al, byte [eax + edx]
and al, 1
add esi, 1
test al, al
jne case.0x40f7c6.14
mov edx, dword [esp + 0x20]
cmp esi, edx
jae 0x40cab3
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x40cab3
add esi, 1
cmp esi, dword [ebx + 0x54]
jb 0x40caa3
add ecx, 1
cmp ecx, edi
jle 0x40ca77
jmp 0x40cdab
mov ecx, 1
cmp edi, ecx
jl 0x40cdab
cmp esi, dword [esp + 0x20]
jae case.0x40f7c6.14
mov al, byte [esi]
cmp al, 0x80
jae case.0x40f7c6.14
movzx edx, al
mov eax, dword [ebx + 0x28]
mov dl, byte [edx + eax]
and dl, 1
add esi, 1
test dl, dl
je case.0x40f7c6.14
add ecx, 1
cmp ecx, edi
jle 0x40cacc
jmp 0x40cdab
mov ecx, 1
cmp edi, ecx
jl 0x40cdab
mov edx, dword [esp + 0x20]
cmp esi, edx
jae case.0x40f7c6.14
mov al, byte [esi]
cmp al, 0x80
jae 0x40cb3c
mov edx, dword [ebx + 0x28]
movzx eax, al
mov al, byte [eax + edx]
and al, 0x10
add esi, 1
test al, al
jne case.0x40f7c6.14
mov edx, dword [esp + 0x20]
cmp esi, edx
jae 0x40cb50
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x40cb50
add esi, 1
cmp esi, dword [ebx + 0x54]
jb 0x40cb40
add ecx, 1
cmp ecx, edi
jle 0x40cb14
jmp 0x40cdab
mov ecx, 1
cmp edi, ecx
jl 0x40cdab
cmp esi, dword [esp + 0x20]
jae case.0x40f7c6.14
mov al, byte [esi]
cmp al, 0x80
jae case.0x40f7c6.14
movzx edx, al
mov eax, dword [ebx + 0x28]
mov dl, byte [edx + eax]
and dl, 0x10
add esi, 1
test dl, dl
je case.0x40f7c6.14
add ecx, 1
cmp ecx, edi
jle 0x40cb69
jmp 0x40cdab
cmp eax, 0xa
ja case.default.0x40aa9f
jmp dword [eax*4 + 0x40fa88]
test byte [ebp + 0x18], 4
jne case.0x40cba9.7
cmp edi, 1
mov dword [esp + 0xc], 1
jl 0x40cdab
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x40cbf8
mov eax, dword [ebx + 0x54]
cmp esi, eax
jae 0x40cc20
push 0
lea edx, [ebx + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.00410bc0
add esp, 0x14
test eax, eax
jne case.0x40f7c6.14
jmp 0x40cc20
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x54]
sub ecx, eax
cmp esi, ecx
ja 0x40cc20
mov dl, byte [esi]
cmp dl, byte [ebx + 0x20]
jne 0x40cc20
cmp eax, 1
je case.0x40f7c6.14
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x21]
je case.0x40f7c6.14
mov eax, dword [esp + 0xc]
add eax, 1
add esi, 1
cmp eax, edi
mov dword [esp + 0xc], eax
jle 0x40cbcb
jmp 0x40cdab
add esi, edi
jmp 0x40cdab
mov ecx, 1
cmp edi, ecx
jl 0x40cdab
mov edx, dword [esp + 0x20]
nop
cmp esi, edx
jae case.0x40f7c6.14
movzx eax, byte [esi]
sub eax, 0xa
add esi, 1
cmp eax, 0x7b
ja case.0x40f7c6.14
movzx eax, byte [eax + 0x40fac0]
jmp dword [eax*4 + 0x40fab4]
cmp esi, edx
jae case.0x40cc71.10
cmp byte [esi], 0xa
jne case.0x40cc71.10
add esi, 1
add ecx, 1
cmp ecx, edi
jle 0x40cc50
jmp 0x40cdab
mov eax, 1
cmp edi, eax
jl 0x40cdab
mov ecx, dword [ebx + 0x28]
movzx edx, byte [esi]
mov dl, byte [edx + ecx]
and dl, 4
add esi, 1
test dl, dl
jne case.0x40f7c6.14
add eax, 1
cmp eax, edi
jle 0x40cca0
jmp 0x40cdab
mov eax, 1
cmp edi, eax
jl 0x40cdab
mov ecx, dword [ebx + 0x28]
movzx edx, byte [esi]
mov dl, byte [edx + ecx]
and dl, 4
add esi, 1
test dl, dl
je case.0x40f7c6.14
add eax, 1
cmp eax, edi
jle 0x40ccd0
jmp 0x40cdab
mov eax, 1
cmp edi, eax
jl 0x40cdab
mov ecx, dword [ebx + 0x28]
movzx edx, byte [esi]
mov dl, byte [edx + ecx]
and dl, 1
add esi, 1
test dl, dl
jne case.0x40f7c6.14
add eax, 1
cmp eax, edi
jle 0x40cd00
jmp 0x40cdab
mov eax, 1
cmp edi, eax
jl 0x40cdab
mov ecx, dword [ebx + 0x28]
movzx edx, byte [esi]
mov dl, byte [edx + ecx]
and dl, 1
add esi, 1
test dl, dl
je case.0x40f7c6.14
add eax, 1
cmp eax, edi
jle 0x40cd30
jmp 0x40cdab
mov eax, 1
cmp edi, eax
jl 0x40cdab
mov ecx, dword [ebx + 0x28]
movzx edx, byte [esi]
mov dl, byte [edx + ecx]
and dl, 0x10
add esi, 1
test dl, dl
jne case.0x40f7c6.14
add eax, 1
cmp eax, edi
jle 0x40cd60
jmp 0x40cdab
mov eax, 1
cmp edi, eax
jl 0x40cdab
mov ecx, dword [ebx + 0x28]
lea esp, [esp]
movzx edx, byte [esi]
mov dl, byte [edx + ecx]
and dl, 0x10
add esi, 1
test dl, dl
je case.0x40f7c6.14
add eax, 1
cmp eax, edi
jle 0x40cd90
cmp edi, dword [esp + 0x10]
je 0x409bd1
cmp dword [esp + 0x24], 0
mov eax, dword [esp + 0x1c]
jne 0x40ee11
test eax, eax
mov dword [esp + 0x24], esi
jl 0x40d196
cmp eax, 4
ja case.default.0x40cdd9
jmp dword [eax*4 + 0x40fb3c]
cmp edi, dword [esp + 0x10]
mov edx, edi
jge case.default.0x40cdd9
mov edi, dword [ebx + 0x54]
nop
cmp esi, edi
mov ecx, 1
jae case.default.0x40cdd9
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x40ce14
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
lea ecx, [eax + 1]
cmp dword [esp + 0x40], 0
jne case.default.0x40cdd9
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x10]
jl 0x40cdf0
jmp case.default.0x40cdd9
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], edi
jge case.default.0x40cdd9
lea ecx, [ecx]
cmp esi, dword [ebx + 0x54]
mov edi, 1
jae case.default.0x40cdd9
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40ce9f
mov ecx, edx
and ecx, 0x3f
movzx edi, byte [ecx + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40ce99
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40ce84
mov ebx, dword [ebp + 0x14]
add edi, 1
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x3c]
push eax
push edx
call fcn.00410aa0
mov eax, dword [esp + 0x44]
add esp, 0xc
cmp eax, 9
je 0x40cec9
cmp eax, 5
je 0x40cec9
cmp eax, 8
je 0x40cec9
xor eax, eax
jmp 0x40cece
mov eax, 1
cmp eax, dword [esp + 0x40]
je case.default.0x40cdd9
mov eax, dword [esp + 0xc]
add eax, 1
add esi, edi
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40ce40
jmp case.default.0x40cdd9
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], edi
jge case.default.0x40cdd9
cmp esi, dword [ebx + 0x54]
mov edi, 1
jae case.default.0x40cdd9
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40cf61
mov ecx, edx
and ecx, 0x3f
movzx edi, byte [ecx + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40cf5b
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40cf46
mov ebx, dword [ebp + 0x14]
add edi, 1
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x3c]
push eax
push edx
call fcn.00410aa0
xor ecx, ecx
add esp, 0xc
cmp eax, dword [esp + 0x30]
sete cl
cmp ecx, dword [esp + 0x40]
je case.default.0x40cdd9
mov eax, dword [esp + 0xc]
add eax, 1
add esi, edi
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40cf02
jmp case.default.0x40cdd9
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], edi
jge case.default.0x40cdd9
cmp esi, dword [ebx + 0x54]
mov edi, 1
jae case.default.0x40cdd9
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40d014
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40d00e
movzx ebx, byte [esi + eax]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40cff9
mov ebx, dword [ebp + 0x14]
add edi, 1
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x3c]
push eax
push edx
call fcn.00410aa0
mov edx, dword [esp + 0x3c]
xor ecx, ecx
add esp, 0xc
cmp dword [esp + 0x38], edx
sete cl
cmp ecx, dword [esp + 0x40]
je case.default.0x40cdd9
mov eax, dword [esp + 0xc]
add eax, 1
add esi, edi
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40cfb1
jmp case.default.0x40cdd9
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], edi
jge case.default.0x40cdd9
jmp 0x40d070
cmp esi, dword [ebx + 0x54]
mov edi, 1
jae case.default.0x40cdd9
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40d0cf
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40d0c9
movzx ebx, byte [esi + eax]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40d0b4
mov ebx, dword [ebp + 0x14]
add edi, 1
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x3c]
push eax
push edx
call fcn.00410aa0
mov edx, dword [esp + 0x3c]
xor ecx, ecx
add esp, 0xc
cmp dword [esp + 0x3c], edx
sete cl
cmp ecx, dword [esp + 0x40]
je case.default.0x40cdd9
mov eax, dword [esp + 0xc]
add eax, 1
add esi, edi
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40d070
cmp dword [esp + 0x28], 0
jne 0x409bd1
mov edi, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
add edi, 1
push edi
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push ebx
push eax
push ecx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov edx, esi
sub esi, 1
cmp edx, dword [esp + 0x24]
je 0x40dd95
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x40d16e
lea esp, [esp]
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x40d160
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
push edi
push 0
push edx
mov edx, dword [ebp + 0xc]
push eax
push ebx
push ecx
push edx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40d142
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
cmp eax, 0x10
jne 0x40d3cc
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], edi
jge 0x40d2e0
mov eax, dword [ebp + 0x14]
cmp esi, dword [eax + 0x54]
jae 0x40d2e0
movzx edx, byte [esi]
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40d21b
cmp edx, 0xc0
jb 0x40d21b
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x42a030]
mov ebx, dword [eax*4 + 0x42a018]
lea edi, [eax + eax*2]
add edi, edi
and ebx, edx
mov ecx, edi
shl ebx, cl
test eax, eax
mov edx, ebx
jle 0x40d21b
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40d202
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x3c]
push ecx
push edx
call fcn.00410aa0
add esp, 0xc
cmp eax, 2
je 0x40d2e0
mov edx, dword [ebp + 0x14]
cmp esi, dword [edx + 0x54]
jae 0x40d2cb
cmp dword [esp + 0x2c], 0
movzx edx, byte [esi]
mov edi, 1
je 0x40d2a5
cmp edx, 0xc0
jb 0x40d2a5
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40d2a2
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40d28d
add edi, 1
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x3c]
push eax
push edx
call fcn.00410aa0
add esp, 0xc
cmp eax, 2
jne 0x40d2cb
mov ecx, dword [ebp + 0x14]
add esi, edi
cmp esi, dword [ecx + 0x54]
jb 0x40d243
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40d1b1
cmp dword [esp + 0x28], 0
jne 0x409bd1
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
add eax, 1
push eax
push 0
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0x10]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push eax
push ecx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
lea ecx, [ecx]
mov edx, esi
sub esi, 1
cmp edx, dword [esp + 0x24]
je 0x40dd95
nop
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x40d34e
lea esp, [esp]
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x40d340
cmp dword [esp + 0x2c], 0
movzx edx, byte [esi]
je 0x40d3a8
cmp edx, 0xc0
jb 0x40d3a8
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40d3a8
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40d393
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x3c]
push eax
push edx
call fcn.00410aa0
add esp, 0xc
cmp eax, 2
jne 0x40f86d
sub esi, 1
jmp 0x40d330
add eax, 0xfffffffb
cmp dword [esp + 0x2c], 0
je 0x40db08
cmp eax, 0xa
ja case.default.0x40aa9f
jmp dword [eax*4 + 0x40fb50]
mov edx, dword [esp + 0x10]
cmp edx, 0x7fffffff
jge 0x40d4de
test byte [ebp + 0x18], 4
jne 0x40d4a0
cmp edi, edx
jge 0x40da85
lea esp, [esp]
mov eax, dword [ebx + 0x54]
cmp esi, eax
jae 0x40da85
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x40d44b
mov edx, dword [esp + 0x2c]
push edx
lea edx, [ebx + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.00410bc0
add esp, 0x14
test eax, eax
jne 0x40da85
mov edx, dword [esp + 0x10]
jmp 0x40d474
mov ecx, dword [ebx + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x40d474
mov al, byte [esi]
cmp al, byte [ebx + 0x20]
jne 0x40d474
cmp ecx, 1
je 0x40da85
mov cl, byte [esi + 1]
cmp cl, byte [ebx + 0x21]
je 0x40da85
add esi, 1
cmp esi, dword [ebx + 0x54]
jae 0x40d490
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x40d490
add esi, 1
cmp esi, dword [ebx + 0x54]
jb 0x40d480
add edi, 1
cmp edi, edx
jl 0x40d410
jmp 0x40da85
cmp edi, edx
jge 0x40da85
mov eax, dword [ebx + 0x54]
jmp 0x40d4b0
cmp esi, eax
jae 0x40da85
add esi, 1
cmp esi, eax
jae 0x40d4d2
nop
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x40d4d2
add esi, 1
cmp esi, dword [ebx + 0x54]
jb 0x40d4c0
add edi, 1
cmp edi, edx
jl 0x40d4b0
jmp 0x40da85
test byte [ebp + 0x18], 4
jne 0x40d55f
cmp edi, edx
jge 0x40da85
mov eax, dword [ebx + 0x54]
cmp esi, eax
jae 0x40da85
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x40d52b
mov edx, dword [esp + 0x2c]
push edx
lea edx, [ebx + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.00410bc0
add esp, 0x14
test eax, eax
jne 0x40da85
mov edx, dword [esp + 0x10]
jmp 0x40d550
mov ecx, dword [ebx + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x40d550
mov al, byte [esi]
cmp al, byte [ebx + 0x20]
jne 0x40d550
cmp ecx, 1
je 0x40da85
mov cl, byte [esi + 1]
cmp cl, byte [ebx + 0x21]
je 0x40da85
add edi, 1
add esi, 1
cmp edi, edx
jl 0x40d4f0
jmp 0x40da85
sub edx, edi
mov ecx, edx
mov eax, dword [ebx + 0x54]
sub eax, esi
cmp ecx, eax
jbe 0x40d56e
mov ecx, eax
add esi, ecx
jmp 0x40da85
mov eax, dword [esp + 0x10]
sub eax, edi
mov ecx, eax
jmp 0x40d563
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], edi
jge 0x40da85
mov edx, dword [ebx + 0x54]
mov dword [esp + 0x20], edx
jmp 0x40d5a0
cmp esi, dword [esp + 0x20]
mov edx, 1
jae 0x40da85
movzx edi, byte [esi]
cmp edi, 0xc0
jb 0x40d604
mov eax, edi
and eax, 0x3f
movzx edx, byte [eax + 0x42a030]
mov eax, dword [edx*4 + 0x42a018]
and eax, edi
lea ecx, [edx + edx*2]
add ecx, ecx
shl eax, cl
mov edi, eax
mov eax, 1
cmp edx, eax
jl 0x40d5fe
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edi, ebx
cmp eax, edx
jle 0x40d5e9
mov ebx, dword [ebp + 0x14]
add edx, 1
cmp edi, 0xd
jne 0x40d62b
add esi, 1
cmp esi, dword [esp + 0x20]
jae 0x40da85
cmp byte [esi], 0xa
jne 0x40d668
add esi, 1
jmp 0x40d668
cmp edi, 0xa
je 0x40d666
cmp edi, 0xb
je 0x40d666
cmp edi, 0xc
je 0x40d666
cmp edi, 0x85
je 0x40d666
cmp edi, 0x2028
je 0x40d666
cmp edi, 0x2029
jne 0x40da85
add esi, edx
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40d5a0
jmp 0x40da85
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], edi
jge 0x40da85
mov ecx, dword [ebx + 0x54]
mov dword [esp + 0x20], ecx
cmp esi, dword [esp + 0x20]
mov edi, 1
jae 0x40da85
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40d6fb
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40d6f5
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40d6e0
mov ebx, dword [ebp + 0x14]
add edi, 1
cmp edx, 0x100
jae 0x40d710
mov ecx, dword [ebx + 0x28]
test byte [edx + ecx], 4
jne 0x40da85
mov eax, dword [esp + 0xc]
add eax, 1
add esi, edi
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40d697
jmp 0x40da85
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], edi
jge 0x40da85
mov edx, dword [ebx + 0x54]
mov dword [esp + 0x20], edx
cmp esi, dword [esp + 0x20]
mov edi, 1
jae 0x40da85
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40d7a5
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40d79f
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40d78a
mov ebx, dword [ebp + 0x14]
add edi, 1
cmp edx, 0x100
jae 0x40da85
mov ecx, dword [ebx + 0x28]
test byte [edx + ecx], 4
je 0x40da85
mov eax, dword [esp + 0xc]
add eax, 1
add esi, edi
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40d741
jmp 0x40da85
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], edi
jge 0x40da85
mov edx, dword [ebx + 0x54]
mov dword [esp + 0x20], edx
cmp esi, dword [esp + 0x20]
mov edi, 1
jae 0x40da85
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40d853
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40d84d
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40d838
mov ebx, dword [ebp + 0x14]
add edi, 1
cmp edx, 0x100
jae 0x40d868
mov ecx, dword [ebx + 0x28]
test byte [edx + ecx], 1
jne 0x40da85
mov eax, dword [esp + 0xc]
add eax, 1
add esi, edi
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40d7ef
jmp 0x40da85
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], edi
jge 0x40da85
mov edx, dword [ebx + 0x54]
mov dword [esp + 0x20], edx
cmp esi, dword [esp + 0x20]
mov edi, 1
jae 0x40da85
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40d8fd
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40d8f7
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40d8e2
mov ebx, dword [ebp + 0x14]
add edi, 1
cmp edx, 0x100
jae 0x40da85
mov ecx, dword [ebx + 0x28]
test byte [edx + ecx], 1
je 0x40da85
mov eax, dword [esp + 0xc]
add eax, 1
add esi, edi
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40d899
jmp 0x40da85
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], edi
jge 0x40da85
mov edx, dword [ebx + 0x54]
mov dword [esp + 0x20], edx
cmp esi, dword [esp + 0x20]
mov edi, 1
jae 0x40da85
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40d9ab
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40d9a5
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40d990
mov ebx, dword [ebp + 0x14]
add edi, 1
cmp edx, 0x100
jae 0x40d9c0
mov ecx, dword [ebx + 0x28]
test byte [edx + ecx], 0x10
jne 0x40da85
mov eax, dword [esp + 0xc]
add eax, 1
add esi, edi
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40d947
jmp 0x40da85
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], edi
jge 0x40da85
mov edx, dword [ebx + 0x54]
mov dword [esp + 0x20], edx
cmp esi, dword [esp + 0x20]
mov edi, 1
jae 0x40da85
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40da55
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
mov edx, eax
mov eax, 1
cmp edi, eax
jl 0x40da4f
movzx ebx, byte [eax + esi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40da3a
mov ebx, dword [ebp + 0x14]
add edi, 1
cmp edx, 0x100
jae 0x40da85
mov ecx, dword [ebx + 0x28]
test byte [edx + ecx], 0x10
je 0x40da85
mov eax, dword [esp + 0xc]
add eax, 1
add esi, edi
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40d9f1
cmp dword [esp + 0x28], 0
jne 0x409bd1
mov edi, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
add edi, 1
push edi
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push ebx
push eax
push ecx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov edx, esi
sub esi, 1
cmp edx, dword [esp + 0x24]
je 0x40dd95
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x40dae0
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x40dad2
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
push edi
push 0
push edx
mov edx, dword [ebp + 0xc]
push eax
push ebx
push ecx
push edx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40dabb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0xa
ja case.default.0x40aa9f
jmp dword [eax*4 + 0x40fb7c]
test byte [ebp + 0x18], 4
jne case.0x40db11.7
cmp edi, dword [esp + 0x10]
jge 0x40dd4c
lea esp, [esp]
mov eax, dword [ebx + 0x54]
cmp esi, eax
jae 0x40dd4c
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x40db64
push 0
lea edx, [ebx + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.00410bc0
add esp, 0x14
test eax, eax
jne 0x40dd4c
jmp 0x40db8d
mov ecx, dword [ebx + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x40db8d
mov al, byte [esi]
cmp al, byte [ebx + 0x20]
jne 0x40db8d
cmp ecx, 1
je 0x40dd4c
mov cl, byte [esi + 1]
cmp cl, byte [ebx + 0x21]
je 0x40dd4c
add edi, 1
add esi, 1
cmp edi, dword [esp + 0x10]
jl 0x40db30
jmp 0x40dd4c
mov eax, dword [esp + 0x10]
sub eax, edi
mov ecx, eax
mov eax, dword [ebx + 0x54]
sub eax, esi
cmp ecx, eax
jbe 0x40dbb1
mov ecx, eax
add esi, ecx
jmp 0x40dd4c
mov edx, dword [esp + 0x10]
cmp edi, edx
jge 0x40dd4c
mov ecx, dword [ebx + 0x54]
cmp esi, ecx
jae 0x40dd4c
movzx eax, byte [esi]
cmp eax, 0xd
jne 0x40dbf0
add esi, 1
cmp esi, ecx
jae 0x40dd4c
cmp byte [esi], 0xa
jne 0x40dc11
jmp 0x40dc0e
cmp eax, 0xa
je 0x40dc0e
cmp eax, 0xb
je 0x40dc0e
cmp eax, 0xc
je 0x40dc0e
cmp eax, 0x85
jne 0x40dd4c
add esi, 1
add edi, 1
cmp edi, edx
jl 0x40dbc7
jmp 0x40dd4c
mov eax, dword [esp + 0x10]
cmp edi, eax
jge 0x40dd4c
cmp esi, dword [ebx + 0x54]
jae 0x40dd4c
movzx edx, byte [esi]
mov ecx, dword [ebx + 0x28]
test byte [edx + ecx], 4
jne 0x40dd4c
add edi, 1
add esi, 1
cmp edi, eax
jl 0x40dc29
jmp 0x40dd4c
mov eax, dword [esp + 0x10]
cmp edi, eax
jge 0x40dd4c
cmp esi, dword [ebx + 0x54]
jae 0x40dd4c
movzx edx, byte [esi]
mov ecx, dword [ebx + 0x28]
test byte [edx + ecx], 4
je 0x40dd4c
add edi, 1
add esi, 1
cmp edi, eax
jl 0x40dc5d
jmp 0x40dd4c
mov eax, dword [esp + 0x10]
cmp edi, eax
jge 0x40dd4c
cmp esi, dword [ebx + 0x54]
jae 0x40dd4c
movzx edx, byte [esi]
mov ecx, dword [ebx + 0x28]
test byte [edx + ecx], 1
jne 0x40dd4c
add edi, 1
add esi, 1
cmp edi, eax
jl 0x40dc91
jmp 0x40dd4c
mov eax, dword [esp + 0x10]
cmp edi, eax
jge 0x40dd4c
cmp esi, dword [ebx + 0x54]
jae 0x40dd4c
movzx edx, byte [esi]
mov ecx, dword [ebx + 0x28]
test byte [edx + ecx], 1
je 0x40dd4c
add edi, 1
add esi, 1
cmp edi, eax
jl 0x40dcc5
jmp 0x40dd4c
mov eax, dword [esp + 0x10]
cmp edi, eax
jge 0x40dd4c
cmp esi, dword [ebx + 0x54]
jae 0x40dd4c
movzx edx, byte [esi]
mov ecx, dword [ebx + 0x28]
test byte [edx + ecx], 0x10
jne 0x40dd4c
add edi, 1
add esi, 1
cmp edi, eax
jl 0x40dcf9
jmp 0x40dd4c
mov eax, dword [esp + 0x10]
cmp edi, eax
jge 0x40dd4c
cmp esi, dword [ebx + 0x54]
jae 0x40dd4c
movzx edx, byte [esi]
mov ecx, dword [ebx + 0x28]
test byte [edx + ecx], 0x10
je 0x40dd4c
add edi, 1
add esi, 1
cmp edi, eax
jl 0x40dd2d
cmp dword [esp + 0x28], 0
jne 0x409bd1
cmp esi, dword [esp + 0x24]
jb 0x40dd95
mov edi, dword [ebp + 0x24]
add edi, 1
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x10]
push edi
push 0
push eax
mov eax, dword [ebp + 0xc]
push ecx
push ebx
push edx
push eax
push esi
call fcn.00409b50
add esp, 0x20
sub esi, 1
test eax, eax
jne 0x40f8a5
cmp esi, dword [esp + 0x24]
jae 0x40dd67
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor edx, edx
mov dh, byte [edi + 4]
mov dl, byte [edi + 5]
cmp byte [edi + edx + 3], 0x4e
lea edi, [edi + edx + 3]
jne 0x40ddc4
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x4e
je 0x40ddb5
xor eax, eax
add edi, 3
cmp dword [esp + 0x18], 0x5d
setne al
sub eax, 1
and eax, 2
or eax, 4
mov dword [ebp + 0x20], eax
jmp 0x40df9d
xor eax, eax
mov ah, byte [edi + 3]
mov al, byte [edi + 4]
lea ecx, [eax + eax]
cmp ecx, dword [ebx + 0x14]
mov dword [esp + 0x28], eax
jl 0x40dfd2
xor eax, eax
cmp edx, 0x5b
setl al
xor ecx, ecx
mov ch, byte [edi + 1]
sub eax, 1
and eax, 2
mov cl, byte [edi + 2]
mov dword [ebp + 0x20], eax
cmp byte [ecx + edi], 0x4e
jne 0x40de72
lea ecx, [ecx]
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x18]
add eax, 1
push eax
mov eax, dword [ebp + 0x1c]
push edx
mov edx, dword [ebp + 0x10]
push eax
movzx eax, byte [edi]
push ecx
movzx ecx, byte [eax + 0x429f80]
push ebx
push edx
add ecx, edi
push ecx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
xor edx, edx
mov dh, byte [edi + 1]
xor eax, eax
mov dl, byte [edi + 2]
mov ah, byte [edi + edx + 1]
add edi, edx
mov al, byte [edi + 2]
cmp byte [eax + edi], 0x4e
je 0x40de20
mov eax, dword [ebp + 0x20]
movzx ecx, byte [edi]
movzx edx, byte [ecx + 0x429f80]
add edi, edx
or eax, 4
mov dword [ebp + 0x20], eax
jmp 0x40df9d
cmp byte [edi + 3], 0x13
lea ecx, [edi + 3]
mov dword [esp + 0x34], ecx
jne 0x40dea5
mov edx, dword [ebp + 0x18]
movzx ecx, byte [edi + 4]
and edx, 0xfffffff8
or ecx, edx
mov dword [ebp + 0x18], ecx
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x1c]
add ecx, 1
cmp byte [edi], 0x51
push ecx
mov ecx, dword [ebp + 0x18]
jne 0x40deea
push 0
push edx
mov edx, dword [esp + 0x40]
push ecx
push ebx
push eax
push edx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov eax, dword [esp + 0x18]
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x20], 4
jmp 0x40dfa0
push 2
push edx
mov edx, dword [esp + 0x24]
push ecx
push ebx
push eax
push edx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov eax, dword [esp + 0x34]
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x20], 4
jmp 0x40dfa0
cmp byte [edx], 0x5b
sbb ecx, ecx
and ecx, 0xfffffffe
add ecx, 2
cmp byte [edi], 0x51
mov dword [ebp + 0x20], ecx
jne 0x40df68
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x1c]
add ecx, 1
push ecx
push 0
push edx
push eax
mov eax, dword [ebp + 0x10]
push ebx
push eax
add edi, 3
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov ecx, dword [esp + 0x18]
or dword [ebp + 0x20], 4
mov dword [ebp + 0xc], ecx
jmp 0x40dfa0
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
add edx, 1
push edx
mov edx, dword [ebp + 0x1c]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push eax
mov eax, dword [ebp + 0x10]
push ebx
push eax
push ecx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
add edi, 3
mov dword [ebp + 0x20], 4
mov dword [ebp + 0xc], edi
mov edx, dword [ebx]
cmp edx, dword [ebx + 4]
jb 0x409b7a
add dword [ebx], 1
mov eax, 0xfffffff8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xffffffeb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xffffffea
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + ecx*4]
mov ecx, dword [eax + ecx*4 + 4]
mov dword [esp + 0x4c], edx
mov edx, dword [ebx + 0x10]
sub edx, dword [esp + 0x28]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + edx*4]
lea eax, [eax + edx*4]
mov edx, dword [ebx + 0x64]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], edx
xor edx, edx
mov ecx, esi
sub ecx, dword [ebx + 0x50]
cmp dword [esp + 0x18], 0x5c
mov dword [eax], ecx
mov eax, dword [ebp + 0x24]
setne dl
sub edx, 1
and edx, 2
add eax, 1
mov dword [ebp + 0x20], edx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
push ecx
mov ecx, dword [ebp + 0x18]
push edx
mov edx, dword [ebp + 0x10]
push eax
movzx eax, byte [edi]
push ecx
movzx ecx, byte [eax + 0x429f80]
push ebx
push edx
add ecx, edi
push ecx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov edx, dword [esp + 0x44]
xor eax, eax
mov dword [ebx + 0x64], edx
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x4e
je 0x40e020
mov ecx, dword [esp + 0x28]
mov edx, dword [ebx + 0xc]
mov esi, dword [esp + 0x4c]
lea eax, [ecx + ecx]
mov dword [edx + eax*4], esi
mov edx, dword [ebx + 0xc]
mov esi, dword [esp + 0x34]
mov dword [edx + eax*4 + 4], esi
mov eax, dword [ebx + 0x10]
mov edx, dword [esp + 0x48]
sub eax, ecx
mov ecx, dword [ebx + 0xc]
mov dword [ecx + eax*4], edx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x40], eax
je 0x40e0a8
cmp esi, dword [ebx + 0x58]
je case.0x40f7c6.14
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x5c], esi
mov dword [ebx + 0x60], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x4c]
xor ecx, ecx
mov ch, byte [edi + 1]
mov cl, byte [edi + 2]
add ecx, eax
cmp ecx, eax
mov dword [esp + 0x30], ecx
jne 0x40e0e3
mov dword [esp + 0x54], 0
jmp 0x40e0ef
xor edx, edx
mov dh, byte [ecx + 3]
mov dl, byte [ecx + 4]
mov dword [esp + 0x54], edx
mov eax, dword [ebx + 0x74]
lea ecx, [esp + 0x50]
mov dword [ebx + 0x74], ecx
mov ecx, dword [ebx + 0x10]
add edi, 3
cmp ecx, 0x1e
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x64], ecx
jg 0x40e124
lea eax, [esp + 0xb0]
mov dword [esp + 0x60], eax
jmp 0x40e151
lea edx, [ecx*4]
push edx
call dword [0x437fc8]
add esp, 4
test eax, eax
mov dword [esp + 0x60], eax
jne 0x40e14d
mov eax, 0xfffffffa
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x64]
mov edx, dword [ebx + 0xc]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [ebx + 0x58]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x68], eax
mov dword [ebx + 0x58], esi
mov al, byte [ecx]
add esp, 0xc
cmp al, 0x5b
sbb edi, edi
and edi, 0xfffffffe
add edi, 2
add edx, 1
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x1c]
push ecx
mov ecx, dword [ebp + 0x18]
push edi
push edx
mov edx, dword [ebp + 0x10]
push ecx
movzx eax, al
movzx ecx, byte [eax + 0x429f80]
add ecx, dword [esp + 0x40]
push ebx
push edx
push ecx
push esi
call fcn.00409b50
add esp, 0x20
cmp eax, 1
je 0x40e22c
test eax, eax
jne 0x40f8a5
mov eax, dword [esp + 0x64]
lea edx, [esp + 0x50]
lea ecx, [eax*4]
mov eax, dword [ebx + 0xc]
mov dword [ebx + 0x74], edx
mov edx, dword [esp + 0x60]
push ecx
push edx
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov ch, byte [eax + 1]
add esp, 0xc
mov cl, byte [eax + 2]
add eax, ecx
mov dword [esp + 0x30], eax
mov al, byte [eax]
cmp al, 0x4e
je 0x40e187
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0xb0]
cmp eax, ecx
mov dword [ebx + 0x74], edx
je 0x40e223
push eax
call dword [0x437fcc]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0xb0]
cmp eax, ecx
mov dword [ebx + 0x74], edx
je 0x40e250
push eax
call dword [0x437fcc]
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
mov dword [ebx + 0x5c], esi
mov dword [ebx + 0x60], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffff2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, eax
mov dword [esp + 0x24], esi
mov dword [esp + 0xc], edx
jge 0x40e2ce
lea ecx, [ecx]
mov ecx, dword [ebp + 0x18]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
push ecx
push esi
mov ecx, ebx
call fcn.00409ad0
add esp, 8
test eax, eax
je 0x40e2c4
mov eax, dword [esp + 0xc]
add esi, dword [esp + 0x20]
add eax, 1
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40e290
cmp esi, dword [esp + 0x24]
jb 0x40e310
mov edx, dword [ebp + 0x24]
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x40e2e0
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x10]
push 0
push ecx
push edx
push ebx
push eax
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
sub esi, dword [esp + 0x20]
cmp esi, dword [esp + 0x24]
jae 0x40e2e0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x28]
shr edx, 3
mov dl, byte [edx + ecx]
test dl, al
je case.0x40f7c6.14
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push eax
mov eax, dword [ebp + 0x10]
push 0
push ecx
push edx
push ebx
push eax
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40b04b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
jne 0x40f8a5
mov edx, dword [esp + 0x10]
cmp dword [esp + 0xc], edx
jge case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx eax, byte [esi]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
shr eax, 3
mov al, byte [eax + ecx]
add esi, 1
test al, dl
je case.0x40f7c6.14
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push ecx
mov ecx, dword [ebp + 0x10]
push 0
push edx
push eax
push ebx
push ecx
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40e371
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x24], esi
mov dword [esp + 0xc], eax
je 0x40e565
cmp eax, edx
jge 0x40e4dd
cmp esi, dword [ebx + 0x54]
mov dword [esp + 0x4c], 1
jae 0x40e4dd
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x40e48d
mov ecx, eax
and ecx, 0x3f
movzx ecx, byte [ecx + 0x42a030]
mov dword [esp + 0x40], ecx
lea ecx, [ecx + ecx*2]
add ecx, ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx*4 + 0x42a018]
and ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x30]
shl eax, cl
cmp dword [esp + 0x40], 1
mov dword [esp + 0x48], 1
jl 0x40e482
mov ecx, dword [esp + 0x48]
movzx edx, byte [ecx + esi]
sub dword [esp + 0x30], 6
mov ecx, dword [esp + 0x30]
and edx, 0x3f
shl edx, cl
mov ecx, dword [esp + 0x48]
add ecx, 1
mov dword [esp + 0x48], ecx
or eax, edx
cmp ecx, dword [esp + 0x40]
jle 0x40e459
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
add ecx, 1
mov dword [esp + 0x4c], ecx
cmp eax, 0xff
jbe 0x40e4a4
cmp dword [esp + 0x18], 0x48
je 0x40e4dd
jmp 0x40e4c6
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
shr eax, 3
mov al, byte [eax + ecx]
test al, dl
je 0x40e4dd
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
add esi, dword [esp + 0x4c]
add eax, 1
cmp eax, edx
mov dword [esp + 0xc], eax
jl 0x40e3f5
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add eax, 1
push eax
push 0
push ecx
push edx
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
push ebx
push eax
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
lea esp, [esp]
mov ecx, esi
sub esi, 1
cmp ecx, dword [esp + 0x24]
je 0x40e5ef
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x40e53c
lea esp, [esp]
mov al, byte [esi - 1]
sub esi, 1
and al, 0xc0
cmp al, 0x80
je 0x40e530
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 0x10]
push 0
push edx
push eax
push ebx
push ecx
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40e510
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, edx
jge 0x40e5b5
cmp esi, dword [ebx + 0x54]
jae 0x40e5ab
movzx eax, byte [esi]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
shr eax, 3
mov al, byte [eax + ecx]
test al, dl
je 0x40e5ab
mov eax, dword [esp + 0xc]
add eax, 1
add esi, 1
cmp eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jl 0x40e56d
cmp esi, dword [esp + 0x24]
jb 0x40e5ef
mov ecx, dword [ebp + 0x24]
add ecx, 1
mov dword [esp + 0x14], ecx
nop
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
push edx
mov edx, dword [ebp + 0x10]
push 0
push eax
push ecx
push ebx
push edx
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
sub esi, 1
cmp esi, dword [esp + 0x24]
jae 0x40e5c0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x10]
cmp dword [esp + 0xc], edi
jge case.0x40f7c6.14
mov edx, dword [ebp + 0x14]
cmp esi, dword [edx + 0x54]
jae case.0x40f7c6.14
movzx edx, byte [esi]
add esi, 1
cmp edx, 0xc0
jb 0x40e671
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
mov ecx, dword [eax*4 + 0x42a018]
and ecx, edx
lea edi, [eax + eax*2]
add edi, edi
mov edx, ecx
mov ecx, edi
shl edx, cl
test eax, eax
jle 0x40e671
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40e654
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
push ecx
push edx
call fcn.00410fc0
add esp, 8
test eax, eax
je case.0x40f7c6.14
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
add dword [esp + 0xc], 1
push ebx
push 0
push edx
mov edx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push ecx
push edx
push eax
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40e600
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, edi
mov dword [esp + 0x24], esi
jge 0x40e757
jmp 0x40e6d0
mov ecx, dword [ebp + 0x14]
cmp esi, dword [ecx + 0x54]
mov ebx, 1
jae 0x40e757
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x40e730
mov eax, edx
and eax, 0x3f
movzx edi, byte [eax + 0x42a030]
mov eax, dword [edi*4 + 0x42a018]
and eax, edx
lea ecx, [edi + edi*2]
add ecx, ecx
shl eax, cl
cmp edi, ebx
mov edx, eax
mov eax, ebx
jl 0x40e729
movzx ebx, byte [esi + eax]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
add eax, 1
or edx, ebx
cmp eax, edi
jle 0x40e714
lea ebx, [edi + 1]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
push ecx
push edx
call fcn.00410fc0
add esp, 8
test eax, eax
je 0x40e757
mov eax, dword [esp + 0xc]
add eax, 1
add esi, ebx
cmp eax, edi
mov dword [esp + 0xc], eax
jl 0x40e6d0
mov edi, dword [ebp + 0x24]
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
add edi, 1
push edi
push 0
push edx
mov edx, dword [ebp + 0x10]
push eax
push ecx
push edx
push ebx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov eax, esi
sub esi, 1
cmp eax, dword [esp + 0x24]
je case.0x40f7c6.14
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x40e7ae
mov edi, edi
mov dl, byte [esi - 1]
sub esi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x40e7a0
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push edi
push 0
push eax
mov eax, dword [ebp + 0x10]
push ecx
push edx
push eax
push ebx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40e785
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x1c]
add eax, 1
push eax
push 0
push edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x18]
push eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x10]
push ebx
push ecx
push edx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
lea ecx, [ecx]
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
jge case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
mov eax, dword [esp + 0x20]
cmp eax, 4
mov ecx, dword [esp + 0x34]
mov edx, esi
mov dword [esp + 0x30], esi
jb 0x40e85c
mov edi, edi
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x40e873
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e840
mov dword [esp + 0x30], edx
test eax, eax
jne 0x40e877
xor eax, eax
test eax, eax
jne 0x40e8fb
add esi, dword [esp + 0x20]
jmp 0x40e948
mov dword [esp + 0x30], edx
movzx edx, byte [edx]
movzx edi, byte [ecx]
sub edx, edi
jne 0x40e8e6
add dword [esp + 0x30], 1
sub eax, 1
add ecx, 1
test eax, eax
je 0x40e860
mov edx, dword [esp + 0x30]
movzx edx, byte [edx]
movzx edi, byte [ecx]
sub edx, edi
jne 0x40e8e6
add dword [esp + 0x30], 1
sub eax, 1
add ecx, 1
test eax, eax
je 0x40e860
mov edx, dword [esp + 0x30]
movzx edx, byte [edx]
movzx edi, byte [ecx]
sub edx, edi
jne 0x40e8e6
mov edx, dword [esp + 0x30]
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e860
movzx edx, byte [edx]
movzx eax, byte [ecx]
sub edx, eax
je 0x40e860
test edx, edx
mov eax, 1
jg 0x40e862
or eax, 0xffffffff
jmp 0x40e862
mov eax, dword [esp + 0x18]
test eax, eax
je case.0x40f7c6.14
cmp eax, 4
lea ecx, [esp + 0x68]
mov edx, esi
mov dword [esp + 0x30], esi
jb 0x40e932
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x40e97d
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40e916
mov dword [esp + 0x30], edx
test eax, eax
jne 0x40e981
xor eax, eax
test eax, eax
jne case.0x40f7c6.14
add esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push ecx
mov ecx, dword [ebp + 0x10]
push 0
push edx
mov edx, dword [ebp + 0xc]
push eax
push ebx
push ecx
push edx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40e810
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x30], edx
movzx edx, byte [edx]
movzx edi, byte [ecx]
sub edx, edi
jne 0x40e9f8
add dword [esp + 0x30], 1
sub eax, 1
add ecx, 1
test eax, eax
je 0x40e93a
mov edx, dword [esp + 0x30]
movzx edx, byte [edx]
movzx edi, byte [ecx]
sub edx, edi
jne 0x40e9f8
add dword [esp + 0x30], 1
sub eax, 1
add ecx, 1
test eax, eax
je 0x40e93a
mov edx, dword [esp + 0x30]
movzx edx, byte [edx]
movzx edi, byte [ecx]
sub edx, edi
jne 0x40e9f8
mov edx, dword [esp + 0x30]
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40e93a
movzx edx, byte [edx]
movzx eax, byte [ecx]
sub edx, eax
je 0x40e93a
test edx, edx
mov eax, 1
jg 0x40e93c
or eax, 0xffffffff
jmp 0x40e93c
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x1c]
add eax, 1
push eax
push 0
push edx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x18]
push eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x10]
push ebx
push ecx
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov edx, dword [esp + 0x10]
cmp dword [esp + 0xc], edx
jge case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx eax, byte [esi]
mov ecx, dword [ebx + 0x24]
movzx edx, byte [eax + ecx]
add esi, 1
cmp dword [esp + 0x1c], edx
jne case.0x40f7c6.14
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push eax
mov eax, dword [ebp + 0x10]
push 0
push ecx
push edx
push ebx
push eax
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40ea41
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 0
push ecx
push edx
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
push ebx
push eax
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0xc], ecx
jge case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx edx, byte [esi]
add esi, 1
cmp dword [esp + 0x1c], edx
jne case.0x40f7c6.14
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push eax
mov eax, dword [ebp + 0x10]
push 0
push ecx
push edx
push ebx
push eax
push edi
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40ead1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x2c], 0
mov dword [esp + 0xc], ebx
je 0x40ec22
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
add eax, 1
push eax
push 0
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0xc]
push ecx
push ebx
push edx
push eax
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
movzx edx, byte [esi]
add esi, 1
cmp edx, 0xc0
jb 0x40ebbd
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x42a030]
mov ecx, dword [eax*4 + 0x42a018]
and ecx, edx
lea edi, [eax + eax*2]
add edi, edi
mov edx, ecx
mov ecx, edi
shl edx, cl
test eax, eax
jle 0x40ebbd
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40eba1
mov ebx, dword [ebp + 0x14]
cmp edx, 0x100
jae 0x40ebcc
mov eax, dword [ebx + 0x24]
movzx edx, byte [eax + edx]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x10]
jge case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
cmp dword [esp + 0x1c], edx
je case.0x40f7c6.14
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push edx
mov edx, dword [ebp + 0x10]
push 0
push eax
mov eax, dword [ebp + 0xc]
push ecx
push ebx
push edx
push eax
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40eb67
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
add ebx, 1
push ebx
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push edi
push eax
push ecx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov edx, dword [esp + 0xc]
cmp edx, dword [esp + 0x10]
jge case.0x40f7c6.14
cmp esi, dword [edi + 0x54]
jae case.0x40f7c6.14
movzx eax, byte [esi]
mov ecx, dword [edi + 0x24]
movzx edx, byte [eax + ecx]
add esi, 1
cmp dword [esp + 0x1c], edx
je case.0x40f7c6.14
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x10]
add dword [esp + 0xc], 1
push ebx
push 0
push eax
mov eax, dword [ebp + 0xc]
push ecx
push edi
push edx
push eax
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40ec50
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x2c], 0
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
je 0x40ed98
mov dword [esp + 0xc], ebx
mov ebx, dword [ebp + 0x24]
add ebx, 1
push ebx
push 0
push ecx
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [ebp + 0xc]
push eax
push ecx
push edx
push esi
mov dword [esp + 0x34], ebx
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
movzx edx, byte [esi]
add esi, 1
cmp edx, 0xc0
jb 0x40ed43
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
mov ecx, dword [eax*4 + 0x42a018]
and ecx, edx
lea edi, [eax + eax*2]
add edi, edi
mov edx, ecx
mov ecx, edi
shl edx, cl
test eax, eax
jle 0x40ed43
movzx ebx, byte [esi]
sub edi, 6
and ebx, 0x3f
mov ecx, edi
shl ebx, cl
sub eax, 1
add esi, 1
or edx, ebx
test eax, eax
jg 0x40ed26
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x10]
jge case.0x40f7c6.14
mov eax, dword [ebp + 0x14]
cmp esi, dword [eax + 0x54]
jae case.0x40f7c6.14
cmp dword [esp + 0x1c], edx
je case.0x40f7c6.14
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push ebx
push 0
push edx
mov edx, dword [ebp + 0x10]
push ecx
push eax
mov eax, dword [ebp + 0xc]
push edx
push eax
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40ecec
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x24]
add edi, 1
push edi
push 0
push ecx
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [ebp + 0xc]
push eax
push ecx
push edx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
cmp ebx, dword [esp + 0x10]
jge case.0x40f7c6.14
mov eax, dword [ebp + 0x14]
cmp esi, dword [eax + 0x54]
jae case.0x40f7c6.14
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x1c], ecx
je case.0x40f7c6.14
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
push edi
push 0
push edx
mov edx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push ecx
push edx
push eax
push esi
add ebx, 1
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40edbd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
jl 0x40f2e2
cmp eax, 4
ja case.default.0x40aa9f
jmp dword [eax*4 + 0x40fba8]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xc], edi
mov edi, dword [ebp + 0x24]
add edi, 1
push edi
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push ebx
push eax
push ecx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov edx, dword [esp + 0xc]
cmp edx, dword [esp + 0x10]
jge case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x40ee8c
and eax, 0x3f
movzx eax, byte [eax + 0x42a030]
test eax, eax
jle 0x40ee8c
add esi, eax
cmp dword [esp + 0x40], 0
jne case.0x40f7c6.14
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x10]
add dword [esp + 0xc], 1
push edi
push 0
push eax
mov eax, dword [ebp + 0xc]
push ecx
push ebx
push edx
push eax
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40ee58
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add eax, 1
push eax
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
push ebx
push eax
push ecx
push esi
mov dword [esp + 0x2c], edi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov edx, dword [esp + 0xc]
cmp edx, dword [esp + 0x10]
jge case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x40ef6f
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x42a030]
mov edx, dword [edi*4 + 0x42a018]
lea ecx, [edi + edi*2]
and edx, eax
add ecx, ecx
shl edx, cl
test edi, edi
mov eax, edx
mov dword [esp + 0x1c], eax
jle 0x40ef6f
lea esp, [esp]
movzx edx, byte [esi]
mov eax, dword [esp + 0x1c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
sub edi, 1
add esi, 1
or eax, edx
test edi, edi
mov dword [esp + 0x1c], eax
jg 0x40ef50
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x3c]
push edx
push eax
call fcn.00410aa0
mov eax, dword [esp + 0x44]
add esp, 0xc
cmp eax, 9
je 0x40ef99
cmp eax, 5
je 0x40ef99
cmp eax, 8
je 0x40ef99
xor eax, eax
jmp 0x40ef9e
mov eax, 1
cmp eax, dword [esp + 0x40]
je case.0x40f7c6.14
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push eax
mov eax, dword [ebp + 0x10]
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push ebx
push eax
push ecx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40eef7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x10]
add eax, 1
push eax
push 0
push edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x18]
push eax
push ebx
push ecx
push edx
push esi
mov dword [esp + 0x2c], edi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
jge case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x40f081
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x42a030]
mov edx, dword [edi*4 + 0x42a018]
lea ecx, [edi + edi*2]
and edx, eax
add ecx, ecx
shl edx, cl
test edi, edi
mov eax, edx
mov dword [esp + 0x1c], eax
jle 0x40f081
movzx edx, byte [esi]
mov eax, dword [esp + 0x1c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
sub edi, 1
add esi, 1
or eax, edx
test edi, edi
mov dword [esp + 0x1c], eax
jg 0x40f062
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x3c]
push edx
push eax
call fcn.00410aa0
xor ecx, ecx
add esp, 0xc
cmp eax, dword [esp + 0x30]
sete cl
cmp ecx, dword [esp + 0x40]
je case.0x40f7c6.14
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push edx
mov edx, dword [ebp + 0x10]
push 0
push eax
mov eax, dword [ebp + 0xc]
push ecx
push ebx
push edx
push eax
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40f010
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add eax, 1
push eax
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
push ebx
push eax
push ecx
push esi
mov dword [esp + 0x2c], edi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov edx, dword [esp + 0xc]
cmp edx, dword [esp + 0x10]
jge case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x40f180
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x42a030]
mov edx, dword [edi*4 + 0x42a018]
lea ecx, [edi + edi*2]
and edx, eax
add ecx, ecx
shl edx, cl
test edi, edi
mov eax, edx
mov dword [esp + 0x1c], eax
jle 0x40f180
movzx edx, byte [esi]
mov eax, dword [esp + 0x1c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
sub edi, 1
add esi, 1
or eax, edx
test edi, edi
mov dword [esp + 0x1c], eax
jg 0x40f161
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x3c]
push edx
push eax
call fcn.00410aa0
mov ecx, dword [esp + 0x3c]
xor eax, eax
add esp, 0xc
cmp dword [esp + 0x38], ecx
sete al
cmp eax, dword [esp + 0x40]
je case.0x40f7c6.14
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push edx
mov edx, dword [ebp + 0x10]
push 0
push eax
mov eax, dword [ebp + 0xc]
push ecx
push ebx
push edx
push eax
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40f10f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add eax, 1
push eax
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
push ebx
push eax
push ecx
push esi
mov dword [esp + 0x2c], edi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov edx, dword [esp + 0xc]
cmp edx, dword [esp + 0x10]
jge case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x40f283
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x42a030]
mov edx, dword [edi*4 + 0x42a018]
lea ecx, [edi + edi*2]
and edx, eax
add ecx, ecx
shl edx, cl
test edi, edi
mov eax, edx
mov dword [esp + 0x1c], eax
jle 0x40f283
movzx edx, byte [esi]
mov eax, dword [esp + 0x1c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
sub edi, 1
add esi, 1
or eax, edx
test edi, edi
mov dword [esp + 0x1c], eax
jg 0x40f264
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x3c]
push edx
push eax
call fcn.00410aa0
mov ecx, dword [esp + 0x3c]
xor eax, eax
add esp, 0xc
cmp dword [esp + 0x3c], ecx
sete al
cmp eax, dword [esp + 0x40]
je case.0x40f7c6.14
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push edx
mov edx, dword [ebp + 0x10]
push 0
push eax
mov eax, dword [ebp + 0xc]
push ecx
push ebx
push edx
push eax
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40f212
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x18], 0x10
mov dword [esp + 0xc], edi
jne 0x40f4a2
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add eax, 1
push eax
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
push ebx
push eax
push ecx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov edx, dword [esp + 0xc]
cmp edx, dword [esp + 0x10]
jge case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f7c6.14
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x2c], 0
je 0x40f39f
cmp eax, 0xc0
jb 0x40f39f
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x42a030]
mov edx, dword [edi*4 + 0x42a018]
lea ecx, [edi + edi*2]
and edx, eax
add ecx, ecx
shl edx, cl
test edi, edi
mov eax, edx
mov dword [esp + 0x1c], eax
jle 0x40f39f
lea ecx, [ecx]
movzx edx, byte [esi]
mov eax, dword [esp + 0x1c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
sub edi, 1
add esi, 1
or eax, edx
test edi, edi
mov dword [esp + 0x1c], eax
jg 0x40f380
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x3c]
push edx
push eax
call fcn.00410aa0
add esp, 0xc
cmp eax, 2
je case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae 0x40f46d
jmp 0x40f3d0
cmp dword [esp + 0x2c], 0
movzx ecx, byte [esi]
mov edi, 1
je 0x40f44a
cmp ecx, 0xc0
jb 0x40f44a
mov eax, ecx
and eax, 0x3f
movzx edx, byte [eax + 0x42a030]
mov eax, dword [edx*4 + 0x42a018]
and eax, ecx
lea edi, [edx + edx*2]
add edi, edi
mov ecx, edi
shl eax, cl
mov dword [esp + 0x44], edx
mov ecx, eax
mov eax, 1
cmp edx, eax
mov dword [esp + 0x1c], ecx
jl 0x40f447
movzx edx, byte [eax + esi]
sub edi, 6
and edx, 0x3f
mov ecx, edi
shl edx, cl
mov ecx, dword [esp + 0x1c]
add eax, 1
or ecx, edx
mov edx, dword [esp + 0x44]
cmp eax, edx
mov dword [esp + 0x1c], ecx
jle 0x40f424
lea edi, [edx + 1]
lea eax, [esp + 0x3c]
push eax
lea edx, [esp + 0x3c]
push edx
push ecx
call fcn.00410aa0
add esp, 0xc
cmp eax, 2
jne 0x40f46d
add esi, edi
cmp esi, dword [ebx + 0x54]
jb 0x40f3d0
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push eax
mov eax, dword [ebp + 0x10]
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push ebx
push eax
push ecx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40f320
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x2c], 0
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x10]
je 0x40f704
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 0
push edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x18]
push eax
push ebx
push ecx
push edx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
jge case.0x40f7c6.14
mov eax, dword [ebx + 0x54]
cmp esi, eax
jae case.0x40f7c6.14
cmp dword [esp + 0x18], 0xb
jne 0x40f55b
test byte [ebp + 0x18], 4
jne 0x40f55b
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x40f536
mov edx, dword [esp + 0x2c]
push edx
lea edx, [ebx + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.00410bc0
add esp, 0x14
test eax, eax
jne case.0x40f7c6.14
jmp 0x40f55b
mov ecx, dword [ebx + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x40f55b
mov al, byte [esi]
cmp al, byte [ebx + 0x20]
jne 0x40f55b
cmp ecx, 1
je case.0x40f7c6.14
mov cl, byte [esi + 1]
cmp cl, byte [ebx + 0x21]
je case.0x40f7c6.14
movzx edi, byte [esi]
add esi, 1
cmp edi, 0xc0
jb 0x40f5b4
mov edx, edi
and edx, 0x3f
movzx eax, byte [edx + 0x42a030]
mov edx, dword [eax*4 + 0x42a018]
lea ecx, [eax + eax*2]
and edx, edi
add ecx, ecx
shl edx, cl
test eax, eax
mov edi, edx
jle 0x40f5b4
jmp 0x40f599
mov ecx, dword [esp + 0x44]
movzx edx, byte [esi]
sub ecx, 6
and edx, 0x3f
shl edx, cl
sub eax, 1
add esi, 1
mov dword [esp + 0x44], ecx
or edi, edx
test eax, eax
jg 0x40f595
mov eax, dword [esp + 0x18]
add eax, 0xfffffffb
cmp eax, 0xa
ja case.default.0x40aa9f
jmp dword [eax*4 + 0x40fbbc]
cmp edi, 0x85
ja 0x40f612
je case.0x40f5c4.11
cmp edi, 0xa
jb case.0x40f7c6.14
cmp edi, 0xc
jbe case.0x40f5c4.11
cmp edi, 0xd
jne case.0x40f7c6.14
cmp esi, dword [ebx + 0x54]
jae case.0x40f5c4.11
cmp byte [esi], 0xa
jne case.0x40f5c4.11
add esi, 1
jmp case.0x40f5c4.11
cmp edi, 0x2028
jb case.0x40f7c6.14
cmp edi, 0x2029
ja case.0x40f7c6.14
jmp case.0x40f5c4.11
cmp edi, 0x100
jae case.0x40f5c4.11
mov eax, dword [ebx + 0x28]
test byte [edi + eax], 4
jne case.0x40f7c6.14
jmp case.0x40f5c4.11
cmp edi, 0x100
jae case.0x40f7c6.14
mov ecx, dword [ebx + 0x28]
test byte [edi + ecx], 4
jmp 0x40f6c9
cmp edi, 0x100
jae case.0x40f5c4.11
mov edx, dword [ebx + 0x28]
test byte [edi + edx], 1
jne case.0x40f7c6.14
jmp case.0x40f5c4.11
cmp edi, 0x100
jae case.0x40f7c6.14
mov eax, dword [ebx + 0x28]
test byte [edi + eax], 1
jmp 0x40f6c9
cmp edi, 0x100
jae case.0x40f5c4.11
mov ecx, dword [ebx + 0x28]
test byte [edi + ecx], 0x10
jne case.0x40f7c6.14
jmp case.0x40f5c4.11
cmp edi, 0x100
jae case.0x40f7c6.14
mov edx, dword [ebx + 0x28]
test byte [edi + edx], 0x10
je case.0x40f7c6.14
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
add dword [esp + 0xc], 1
push eax
mov eax, dword [ebp + 0x10]
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push ebx
push eax
push ecx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40f4dc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x24]
mov eax, dword [ebp + 0x18]
add edi, 1
push edi
push 0
push edx
mov edx, dword [ebp + 0xc]
push eax
push ebx
push ecx
push edx
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
jne 0x40f8a5
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
jge case.0x40f7c6.14
mov eax, dword [ebx + 0x54]
cmp esi, eax
jae case.0x40f7c6.14
test byte [ebp + 0x18], 4
jne 0x40f796
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x40f771
push 0
lea edx, [ebx + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.00410bc0
add esp, 0x14
test eax, eax
jne case.0x40f7c6.14
jmp 0x40f796
mov ecx, dword [ebx + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x40f796
mov al, byte [esi]
cmp al, byte [ebx + 0x20]
jne 0x40f796
cmp ecx, 1
je case.0x40f7c6.14
mov cl, byte [esi + 1]
cmp cl, byte [ebx + 0x21]
je case.0x40f7c6.14
mov ecx, dword [esp + 0x18]
movzx eax, byte [esi]
add ecx, 0xfffffffb
add esi, 1
cmp ecx, 0xa
ja case.default.0x40aa9f
jmp dword [ecx*4 + 0x40fbe8]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x40f7c6.14
movzx edx, byte [eax + 0x40fc20]
jmp dword [edx*4 + 0x40fc14]
cmp esi, dword [ebx + 0x54]
jae case.0x40f7ac.11
cmp byte [esi], 0xa
jne case.0x40f7ac.11
add esi, 1
jmp case.0x40f7ac.11
mov ecx, dword [ebx + 0x28]
test byte [eax + ecx], 4
jne case.0x40f7c6.14
jmp case.0x40f7ac.11
mov edx, dword [ebx + 0x28]
test byte [eax + edx], 4
jmp 0x40f836
mov ecx, dword [ebx + 0x28]
test byte [eax + ecx], 1
jne case.0x40f7c6.14
jmp case.0x40f7ac.11
mov edx, dword [ebx + 0x28]
test byte [eax + edx], 1
jmp 0x40f836
mov ecx, dword [ebx + 0x28]
test byte [eax + ecx], 0x10
jne case.0x40f7c6.14
jmp case.0x40f7ac.11
mov edx, dword [ebx + 0x28]
test byte [eax + edx], 0x10
je case.0x40f7c6.14
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x10]
add dword [esp + 0xc], 1
push edi
push 0
push eax
mov eax, dword [ebp + 0xc]
push ecx
push ebx
push edx
push eax
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40f729
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 0x14]
push 0
push edx
mov edx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push ecx
push edx
push eax
push esi
call fcn.00409b50
add esp, 0x20
test eax, eax
je 0x40d320
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret