Function at 0x476ce0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
mov ebx, dword [esp + 0x15c]
mov cl, byte [ebx]
movzx eax, cl
xor ebp, ebp
mov edx, eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x18], edx
cmp edx, 0x76
ja case.0x475682.70
movzx esi, byte [edx + 0x47f294]
jmp dword [esi*4 + 0x47f15c]
movzx esi, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl esi, 8
or esi, eax
cmp byte [ebx + 3], 0x53
jne 0x475785
mov ecx, dword [0x4c2f9c]
cmp ecx, ebp
mov ebp, dword [esp + 0x16c]
je 0x475779
mov dword [esp + 0xa4], 1
movzx edx, byte [ebx + 4]
mov dword [esp + 0xa8], edx
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xac], eax
mov edx, dword [ebp + 0x68]
mov dword [esp + 0xb0], edx
mov eax, dword [ebp + 0x6c]
sub eax, dword [ebp + 0x68]
mov edx, dword [esp + 0x160]
mov dword [esp + 0xb4], eax
sub edx, dword [ebp + 0x68]
mov eax, edi
mov dword [esp + 0xb8], edx
sub eax, dword [ebp + 0x68]
mov dword [esp + 0xbc], eax
movzx edx, byte [ebx + 5]
movzx eax, byte [ebx + 6]
shl edx, 8
or edx, eax
mov dword [esp + 0xcc], edx
movzx edx, byte [ebx + 7]
movzx eax, byte [ebx + 8]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0xd0], edx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0xc0], eax
mov edx, dword [ebp + 0x84]
mov dword [esp + 0xc4], edx
mov eax, dword [ebp + 0x98]
lea edx, [esp + 0xa4]
push edx
mov dword [esp + 0xcc], eax
call ecx
add esp, 4
test eax, eax
jg 0x479c56
js 0x47f150
add ebx, 0xa
mov dword [esp + 0x15c], ebx
jmp 0x47578c
mov ebp, dword [esp + 0x16c]
movzx ecx, byte [ebx + 3]
lea eax, [ebx + 3]
cmp ecx, 0x66
je 0x4759cc
cmp ecx, 0x67
je 0x4759cc
cmp ecx, 0x64
je 0x47581f
cmp ecx, 0x65
je 0x47581f
cmp ecx, 0x68
jne 0x4757c8
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
add ebx, eax
jmp 0x475b87
mov edx, dword [esp + 0x17c]
mov ecx, dword [esp + 0x170]
inc edx
push edx
mov edx, dword [esp + 0x16c]
push 1
push 0
push ecx
mov ecx, dword [esp + 0x174]
push ebp
push edx
mov edx, dword [esp + 0x178]
push ecx
push edx
push eax
push edi
call fcn.004755e0
add esp, 0x28
cmp eax, 1
je 0x47b9b6
test eax, eax
je 0x475818
cmp eax, 0xfffffc1e
jne 0x47f150
add ebx, esi
jmp 0x475b87
movzx eax, byte [ebx + 4]
movzx edx, byte [ebx + 5]
shl eax, 8
or eax, edx
add eax, eax
cmp eax, dword [esp + 0x168]
jge 0x475844
mov edx, dword [ebp + 0xc]
cmp dword [edx + eax*4], 0
jge 0x4759b8
mov dword [esp + 0x2c], 0
cmp ecx, 0x65
jne 0x47598f
mov esi, dword [ebp + 0x28]
xor ecx, ecx
sar eax, 1
mov dword [esp + 0x20], ecx
cmp ecx, dword [ebp + 0x20]
jge 0x47598f
lea esp, [esp]
movzx edx, byte [esi]
movzx ebx, byte [esi + 1]
shl edx, 8
or edx, ebx
cmp edx, eax
je 0x475889
add esi, dword [ebp + 0x24]
inc ecx
cmp ecx, dword [ebp + 0x20]
jl 0x475870
mov dword [esp + 0x20], ecx
cmp ecx, dword [ebp + 0x20]
jge 0x47598f
mov ebx, esi
cmp esi, dword [ebp + 0x28]
jbe 0x47590a
lea ecx, [ecx]
sub ebx, dword [ebp + 0x24]
lea eax, [esi + 2]
lea ecx, [ebx + 2]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4758d0
test dl, dl
je 0x4758cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4758d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4758b0
xor eax, eax
jmp 0x4758d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x47590a
movzx eax, byte [ebx]
movzx ecx, byte [ebx + 1]
shl eax, 8
or eax, ecx
add eax, eax
cmp eax, dword [esp + 0x168]
jge 0x4758fd
mov edx, dword [ebp + 0xc]
cmp dword [edx + eax*4], 0
jge 0x4759b1
mov dword [esp + 0x2c], 0
cmp ebx, dword [ebp + 0x28]
ja 0x4758a0
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ebp + 0x20]
jge 0x47598f
mov ebx, dword [ebp + 0x24]
lea eax, [esi + 2]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add esi, ebx
lea ecx, [esi + 2]
jmp 0x475930
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x475950
test dl, dl
je 0x47594c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x475950
add eax, 2
add ecx, 2
test dl, dl
jne 0x475930
xor eax, eax
jmp 0x475955
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x47598f
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl eax, 8
or eax, ecx
add eax, eax
cmp eax, dword [esp + 0x168]
jge 0x475979
mov edx, dword [ebp + 0xc]
cmp dword [edx + eax*4], 0
jge 0x4759b1
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x20], eax
cmp eax, dword [ebp + 0x20]
jl 0x475922
mov ecx, dword [esp + 0x15c]
movzx eax, byte [ecx + 1]
movzx ecx, byte [ecx + 2]
mov ebx, dword [esp + 0x15c]
shl eax, 8
or eax, ecx
add ebx, eax
jmp 0x475b7c
mov ebx, dword [esp + 0x15c]
mov eax, 3
mov dword [esp + 0x2c], 1
add ebx, eax
jmp 0x475b7c
cmp dword [ebp + 0x94], 0
jne 0x4759e9
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
add ebx, edx
jmp 0x475b87
movzx eax, byte [ebx + 4]
movzx edx, byte [ebx + 5]
shl eax, 8
or eax, edx
cmp eax, 0xffff
je 0x475aa0
mov edx, dword [ebp + 0x94]
mov edx, dword [edx + 0x14]
mov dword [esp + 0x38], edx
cmp eax, edx
je 0x475aa0
mov dword [esp + 0x2c], 0
cmp ecx, 0x67
jne 0x475b61
mov ebx, dword [ebp + 0x28]
xor ecx, ecx
mov dword [esp + 0x20], ecx
cmp ecx, dword [ebp + 0x20]
jge 0x475b5a
lea esp, [esp]
movzx esi, byte [ebx]
movzx edx, byte [ebx + 1]
shl esi, 8
or edx, esi
cmp edx, eax
je 0x475a59
add ebx, dword [ebp + 0x24]
inc ecx
cmp ecx, dword [ebp + 0x20]
jl 0x475a40
mov dword [esp + 0x20], ecx
cmp ecx, dword [ebp + 0x20]
jge 0x475b5a
mov esi, ebx
cmp ebx, dword [ebp + 0x28]
jbe 0x475adf
lea ecx, [ecx]
sub esi, dword [ebp + 0x24]
lea eax, [ebx + 2]
lea ecx, [esi + 2]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x475ab2
test dl, dl
je 0x475a9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x475ab2
add eax, 2
add ecx, 2
test dl, dl
jne 0x475a80
xor eax, eax
jmp 0x475ab7
mov dword [esp + 0x2c], 1
mov eax, 3
jmp 0x475b6e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x475adf
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl eax, 8
or eax, ecx
xor edx, edx
cmp eax, dword [esp + 0x38]
sete dl
mov eax, edx
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x475aa8
cmp esi, dword [ebp + 0x28]
ja 0x475a70
mov eax, dword [esp + 0x20]
inc eax
mov esi, ebx
mov dword [esp + 0x20], eax
cmp eax, dword [ebp + 0x20]
jge 0x475b5a
nop
add esi, dword [ebp + 0x24]
lea eax, [ebx + 2]
lea ecx, [esi + 2]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x475b20
test dl, dl
je 0x475b1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x475b20
add eax, 2
add ecx, 2
test dl, dl
jne 0x475b00
xor eax, eax
jmp 0x475b25
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x475b5a
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl eax, 8
or eax, ecx
xor edx, edx
cmp eax, dword [esp + 0x38]
sete dl
mov eax, edx
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x475aa8
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ebp + 0x20]
jl 0x475af0
mov ebx, dword [esp + 0x15c]
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
add dword [esp + 0x15c], eax
mov ebx, dword [esp + 0x15c]
cmp dword [esp + 0x2c], 0
jne 0x47b9f7
cmp byte [ebx], 0x54
je 0x47b9f7
add ebx, 3
mov dword [esp + 0x15c], ebx
jmp 0x475656
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx + 2]
mov esi, dword [esp + 0x16c]
shl eax, 8
or eax, edx
lea ecx, [eax + eax]
mov dword [esi + 0x84], eax
cmp ecx, dword [esi + 0x14]
jl 0x475bd7
add ebx, 3
mov dword [esi + 0x38], 1
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov ebp, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
sub ebp, eax
mov eax, dword [edx + ebp*4]
mov dword [edx + ecx*4], eax
mov eax, dword [esi + 0xc]
mov edx, edi
sub edx, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
cmp dword [esp + 0x168], ecx
jg 0x475c04
add ecx, 2
mov dword [esp + 0x168], ecx
add ebx, 3
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov eax, dword [esp + 0x16c]
cmp dword [eax + 0x94], ebp
je 0x47c2e8
mov esi, dword [eax + 0x94]
cmp dword [esi + 0x14], ebp
jne 0x47c2e8
mov ecx, dword [esi]
mov dword [eax + 0x94], ecx
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
add edx, edx
add edx, edx
push edx
mov edx, dword [eax + 0xc]
push ecx
push edx
call fcn.004827f0
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x48]
mov edx, dword [esi + 4]
add esp, 0xc
mov dword [esp + 0x168], eax
mov dword [esp + 0x170], ecx
mov dword [esp + 0x15c], edx
jmp 0x475656
movzx eax, byte [ebx + 1]
add ebx, 2
mov dword [esp + 0x170], eax
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x17c]
mov ebp, dword [esp + 0x16c]
mov ebx, dword [esp + 0x160]
inc esi
lea esp, [esp]
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
push esi
push 0
push 0
push ecx
mov ecx, dword [esp + 0x16c]
push ebp
push edx
push eax
push ebx
add ecx, 3
push ecx
push edi
call fcn.004755e0
add esp, 0x28
cmp eax, 1
je 0x475d22
cmp eax, 0xfffffc19
je 0x475d22
test eax, eax
je 0x475cfe
cmp eax, 0xfffffc1e
jne 0x47f150
mov eax, dword [esp + 0x15c]
movzx edx, byte [eax + 1]
movzx ecx, byte [eax + 2]
shl edx, 8
or edx, ecx
add eax, edx
cmp byte [eax], 0x54
mov dword [esp + 0x15c], eax
je 0x475cb0
jmp 0x475d33
mov edx, dword [ebp + 0x70]
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x160], edx
cmp byte [eax], 0x55
je 0x47c35b
add byte [eax], al
test byte [esp + 0x178], 1
jne 0x47c5ac
lea ebx, [ebx]
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
add eax, ecx
cmp byte [eax], 0x54
je 0x475d50
add eax, 3
mov dword [esp + 0x15c], eax
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x168], eax
jmp 0x475656
mov esi, dword [esp + 0x17c]
mov ebx, dword [esp + 0x16c]
mov ebp, dword [esp + 0x164]
inc esi
jmp 0x475da0
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x160]
push esi
push 0
push 0
push ecx
mov ecx, dword [esp + 0x16c]
push ebx
push edx
push ebp
push eax
add ecx, 3
push ecx
push edi
call fcn.004755e0
add esp, 0x28
cmp eax, 1
je 0x47845c
cmp eax, 0xfffffc19
je 0x47845c
cmp eax, 0xfffffc1c
je 0x475e33
cmp eax, 0xfffffc1b
je 0x475e33
cmp eax, 0xfffffc1a
je 0x475e33
test eax, eax
je 0x475e0b
cmp eax, 0xfffffc1e
jne 0x47f150
mov eax, dword [esp + 0x15c]
movzx edx, byte [eax + 1]
movzx ecx, byte [eax + 2]
shl edx, 8
or edx, ecx
add eax, edx
cmp byte [eax], 0x54
mov dword [esp + 0x15c], eax
je 0x475da0
jmp 0x475e54
mov eax, dword [esp + 0x15c]
lea ebx, [ebx]
movzx edx, byte [eax + 1]
movzx ecx, byte [eax + 2]
shl edx, 8
or edx, ecx
add eax, edx
cmp byte [eax], 0x54
je 0x475e40
test byte [esp + 0x178], 1
jne 0x47c5ac
add eax, 3
mov dword [esp + 0x15c], eax
jmp 0x475656
movzx eax, byte [ebx + 1]
mov esi, dword [esp + 0x16c]
shl eax, 8
cmp dword [esp + 0x24], ebp
je 0x475eb6
movzx edx, byte [ebx + 2]
or eax, edx
jle 0x475ec7
mov ecx, dword [esi + 0x68]
dec edi
dec eax
cmp edi, ecx
jb case.0x479cf2.14
mov dl, byte [edi]
and dl, 0xc0
cmp dl, 0x80
jne 0x475eb0
mov dl, byte [edi - 1]
dec edi
and dl, 0xc0
cmp dl, 0x80
je 0x475ea4
test eax, eax
jg 0x475e90
jmp 0x475ec7
movzx ecx, byte [ebx + 2]
or eax, ecx
sub edi, eax
cmp edi, dword [esi + 0x68]
jb 0x477132
cmp edi, dword [esi + 0x78]
jae 0x475ecf
mov dword [esi + 0x78], edi
add ebx, 3
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov ecx, dword [0x4c2f9c]
cmp ecx, ebp
je 0x475fb2
mov esi, dword [esp + 0x16c]
mov dword [esp + 0x70], 1
movzx edx, byte [ebx + 1]
mov dword [esp + 0x74], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x78], eax
mov edx, dword [esi + 0x68]
mov dword [esp + 0x7c], edx
mov eax, dword [esi + 0x6c]
sub eax, dword [esi + 0x68]
mov edx, dword [esp + 0x160]
mov dword [esp + 0x80], eax
sub edx, dword [esi + 0x68]
mov eax, edi
mov dword [esp + 0x84], edx
sub eax, dword [esi + 0x68]
mov dword [esp + 0x88], eax
movzx edx, byte [ebx + 6]
movzx eax, byte [ebx + 7]
shl edx, 8
or edx, eax
mov dword [esp + 0x98], edx
movzx edx, byte [ebx + 8]
movzx eax, byte [ebx + 9]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x9c], edx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x8c], eax
mov edx, dword [esi + 0x84]
mov dword [esp + 0x90], edx
mov eax, dword [esi + 0x98]
mov dword [esp + 0x94], eax
mov edx, dword [ebx + 2]
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0xa4], edx
call ecx
add esp, 4
test eax, eax
jg 0x4764b5
js 0x47f150
add ebx, 0xa
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x17c]
mov ebp, dword [esp + 0x16c]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x160]
mov dword [esp + 0x34], edi
inc esi
nop
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x168]
push esi
push 0
push ecx
mov ecx, dword [esp + 0x170]
push edx
mov edx, dword [esp + 0x16c]
push ebp
push eax
push ecx
push ebx
add edx, 3
push edx
push edi
call fcn.004755e0
add esp, 0x28
cmp eax, 1
je 0x476051
test eax, eax
je 0x47602d
cmp eax, 0xfffffc1e
jne 0x47f150
mov ecx, dword [esp + 0x15c]
movzx eax, byte [ecx + 1]
movzx edx, byte [ecx + 2]
shl eax, 8
or eax, edx
add ecx, eax
cmp byte [ecx], 0x54
mov dword [esp + 0x15c], ecx
je 0x475fe0
jmp 0x476062
mov ebx, dword [ebp + 0x70]
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x160], ebx
mov al, byte [ecx]
cmp al, 0x5d
je 0x476070
cmp al, 0x54
jne 0x47b9a9
movzx eax, byte [ecx + 1]
movzx edx, byte [ecx + 2]
shl eax, 8
or eax, edx
add ecx, eax
cmp byte [ecx], 0x54
je 0x476070
cmp byte [ecx], 0x55
mov eax, dword [ebp + 0x80]
mov edi, dword [ebp + 0x74]
mov dword [esp + 0x168], eax
je 0x4760a3
cmp edi, dword [esp + 0x34]
jne 0x47bcac
add ecx, 3
mov dword [esp + 0x15c], ecx
jmp 0x475656
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
add ebx, eax
cmp byte [ebx], 0x54
je case.0x475682.84
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x170]
inc edx
push edx
mov edx, dword [esp + 0x170]
push 0
push eax
mov eax, dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x174]
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
lea esi, [ebx + 1]
push esi
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
jne 0x47f150
movzx eax, byte [esi + 1]
movzx ecx, byte [esi + 2]
shl eax, 8
or eax, ecx
add esi, eax
cmp byte [esi], 0x54
je 0x476122
add esi, 3
mov dword [esp + 0x15c], esi
jmp 0x475656
lea esi, [ebx + 1]
mov eax, esi
lea ebx, [ebx]
movzx edx, byte [eax + 1]
movzx ecx, byte [eax + 2]
shl edx, 8
or edx, ecx
add eax, edx
cmp byte [eax], 0x54
je 0x476150
mov edx, dword [esp + 0x17c]
mov ecx, dword [esp + 0x174]
inc edx
push edx
mov edx, dword [esp + 0x174]
push 0
push ecx
mov ecx, dword [esp + 0x178]
push edx
mov edx, dword [esp + 0x178]
push ecx
mov ecx, dword [esp + 0x178]
push edx
mov edx, dword [esp + 0x178]
push ecx
push edx
add eax, 3
push eax
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
jne 0x47f150
mov dword [esp + 0x15c], esi
jmp 0x475656
lea eax, [ebx + 1]
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
add eax, ecx
cmp byte [eax], 0x54
je 0x4761c3
add eax, 3
mov dword [esp + 0x15c], eax
jmp 0x475656
mov ebx, dword [esp + 0x15c]
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
sub ebx, eax
mov al, byte [ebx]
cmp al, 0x61
jb 0x47621b
mov ecx, dword [esp + 0x174]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x34], edx
mov dword [esp + 0x174], ecx
jmp 0x47621f
mov dword [esp + 0x34], ebp
cmp al, 0x58
je 0x47c601
cmp al, 0x59
je 0x47c601
cmp al, 0x5a
je 0x47c601
cmp al, 0x5b
je 0x47c601
cmp al, 0x5d
je 0x47c601
cmp al, 0x5f
je 0x476253
cmp al, 0x62
jne 0x476303
movzx eax, byte [ebx + 3]
movzx edx, byte [ebx + 4]
mov ebp, dword [esp + 0x16c]
shl eax, 8
or eax, edx
lea ecx, [eax + eax]
mov dword [ebp + 0x84], eax
cmp ecx, dword [ebp + 0x14]
jl 0x47627e
mov dword [ebp + 0x38], 1
jmp 0x4762ab
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
sub esi, eax
mov esi, dword [edx + esi*4]
mov dword [edx + ecx*4], esi
mov esi, dword [ebp + 0xc]
mov edx, edi
sub edx, dword [ebp + 0x68]
mov dword [esi + ecx*4 + 4], edx
cmp dword [esp + 0x168], ecx
jg 0x4762ab
add ecx, 2
mov dword [esp + 0x168], ecx
cmp dword [ebp + 0x94], 0
je 0x47630a
mov esi, dword [ebp + 0x94]
cmp dword [esi + 0x14], eax
jne 0x47630a
mov eax, dword [esi]
mov dword [ebp + 0x94], eax
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [ebp + 0xc]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call fcn.00485e70
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x48]
add esp, 0xc
mov dword [esp + 0x168], ecx
mov dword [esp + 0x15c], edx
mov dword [esp + 0x170], eax
jmp 0x475656
mov ebp, dword [esp + 0x16c]
mov edx, dword [esp + 0x15c]
cmp byte [edx], 0x55
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x170], ecx
je 0x47632b
cmp edi, dword [esp + 0x34]
jne 0x47bd5a
add dword [esp + 0x15c], 3
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp dword [esi + 0x3c], ebp
je 0x47634d
cmp edi, dword [esi + 0x68]
je case.0x479cf2.14
test byte [esp + 0x170], 2
je 0x4763f5
mov ecx, dword [esi + 0x68]
cmp edi, ecx
je 0x4763e1
cmp edi, dword [esi + 0x6c]
je 0x477132
mov eax, dword [esi + 0x18]
cmp eax, ebp
je 0x4763b1
cmp edi, ecx
jbe 0x477132
mov edx, dword [esi + 0x68]
mov ebx, dword [esp + 0x24]
lea ecx, [esi + 0x1c]
push ecx
push edx
push eax
mov eax, edi
call fcn.00480730
add esp, 0xc
test eax, eax
je 0x477132
mov ebx, dword [esp + 0x15c]
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov eax, ecx
add eax, dword [esi + 0x1c]
cmp edi, eax
jb 0x477132
mov ecx, dword [esi + 0x1c]
mov eax, edi
sub eax, ecx
mov dl, byte [eax]
cmp dl, byte [esi + 0x2c]
jne 0x477132
cmp ecx, 1
je 0x4763e1
mov al, byte [eax + 1]
cmp al, byte [esi + 0x2d]
jne 0x477132
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x68]
jne 0x4764b5
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + 0x88]
add ecx, dword [eax + 0x68]
cmp edi, ecx
jne 0x47c30a
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
inc ebx
mov dword [esp + 0x160], edi
mov dword [esp + 0x15c], ebx
jmp 0x475656
test byte [esp + 0x170], 2
je 0x4764e5
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x4764cf
mov eax, dword [esi + 0x18]
cmp eax, ebp
je 0x476496
mov ecx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x24]
lea edx, [esi + 0x1c]
push edx
push ecx
push eax
call fcn.00480620
add esp, 0xc
test eax, eax
je 0x4764b5
mov ebx, dword [esp + 0x15c]
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov edx, dword [esi + 0x6c]
sub edx, dword [esi + 0x1c]
cmp edi, edx
ja 0x4764b5
mov al, byte [edi]
cmp al, byte [esi + 0x2c]
jne 0x4764b5
cmp dword [esi + 0x1c], 1
je 0x4764d8
mov cl, byte [edi + 1]
cmp cl, byte [esi + 0x2d]
je 0x4764d8
mov edx, dword [esp + 0x164]
mov dword [esi + 0x9c], edx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
cmp dword [esi + 0x40], ebp
jne case.0x479cf2.14
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov ebp, dword [esp + 0x16c]
cmp dword [ebp + 0x40], 0
jne 0x47c63f
cmp dword [ebp + 0x50], 0
jne 0x476585
mov ecx, dword [ebp + 0x6c]
cmp edi, ecx
je 0x476571
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x476539
cmp edi, ecx
jae 0x47c35b
mov ebx, dword [esp + 0x24]
lea esi, [ebp + 0x1c]
push esi
push ecx
push eax
call fcn.00480620
add esp, 0xc
test eax, eax
je 0x47c35b
mov ebx, dword [esp + 0x15c]
jmp 0x476564
lea esi, [ebp + 0x1c]
mov eax, ecx
sub eax, dword [esi]
cmp edi, eax
ja 0x47c35b
mov cl, byte [edi]
cmp cl, byte [ebp + 0x2c]
jne 0x47c35b
cmp dword [esi], 1
je 0x476564
mov dl, byte [edi + 1]
cmp dl, byte [ebp + 0x2d]
jne 0x47c35b
mov eax, dword [ebp + 0x6c]
sub eax, dword [esi]
cmp edi, eax
jne 0x47c35b
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov ebp, dword [esp + 0x16c]
cmp edi, dword [ebp + 0x6c]
jb 0x479c56
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov ebp, dword [esp + 0x16c]
mov ecx, dword [ebp + 0x6c]
cmp edi, ecx
je 0x476613
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x4765db
cmp edi, ecx
jae 0x47c63f
mov ebx, dword [esp + 0x24]
lea esi, [ebp + 0x1c]
push esi
push ecx
push eax
call fcn.00480620
add esp, 0xc
test eax, eax
je 0x47c63f
mov ebx, dword [esp + 0x15c]
jmp 0x476606
lea esi, [ebp + 0x1c]
mov edx, ecx
sub edx, dword [esi]
cmp edi, edx
ja 0x47c63f
mov al, byte [edi]
cmp al, byte [ebp + 0x2c]
jne 0x47c63f
cmp dword [esi], 1
je 0x476606
mov cl, byte [edi + 1]
cmp cl, byte [ebp + 0x2d]
jne 0x47c63f
mov edx, dword [ebp + 0x6c]
sub edx, dword [esi]
cmp edi, edx
jne 0x47c63f
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov ecx, dword [esp + 0x16c]
cmp dword [esp + 0x24], ebp
je 0x47683b
cmp edi, dword [ecx + 0x68]
je 0x476706
mov al, byte [edi - 1]
lea ebx, [edi - 1]
and al, 0xc0
cmp al, 0x80
jne 0x476652
mov dl, byte [ebx - 1]
dec ebx
and dl, 0xc0
cmp dl, 0x80
je 0x476646
cmp ebx, dword [ecx + 0x78]
jae 0x47665a
mov dword [ecx + 0x78], ebx
movzx eax, byte [ebx]
cmp eax, 0xc0
jb 0x4766a1
mov ecx, eax
and ecx, 0x3f
movzx esi, byte [ecx + 0x4b5e48]
and eax, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov edx, 1
shl eax, cl
cmp esi, edx
jl 0x47669a
movzx ebp, byte [edx + ebx]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc edx
or eax, ebp
cmp edx, esi
jle 0x476687
mov ecx, dword [esp + 0x16c]
cmp dword [ecx + 0x48], 0
je 0x4766ed
cmp eax, 0x5f
jne 0x4766b1
lea ebp, [eax - 0x5e]
jmp 0x476706
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4a8f80]
and eax, 0x7f
shl edx, 7
add edx, eax
movzx eax, word [edx*2 + 0x4ab180]
movzx edx, byte [eax*8 + 0x4a7f51]
mov eax, dword [edx*4 + 0x4b5e88]
cmp eax, 1
je 0x4766e6
cmp eax, 3
jne 0x476704
mov ebp, 1
jmp 0x476706
cmp eax, 0x100
jae 0x476704
mov edx, dword [ecx + 0x34]
test byte [eax + edx], 0x10
je 0x476704
mov ebp, 1
jmp 0x476706
xor ebp, ebp
cmp edi, dword [ecx + 0x6c]
jb 0x476740
cmp dword [ecx + 0x7c], 0
je 0x47672b
cmp edi, dword [esp + 0x160]
jbe 0x47672b
mov eax, 1
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jg 0x47ce4d
mov ecx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x15c]
xor eax, eax
jmp 0x47692f
movzx eax, byte [edi]
cmp eax, 0xc0
jb 0x476783
mov ecx, eax
and ecx, 0x3f
movzx esi, byte [ecx + 0x4b5e48]
and eax, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov edx, 1
shl eax, cl
cmp esi, edx
jl 0x476783
lea ecx, [ecx]
movzx ebx, byte [edx + edi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
inc edx
or eax, ebx
cmp edx, esi
jle 0x476770
mov ecx, dword [esp + 0x16c]
cmp dword [ecx + 0x48], 0
je 0x47680c
cmp eax, 0x5f
jne 0x4767aa
mov ebx, dword [esp + 0x15c]
mov eax, 1
jmp 0x47692f
mov ecx, eax
shr ecx, 7
movzx edx, byte [ecx + 0x4a8f80]
and eax, 0x7f
shl edx, 7
add edx, eax
movzx eax, word [edx*2 + 0x4ab180]
movzx ecx, byte [eax*8 + 0x4a7f51]
mov eax, dword [ecx*4 + 0x4b5e88]
cmp eax, 1
je 0x4767f4
cmp eax, 3
je 0x4767f4
mov ecx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x15c]
xor eax, eax
jmp 0x47692f
mov ecx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x15c]
mov eax, 1
jmp 0x47692f
cmp eax, 0x100
jae 0x47682d
mov edx, dword [ecx + 0x34]
test byte [eax + edx], 0x10
je 0x47682d
mov ebx, dword [esp + 0x15c]
mov eax, 1
jmp 0x47692f
mov ebx, dword [esp + 0x15c]
xor eax, eax
jmp 0x47692f
cmp edi, dword [ecx + 0x68]
je 0x4768ab
cmp edi, dword [ecx + 0x78]
ja 0x47684f
lea eax, [edi - 1]
mov dword [ecx + 0x78], eax
movzx eax, byte [edi - 1]
cmp dword [ecx + 0x48], ebp
je 0x47689e
cmp eax, 0x5f
jne 0x476862
lea ebp, [eax - 0x5e]
jmp 0x4768ab
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4a8f80]
and eax, 0x7f
shl edx, 7
add edx, eax
movzx eax, word [edx*2 + 0x4ab180]
movzx edx, byte [eax*8 + 0x4a7f51]
mov eax, dword [edx*4 + 0x4b5e88]
cmp eax, 1
je 0x476897
cmp eax, 3
jne 0x4768ab
mov ebp, 1
jmp 0x4768ab
mov edx, dword [ecx + 0x34]
movzx ebp, byte [eax + edx]
shr ebp, 4
and ebp, 1
cmp edi, dword [ecx + 0x6c]
jb 0x4768d4
cmp dword [ecx + 0x7c], 0
je 0x4768d0
cmp edi, dword [esp + 0x160]
jbe 0x4768d0
mov eax, 1
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jg 0x47b548
xor eax, eax
jmp 0x47692f
cmp dword [ecx + 0x48], 0
movzx eax, byte [edi]
je 0x476922
cmp eax, 0x5f
jne 0x4768e9
mov eax, 1
jmp 0x47692f
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4a8f80]
and eax, 0x7f
shl edx, 7
add edx, eax
movzx eax, word [edx*2 + 0x4ab180]
movzx edx, byte [eax*8 + 0x4a7f51]
mov eax, dword [edx*4 + 0x4b5e88]
cmp eax, 1
je 0x4768e2
cmp eax, 3
je 0x4768e2
xor eax, eax
jmp 0x47692f
mov edx, dword [ecx + 0x34]
movzx eax, byte [edx + eax]
shr eax, 4
and eax, 1
mov dl, byte [ebx]
inc ebx
mov dword [esp + 0x15c], ebx
cmp dl, 5
jne 0x476947
xor edx, edx
cmp eax, ebp
sete dl
jmp 0x47694e
xor edx, edx
cmp eax, ebp
setne dl
mov eax, edx
test eax, eax
je 0x475656
mov edx, dword [esp + 0x164]
mov dword [ecx + 0x9c], edx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
mov esi, dword [esp + 0x16c]
mov eax, dword [esi + 0x18]
cmp eax, ebp
je 0x4769ad
cmp edi, dword [esi + 0x6c]
jae 0x4769ed
mov edx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x24]
lea ecx, [esi + 0x1c]
push ecx
push edx
push eax
call fcn.00480620
add esp, 0xc
test eax, eax
jne case.0x479cf2.14
mov ebx, dword [esp + 0x15c]
xor ebp, ebp
jmp 0x4769ed
mov eax, dword [esi + 0x6c]
sub eax, dword [esi + 0x1c]
cmp edi, eax
ja 0x4769ed
mov cl, byte [edi]
cmp cl, byte [esi + 0x2c]
jne 0x4769ed
cmp dword [esi + 0x1c], 1
je case.0x479cf2.14
mov dl, byte [edi + 1]
cmp dl, byte [esi + 0x2d]
jne 0x4769ed
mov eax, dword [esp + 0x164]
mov dword [esi + 0x9c], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
mov esi, dword [esp + 0x16c]
mov eax, dword [esi + 0x6c]
mov ecx, edi
inc edi
cmp ecx, eax
jae 0x47c659
cmp dword [esp + 0x24], ebp
je 0x476a14
cmp edi, eax
jae 0x476a14
mov dl, byte [edi]
and dl, 0xc0
cmp dl, 0x80
jne 0x476a14
inc edi
cmp edi, eax
jb 0x476a05
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov eax, dword [esp + 0x16c]
mov ecx, edi
inc edi
cmp ecx, dword [eax + 0x6c]
jae 0x47c69d
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47c6ef
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x476a94
cmp edx, 0xc0
jb 0x476a94
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x476a94
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x476a81
cmp edx, 0x100
jae 0x476aa9
mov ecx, dword [esi + 0x34]
test byte [edx + ecx], 4
jne 0x4764b5
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47c6ef
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x476b09
cmp edx, 0xc0
jb 0x476b09
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x476b09
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x476af6
cmp edx, 0x100
jae 0x4764b5
mov ecx, dword [esi + 0x34]
test byte [edx + ecx], 4
je 0x4764b5
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47c6ef
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x476b83
cmp edx, 0xc0
jb 0x476b83
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x476b83
nop
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x476b70
cmp edx, 0x100
jae 0x476b98
mov ecx, dword [esi + 0x34]
test byte [edx + ecx], 1
jne 0x4764b5
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47c6ef
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x476bf8
cmp edx, 0xc0
jb 0x476bf8
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x476bf8
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x476be5
cmp edx, 0x100
jae 0x4764b5
mov ecx, dword [esi + 0x34]
test byte [edx + ecx], 1
je 0x4764b5
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47c6ef
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x476c73
cmp edx, 0xc0
jb 0x476c73
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x476c73
mov edi, edi
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x476c60
cmp edx, 0x100
jae 0x476c88
mov ecx, dword [esi + 0x34]
test byte [edx + ecx], 0x10
jne 0x4764b5
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47c6ef
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x476ce8
cmp edx, 0xc0
jb 0x476ce8
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x476ce8
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x476cd5
cmp edx, 0x100
jae 0x4764b5
mov ecx, dword [esi + 0x34]
test byte [edx + ecx], 0x10
je 0x4764b5
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov ebp, dword [esp + 0x16c]
mov esi, dword [ebp + 0x6c]
cmp edi, esi
jae 0x47c733
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], 0
je 0x476d64
cmp edx, 0xc0
jb 0x476d64
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x476d64
movzx ebx, byte [edi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec eax
inc edi
or edx, ebx
test eax, eax
jg 0x476d51
cmp edx, 0xd
ja 0x476d91
je 0x476d7b
cmp edx, 0xa
je 0x476dbb
jbe 0x47c35b
cmp edx, 0xc
jmp 0x476dab
cmp edi, esi
jae 0x476dbb
cmp byte [edi], 0xa
jne 0x476dbb
inc edi
inc dword [esp + 0x15c]
jmp 0x475656
cmp edx, 0x85
je 0x476db1
cmp edx, 0x2027
jbe 0x47c35b
cmp edx, 0x2029
ja 0x47c35b
cmp dword [ebp + 0x60], 0
jne 0x479c56
inc dword [esp + 0x15c]
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47c778
movzx eax, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x476e19
cmp eax, 0xc0
jb 0x476e19
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x4b5e48]
and eax, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
shl eax, cl
test edx, edx
jle 0x476e19
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec edx
inc edi
or eax, ebp
test edx, edx
jg 0x476e06
cmp eax, 0x180e
ja 0x476e48
je case.0x479cf2.14
cmp eax, 0xa0
ja 0x476e41
je case.0x479cf2.14
cmp eax, 9
je case.0x479cf2.14
cmp eax, 0x20
jmp 0x476e73
cmp eax, 0x1680
jmp 0x476e73
cmp eax, 0x205f
ja 0x476e6e
je case.0x479cf2.14
cmp eax, 0x2000
jb 0x476e79
cmp eax, 0x200a
jbe case.0x479cf2.14
cmp eax, 0x202f
jmp 0x476e73
cmp eax, 0x3000
je case.0x479cf2.14
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47c778
movzx eax, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x476ed8
cmp eax, 0xc0
jb 0x476ed8
mov edx, eax
and edx, 0x3f
movzx edx, byte [edx + 0x4b5e48]
and eax, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
shl eax, cl
test edx, edx
jle 0x476ed8
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec edx
inc edi
or eax, ebp
test edx, edx
jg 0x476ec5
cmp eax, 0x180e
ja 0x476eff
je 0x476f2c
cmp eax, 0xa0
ja 0x476ef8
je 0x476f2c
cmp eax, 9
je 0x476f2c
cmp eax, 0x20
jmp 0x476f26
cmp eax, 0x1680
jmp 0x476f26
cmp eax, 0x205f
ja 0x476f21
je 0x476f2c
cmp eax, 0x2000
jb case.0x479cf2.14
cmp eax, 0x200a
jbe 0x476f2c
cmp eax, 0x202f
jmp 0x476f26
cmp eax, 0x3000
jne case.0x479cf2.14
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47c778
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x476f93
cmp edx, 0xc0
jb 0x476f93
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x476f93
lea esp, [esp]
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x476f80
cmp edx, 0x85
ja 0x476fab
je case.0x479cf2.14
cmp edx, 0xa
jb 0x476fbf
cmp edx, 0xd
jmp 0x476fb9
cmp edx, 0x2028
jb 0x476fbf
cmp edx, 0x2029
jbe case.0x479cf2.14
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47c778
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x477023
cmp edx, 0xc0
jb 0x477023
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x477023
lea esp, [esp]
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x477010
cmp edx, 0x85
ja 0x47703b
je 0x477053
cmp edx, 0xa
jb case.0x479cf2.14
cmp edx, 0xd
jmp 0x47704d
cmp edx, 0x2028
jb case.0x479cf2.14
cmp edx, 0x2029
ja case.0x479cf2.14
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47c778
movzx eax, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x4770b2
cmp eax, 0xc0
jb 0x4770b2
mov edx, eax
and edx, 0x3f
movzx edx, byte [edx + 0x4b5e48]
and eax, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
shl eax, cl
test edx, edx
jle 0x4770b2
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec edx
inc edi
or eax, ebp
test edx, edx
jg 0x47709f
mov ecx, eax
shr ecx, 7
movzx edx, byte [ecx + 0x4a8f80]
shl edx, 7
mov ecx, eax
and ecx, 0x7f
add edx, ecx
movzx ecx, word [edx*2 + 0x4ab180]
movzx edx, byte [ebx + 1]
lea ecx, [ecx*8 + 0x4a7f50]
cmp edx, 8
ja case.default.0x4770e4
jmp dword [edx*4 + 0x47f30c]
cmp dword [esp + 0x18], 0xf
je case.0x479cf2.14
add ebx, 3
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov cl, byte [ecx + 1]
cmp cl, 9
je 0x47711b
cmp cl, 5
je 0x47711b
cmp cl, 8
je 0x47711b
xor eax, eax
jmp 0x477120
mov eax, 1
xor edx, edx
cmp dword [esp + 0x18], 0xf
sete dl
cmp eax, edx
jne 0x4772be
mov ecx, dword [esp + 0x164]
mov dword [esi + 0x9c], ecx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
movzx eax, byte [ecx + 1]
movzx ecx, byte [ebx + 2]
xor edx, edx
cmp ecx, dword [eax*4 + 0x4b5e88]
setne dl
xor eax, eax
cmp dword [esp + 0x18], 0x10
sete al
cmp edx, eax
jmp 0x4772b8
mov dl, byte [ebx + 2]
xor eax, eax
cmp dl, byte [ecx + 1]
setne al
xor ecx, ecx
cmp dword [esp + 0x18], 0x10
sete cl
cmp eax, ecx
je case.0x479cf2.14
add ebx, 3
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov dl, byte [ebx + 2]
xor eax, eax
cmp dl, byte [ecx]
setne al
xor ecx, ecx
cmp dword [esp + 0x18], 0x10
sete cl
cmp eax, ecx
je 0x477132
add ebx, 3
mov dword [esp + 0x15c], ebx
jmp 0x475656
movzx edx, byte [ecx + 1]
mov eax, dword [edx*4 + 0x4b5e88]
cmp eax, 1
je 0x4772a7
cmp eax, 3
je 0x4772a7
xor eax, eax
jmp 0x4772ac
movzx edx, byte [ecx + 1]
cmp dword [edx*4 + 0x4b5e88], 6
je 0x477212
cmp eax, 9
je 0x477212
cmp eax, 0xa
je 0x477212
cmp eax, 0xc
je 0x477212
cmp eax, 0xd
je 0x477212
xor eax, eax
jmp 0x477217
mov eax, 1
xor ecx, ecx
cmp dword [esp + 0x18], 0xf
sete cl
cmp eax, ecx
je case.0x479cf2.14
add ebx, 3
mov dword [esp + 0x15c], ebx
jmp 0x475656
movzx edx, byte [ecx + 1]
cmp dword [edx*4 + 0x4b5e88], 6
je 0x477263
cmp eax, 9
je 0x477263
cmp eax, 0xa
je 0x477263
cmp eax, 0xb
je 0x477263
cmp eax, 0xc
je 0x477263
cmp eax, 0xd
je 0x477263
xor eax, eax
jmp 0x477268
mov eax, 1
xor ecx, ecx
cmp dword [esp + 0x18], 0xf
sete cl
cmp eax, ecx
je 0x477132
add ebx, 3
mov dword [esp + 0x15c], ebx
jmp 0x475656
movzx edx, byte [ecx + 1]
mov ecx, dword [edx*4 + 0x4b5e88]
cmp ecx, 1
je 0x4772a7
cmp ecx, 3
je 0x4772a7
cmp eax, 0x5f
je 0x4772a7
xor eax, eax
jmp 0x4772ac
mov eax, 1
xor ecx, ecx
cmp dword [esp + 0x18], 0xf
sete cl
cmp eax, ecx
je 0x4764b5
add ebx, 3
mov dword [esp + 0x15c], ebx
jmp 0x475656
mov esi, dword [esp + 0x16c]
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x1c], eax
cmp edi, eax
jae 0x47c6ef
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x477326
cmp edx, 0xc0
jb 0x477326
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x477326
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x477313
mov ecx, edx
shr ecx, 7
movzx eax, byte [ecx + 0x4a8f80]
and edx, 0x7f
shl eax, 7
add eax, edx
movzx ecx, word [eax*2 + 0x4ab180]
movzx edx, byte [ecx*8 + 0x4a7f51]
cmp dword [edx*4 + 0x4b5e88], 2
je 0x4764b5
cmp edi, dword [esp + 0x1c]
jae 0x4773ea
cmp dword [esp + 0x24], 0
movzx edx, byte [edi]
mov esi, 1
je 0x4773b0
cmp edx, 0xc0
jb 0x4773b0
mov eax, edx
and eax, 0x3f
movzx esi, byte [eax + 0x4b5e48]
and edx, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov eax, 1
shl edx, cl
cmp esi, eax
jl 0x4773af
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or edx, ebp
cmp eax, esi
jle 0x47739c
inc esi
mov ecx, edx
shr ecx, 7
movzx eax, byte [ecx + 0x4a8f80]
and edx, 0x7f
shl eax, 7
add eax, edx
movzx ecx, word [eax*2 + 0x4ab180]
movzx edx, byte [ecx*8 + 0x4a7f51]
cmp dword [edx*4 + 0x4b5e88], 2
jne 0x4773ea
add edi, esi
cmp edi, dword [esp + 0x1c]
jb 0x477362
inc ebx
mov dword [esp + 0x15c], ebx
jmp 0x475656
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
mov ebp, dword [esp + 0x16c]
shl ecx, 8
or ecx, eax
add ecx, ecx
add ebx, 3
mov dword [esp + 0x34], ecx
mov dword [esp + 0x15c], ebx
cmp ecx, dword [esp + 0x168]
jge 0x477437
mov edx, dword [ebp + 0xc]
lea eax, [edx + ecx*4]
mov edx, dword [eax]
test edx, edx
js 0x477437
mov esi, dword [eax + 4]
sub esi, edx
jmp 0x477447
cmp dword [ebp + 0x4c], 0
je 0x477441
xor esi, esi
jmp 0x477447
mov esi, dword [ebp + 0x6c]
sub esi, edi
inc esi
mov eax, dword [esp + 0x15c]
mov dl, byte [eax]
movzx eax, dl
lea ebx, [eax - 0x46]
cmp ebx, 7
ja case.default.0x477466
movzx ebx, byte [ebx + 0x47f338]
jmp dword [ebx*4 + 0x47f330]
movsx ebp, byte [eax + 0x4b6a0a]
inc dword [esp + 0x15c]
movsx ebx, byte [eax + 0x4b6a02]
lea ecx, [eax - 0x46]
and ecx, 1
mov dword [esp + 0x28], ecx
test ebp, ebp
jne 0x4774dd
mov ebp, SysReAllocString
jmp 0x4774dd
mov eax, dword [esp + 0x15c]
movzx ebx, byte [eax + 1]
movzx ebp, byte [eax + 3]
xor ecx, ecx
cmp dl, 0x4d
movzx edx, byte [eax + 2]
sete cl
shl ebx, 8
shl ebp, 8
or ebx, edx
mov dword [esp + 0x28], ecx
movzx ecx, byte [eax + 4]
or ebp, ecx
jne 0x4774cf
mov ebp, SysReAllocString
mov ecx, dword [esp + 0x28]
add eax, 5
mov dword [esp + 0x15c], eax
test esi, esi
je 0x475656
mov dword [esp + 0x20], 1
cmp ebx, 1
jl 0x47752d
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x16c]
push edx
push eax
mov eax, esi
mov edx, edi
call fcn.00475470
add esp, 8
test eax, eax
je 0x47c7cc
mov eax, dword [esp + 0x20]
inc eax
add edi, esi
mov dword [esp + 0x20], eax
cmp eax, ebx
jle 0x4774f2
mov ecx, dword [esp + 0x28]
cmp ebx, ebp
je 0x475656
test ecx, ecx
je 0x47c824
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
inc eax
push eax
push 0
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x17c]
push eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x17c]
push ebx
push ecx
mov ecx, dword [esp + 0x174]
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push edi
call fcn.004755e0
inc dword [ebx - 0x3f7ad73c]
jne 0x47f150
cmp dword [esp + 0x20], ebp
jge 0x47c803
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x16c]
push ebx
push eax
mov eax, esi
mov edx, edi
call fcn.00475470
add esp, 8
test eax, eax
mov eax, dword [esp + 0x16c]
je 0x47c7d3
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x174]
inc dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x16c]
push 0
push edx
mov edx, dword [esp + 0x170]
push ebx
push eax
mov eax, dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
add edi, esi
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
je 0x477599
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
mov edx, dword [esp + 0x170]
push edx
push ecx
mov ecx, ebp
mov eax, esi
mov edx, edi
call fcn.00475470
add esp, 8
test eax, eax
je 0x47c910
add edi, esi
jmp 0x475656
mov cl, byte [ebx + 0x21]
lea eax, [ebx + 1]
add ebx, 0x21
mov dword [esp + 0x2c], eax
movzx eax, cl
lea edx, [eax - 0x46]
mov dword [esp + 0x15c], ebx
cmp edx, 7
ja case.default.0x47766a
movzx edx, byte [edx + 0x47f348]
jmp dword [edx*4 + 0x47f340]
movsx ebx, byte [eax + 0x4b6a0a]
inc dword [esp + 0x15c]
movsx esi, byte [eax + 0x4b6a02]
lea ecx, [eax - 0x46]
and ecx, 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], ebx
test ebx, ebx
jne 0x4776f9
mov ebx, SysReAllocString
jmp 0x4776f5
xor eax, eax
cmp cl, 0x4d
sete al
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x15c]
movzx esi, byte [eax + 1]
movzx ebx, byte [eax + 3]
movzx ecx, byte [eax + 2]
movzx edx, byte [eax + 4]
shl esi, 8
shl ebx, 8
or esi, ecx
or ebx, edx
mov dword [esp + 0x14], ebx
jne 0x4776e2
mov ebx, SysReAllocString
mov dword [esp + 0x14], ebx
add eax, 5
mov dword [esp + 0x15c], eax
jmp 0x4776f9
mov ebx, 1
mov esi, ebx
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x24], ebp
je 0x4777af
mov dword [esp + 0x20], 1
cmp esi, 1
jl 0x4777f5
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + 0x6c]
mov dword [esp + 0x1c], ecx
cmp edi, dword [esp + 0x1c]
jae 0x47c95e
movzx edx, byte [edi]
inc edi
cmp edx, 0xc0
jb 0x477769
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x477769
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x477756
cmp edx, 0xff
jbe 0x47777e
cmp dword [esp + 0x18], 0x4e
je 0x47c8ef
jmp 0x47779c
mov ecx, edx
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x2c]
shr edx, 3
mov dl, byte [edx + ecx]
test dl, al
je 0x47c803
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, esi
jle 0x477722
jmp 0x4777f5
mov ebp, 1
cmp esi, ebp
jl 0x4777f5
mov eax, dword [esp + 0x16c]
mov edx, dword [eax + 0x6c]
cmp edi, edx
jae 0x47c95e
movzx eax, byte [edi]
mov ecx, eax
and ecx, 7
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x2c]
shr eax, 3
mov al, byte [eax + ecx]
inc edi
test al, bl
je 0x47c8ef
inc ebp
cmp ebp, esi
jle 0x4777c2
mov ebx, dword [esp + 0x14]
cmp esi, ebx
je 0x475656
cmp dword [esp + 0x28], 0
je 0x47cb6f
cmp dword [esp + 0x24], 0
mov edx, dword [esp + 0x174]
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x168]
je 0x47ca3c
mov ebp, dword [esp + 0x16c]
mov ebx, dword [esp + 0x164]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x17c]
inc esi
push esi
push 0
push edx
mov edx, dword [esp + 0x16c]
push eax
mov eax, dword [esp + 0x16c]
push ebp
push ecx
push ebx
push edx
push eax
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
jne 0x47f150
jmp 0x477870
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x20], ecx
jge 0x47c9f7
cmp edi, dword [ebp + 0x6c]
jae 0x47ca0a
movzx edx, byte [edi]
inc edi
cmp edx, 0xc0
jb 0x4778cb
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x4778c4
movzx ebx, byte [edi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec eax
inc edi
or edx, ebx
test eax, eax
jg 0x4778b1
mov ebx, dword [esp + 0x164]
cmp edx, 0xff
jbe 0x47c98c
cmp dword [esp + 0x18], 0x4e
jmp 0x47c9a4
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
lea ecx, [ebx + 3]
add ebx, edx
mov dword [esp + 0x2c], ecx
mov cl, byte [ebx]
movzx eax, cl
lea edx, [eax - 0x46]
mov dword [esp + 0x15c], ebx
cmp edx, 7
ja case.default.0x477916
movzx edx, byte [edx + 0x47f358]
jmp dword [edx*4 + 0x47f350]
movsx ebp, byte [eax + 0x4b6a0a]
movsx esi, byte [eax + 0x4b6a02]
lea ecx, [eax - 0x46]
inc ebx
and ecx, 1
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], ebp
test ebp, ebp
jne 0x47799f
mov ebp, SysReAllocString
jmp 0x47799b
movzx esi, byte [ebx + 1]
movzx ebp, byte [ebx + 3]
movzx edx, byte [ebx + 4]
xor eax, eax
cmp cl, 0x4d
movzx ecx, byte [ebx + 2]
sete al
shl esi, 8
shl ebp, 8
or esi, ecx
or ebp, edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], eax
jne 0x477988
mov ebp, SysReAllocString
mov dword [esp + 0x14], ebp
add ebx, 5
mov dword [esp + 0x15c], ebx
jmp 0x47799f
mov ebp, 1
mov esi, ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x20], 1
cmp esi, 1
jl 0x477a35
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + 0x6c]
mov dword [esp + 0x1c], ecx
cmp edi, dword [esp + 0x1c]
jae 0x47ce1e
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], 0
je 0x477a13
cmp edx, 0xc0
jb 0x477a13
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x477a13
lea esp, [esp]
movzx ebx, byte [edi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec eax
inc edi
or edx, ebx
test eax, eax
jg 0x477a00
mov eax, dword [esp + 0x2c]
push edx
call fcn.004808c0
add esp, 4
test eax, eax
je case.0x475682.115
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, esi
jle 0x4779be
cmp esi, ebp
je 0x475656
cmp dword [esp + 0x28], 0
je 0x47cea6
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x16c]
mov ebp, dword [esp + 0x164]
mov ebx, esi
mov esi, dword [esp + 0x17c]
inc esi
push esi
push 0
push eax
mov eax, dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x170]
push edx
mov edx, dword [esp + 0x170]
push eax
push ebp
push ecx
push edx
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
jne 0x47f150
mov edi, edi
cmp ebx, dword [esp + 0x14]
jge 0x47ce04
mov eax, dword [esp + 0x16c]
cmp edi, dword [eax + 0x6c]
jae 0x47ce6a
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], 0
je 0x477b0a
cmp edx, 0xc0
jb 0x477b0a
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x477b03
jmp 0x477af0
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x477af0
mov ebp, dword [esp + 0x164]
mov eax, dword [esp + 0x2c]
push edx
call fcn.004808c0
add esp, 4
test eax, eax
je 0x478345
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x16c]
push esi
push 0
push ecx
mov ecx, dword [esp + 0x174]
push edx
mov edx, dword [esp + 0x170]
push eax
mov eax, dword [esp + 0x170]
push ecx
push ebp
push edx
push eax
push edi
inc ebx
call fcn.004755e0
add esp, 0x28
test eax, eax
je 0x477aa0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
cmp dword [esp + 0x24], ebp
je 0x477bdf
movzx ecx, byte [ebx + 1]
inc ebx
mov eax, 1
mov dword [esp + 0x15c], ebx
cmp ecx, 0xc0
jb 0x477b9e
and ecx, 0x3f
movzx eax, byte [ecx + 0x4b5e48]
inc eax
mov esi, dword [esp + 0x16c]
mov ecx, dword [esi + 0x6c]
sub ecx, edi
cmp eax, ecx
jg 0x47d049
cmp eax, ebp
jle 0x475656
lea ebx, [ebx]
mov dl, byte [ebx]
mov cl, byte [edi]
inc ebx
dec eax
inc edi
mov dword [esp + 0x15c], ebx
cmp dl, cl
jne case.0x479cf2.14
test eax, eax
jg 0x477bc0
jmp 0x475656
mov eax, dword [esp + 0x16c]
mov edx, dword [eax + 0x6c]
sub edx, edi
cmp edx, 1
jl 0x47c69d
mov cl, byte [edi]
inc edi
cmp byte [ebx + 1], cl
jne 0x47c30a
add ebx, 2
mov dword [esp + 0x15c], ebx
jmp 0x475656
cmp dword [esp + 0x24], ebp
je 0x477d45
mov eax, dword [esp + 0x15c]
movzx ebx, byte [eax + 1]
inc eax
mov esi, ebx
mov ebp, 1
mov dword [esp + 0x15c], eax
cmp esi, 0xc0
jb 0x477c78
mov edx, esi
and edx, 0x3f
movzx edx, byte [edx + 0x4b5e48]
and esi, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
shl esi, cl
mov eax, ebp
cmp edx, ebp
jl 0x477c75
mov ebp, dword [esp + 0x15c]
movzx ebp, byte [eax + ebp]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or esi, ebp
cmp eax, edx
jle 0x477c5b
lea ebp, [edx + 1]
mov ecx, dword [esp + 0x16c]
mov edx, dword [ecx + 0x6c]
sub edx, edi
cmp ebp, edx
jg 0x47d060
movzx edx, byte [edi]
inc edi
cmp esi, 0x80
jae 0x477cad
mov eax, dword [ecx + 0x30]
mov dl, byte [edx + eax]
inc dword [esp + 0x15c]
cmp byte [ebx + eax], dl
jmp 0x476952
cmp edx, 0xc0
jb 0x477ce6
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x477ce6
movzx ebx, byte [edi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec eax
inc edi
or edx, ebx
test eax, eax
jg 0x477cd3
add dword [esp + 0x15c], ebp
cmp esi, edx
je 0x475656
mov ecx, esi
shr ecx, 7
movzx eax, byte [ecx + 0x4a8f80]
shl eax, 7
mov ecx, esi
and ecx, 0x7f
add eax, ecx
movzx eax, word [eax*2 + 0x4ab180]
mov ecx, dword [eax*8 + 0x4a7f54]
add ecx, esi
cmp edx, ecx
je 0x475656
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x16c]
mov dword [ecx + 0x9c], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
mov ecx, dword [esp + 0x16c]
mov edx, dword [ecx + 0x6c]
sub edx, edi
cmp edx, 1
jl 0x47d0ae
movzx esi, byte [edi]
mov eax, dword [ecx + 0x30]
movzx edx, byte [ebx + 1]
mov dword [esp + 0x38], ecx
mov cl, byte [esi + eax]
inc edi
cmp byte [edx + eax], cl
mov ecx, dword [esp + 0x38]
jne 0x476958
add ebx, 2
mov dword [esp + 0x15c], ebx
jmp 0x475656
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
mov ebp, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebp
add ebx, 3
jmp 0x477e37
mov dword [esp + 0x2c], 1
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
xor eax, eax
cmp cl, 0x26
sete al
mov dword [esp + 0x18], ebp
add ebx, 3
mov dword [esp + 0x28], eax
jmp 0x477e2f
mov dword [esp + 0x2c], 1
mov dword [esp + 0x18], ebp
inc ebx
jmp 0x477e2a
mov eax, 1
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
add ebx, eax
jmp 0x477e2a
mov edx, 1
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], ebp
add ebx, edx
jmp 0x477e2f
movsx edx, byte [eax + 0x4b6a31]
lea ecx, [eax - 0x1f]
and ecx, 1
mov dword [esp + 0x28], ecx
movsx ecx, byte [eax + 0x4b6a29]
inc ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
test edx, edx
jne 0x477e33
mov edx, SysReAllocString
mov dword [esp + 0x14], edx
mov ebp, dword [esp + 0x18]
cmp dword [esp + 0x24], 0
movzx esi, byte [ebx]
je 0x478217
mov eax, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], ebx
cmp esi, 0xc0
jb 0x477ea4
mov edx, esi
and edx, 0x3f
movzx edx, byte [edx + 0x4b5e48]
and esi, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
shl esi, cl
cmp edx, eax
jl 0x477e97
jmp 0x477e80
movzx ebp, byte [eax + ebx]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or esi, ebp
cmp eax, edx
jle 0x477e80
mov ebp, dword [esp + 0x18]
inc edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
add ebx, eax
mov dword [esp + 0x15c], ebx
cmp eax, 1
jle 0x47821f
test byte [esp + 0x170], 1
je 0x477ef8
mov ecx, esi
shr ecx, 7
movzx edx, byte [ecx + 0x4a8f80]
shl edx, 7
mov eax, esi
and eax, 0x7f
add edx, eax
movzx ecx, word [edx*2 + 0x4ab180]
mov edx, dword [ecx*8 + 0x4a7f54]
add edx, esi
cmp edx, esi
je 0x477ef8
lea eax, [esp + 0x60]
call fcn.00480870
mov edx, eax
jmp 0x477efa
xor edx, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], 1
cmp ebp, 1
jl 0x47800b
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + 0x6c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], ecx
sub ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x477f38
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
cmp edi, ecx
ja 0x477f85
mov ecx, dword [esp + 0x38]
mov esi, edi
cmp eax, 4
jb 0x477f5b
mov ebx, dword [esi]
cmp ebx, dword [ecx]
jne 0x477f85
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x477f47
test eax, eax
je 0x477f7f
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x477f85
cmp eax, 1
jbe 0x477f7f
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x477f85
cmp eax, 2
jbe 0x477f7f
mov cl, byte [ecx + 2]
cmp cl, byte [esi + 2]
jne 0x477f85
add edi, dword [esp + 0x1c]
jmp 0x477ffa
test edx, edx
jle 0x47c7cc
mov eax, dword [esp + 0x44]
sub eax, edx
cmp edi, eax
ja 0x47c7cc
mov eax, edx
lea ecx, [esp + 0x60]
mov esi, edi
cmp edx, 4
jb 0x477fc8
jmp 0x477fb0
mov ebx, dword [esi]
cmp ebx, dword [ecx]
jne 0x47c7cc
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x477fb0
test eax, eax
je 0x477ff8
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x47c7cc
cmp eax, 1
jbe 0x477ff8
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x47c7cc
cmp eax, 2
jbe 0x477ff8
mov cl, byte [ecx + 2]
cmp cl, byte [esi + 2]
jne 0x47c7cc
add edi, edx
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, ebp
jle 0x477f30
mov eax, dword [esp + 0x14]
cmp ebp, eax
je 0x475656
cmp dword [esp + 0x28], 0
jne 0x47d0f2
mov dword [esp + 0x28], edi
cmp ebp, eax
jge 0x47814b
mov eax, dword [esp + 0x16c]
mov ebx, dword [eax + 0x6c]
mov eax, ebx
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
jmp 0x478048
mov eax, dword [esp + 0x34]
cmp edi, eax
ja 0x4780a9
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov esi, edi
cmp eax, 4
jb 0x478074
jmp 0x478060
mov edx, dword [esi]
cmp edx, dword [ecx]
jne 0x4780a5
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x478060
test eax, eax
je 0x478098
mov dl, byte [ecx]
cmp dl, byte [esi]
jne 0x4780a5
cmp eax, 1
jbe 0x478098
mov dl, byte [ecx + 1]
cmp dl, byte [esi + 1]
jne 0x4780a5
cmp eax, 2
jbe 0x478098
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4780a5
add edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
jmp 0x478112
mov edx, dword [esp + 0x18]
test edx, edx
jle 0x47811f
mov ecx, ebx
sub ecx, edx
cmp edi, ecx
ja 0x47811f
mov eax, edx
lea ecx, [esp + 0x60]
mov esi, edi
cmp edx, 4
jb 0x4780e8
lea ebx, [ebx]
mov edx, dword [esi]
cmp edx, dword [ecx]
jne 0x47811f
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4780d0
mov edx, dword [esp + 0x18]
test eax, eax
je 0x478110
mov dl, byte [ecx]
cmp dl, byte [esi]
jne 0x47811f
cmp eax, 1
jbe 0x47810c
mov dl, byte [ecx + 1]
cmp dl, byte [esi + 1]
jne 0x47811f
cmp eax, 2
jbe 0x47810c
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x47811f
mov edx, dword [esp + 0x18]
add edi, edx
inc ebp
cmp ebp, dword [esp + 0x14]
jl 0x478044
jmp 0x47814b
mov eax, dword [esp + 0x16c]
cmp dword [eax + 0x7c], 0
je 0x47814b
cmp edi, dword [eax + 0x6c]
jb 0x47814b
cmp edi, dword [esp + 0x160]
jbe 0x47814b
mov ecx, 1
mov dword [eax + 0x5c], ecx
cmp dword [eax + 0x7c], ecx
jg 0x47c6b8
cmp dword [esp + 0x2c], 0
jne 0x475656
mov esi, dword [esp + 0x17c]
mov edx, dword [esp + 0x174]
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x168]
mov ebp, dword [esp + 0x164]
inc esi
push esi
push 0
push edx
mov edx, dword [esp + 0x16c]
push eax
mov eax, dword [esp + 0x16c]
push ecx
push ebx
push ebp
push edx
push eax
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
jne 0x47f150
lea ebx, [ebx]
cmp edi, dword [esp + 0x28]
je 0x478345
mov cl, byte [edi - 1]
dec edi
and cl, 0xc0
cmp cl, 0x80
jne 0x4781d2
mov dl, byte [edi - 1]
dec edi
and dl, 0xc0
cmp dl, 0x80
je 0x4781c6
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x16c]
push esi
push 0
push eax
mov eax, dword [esp + 0x16c]
push ecx
mov ecx, dword [esp + 0x16c]
push edx
push ebx
push ebp
push eax
push ecx
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
je 0x4781b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
inc ebx
mov dword [esp + 0x15c], ebx
mov ebx, dword [esp + 0x16c]
mov eax, 1
test byte [esp + 0x170], al
je 0x47835f
mov edx, dword [esp + 0x18]
mov ecx, dword [ebx + 0x30]
movzx ebp, byte [ecx + esi]
cmp edx, eax
jl 0x47826d
mov edx, dword [ebx + 0x6c]
cmp edi, edx
jae 0x47d2a3
movzx esi, byte [edi]
movzx esi, byte [esi + ecx]
inc edi
cmp ebp, esi
jne 0x47c52e
inc eax
cmp eax, dword [esp + 0x18]
jle 0x47824a
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x14]
je 0x475656
cmp dword [esp + 0x28], 0
jne 0x47d2e8
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], edi
cmp eax, esi
jge 0x4782d5
mov edx, ebx
mov edx, dword [edx + 0x6c]
cmp edi, edx
jae 0x4782ae
movzx ebx, byte [edi]
movzx ebx, byte [ebx + ecx]
cmp ebp, ebx
jne 0x4782d5
inc eax
inc edi
cmp eax, esi
jl 0x478297
jmp 0x4782d5
mov ecx, dword [esp + 0x16c]
cmp dword [ecx + 0x7c], 0
je 0x4782d5
cmp edi, dword [esp + 0x160]
jbe 0x4782d5
mov eax, 1
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jg 0x47ce4d
cmp dword [esp + 0x2c], 0
jne 0x475656
mov ebp, dword [esp + 0x164]
cmp edi, dword [esp + 0x28]
jb 0x478345
mov esi, dword [esp + 0x17c]
mov ebx, dword [esp + 0x15c]
inc esi
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x16c]
push esi
push 0
push eax
mov eax, dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x170]
push edx
push eax
push ebp
push ecx
push ebx
push edi
call fcn.004755e0
add esp, 0x28
dec edi
test eax, eax
jne 0x47f150
cmp edi, dword [esp + 0x28]
jae 0x478300
mov edx, dword [esp + 0x16c]
mov dword [edx + 0x9c], ebp
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
cmp ebp, 1
jl 0x478384
mov ecx, dword [ebx + 0x6c]
cmp edi, ecx
jae 0x47d2a3
movzx edx, byte [edi]
inc edi
cmp esi, edx
jne 0x47c52e
inc eax
cmp eax, ebp
jle 0x478367
mov edx, dword [esp + 0x14]
cmp ebp, edx
je 0x475656
cmp dword [esp + 0x28], 0
jne 0x47d3c1
mov edx, edi
mov dword [esp + 0x28], edx
mov eax, ebp
cmp ebp, dword [esp + 0x14]
jge 0x4783dd
mov ecx, dword [ebx + 0x6c]
cmp edi, ecx
jae 0x4783bd
movzx ebp, byte [edi]
cmp esi, ebp
jne 0x4783dd
inc eax
inc edi
cmp eax, dword [esp + 0x14]
jl 0x4783a8
jmp 0x4783dd
cmp dword [ebx + 0x7c], 0
je 0x4783dd
cmp edi, dword [esp + 0x160]
jbe 0x4783dd
mov eax, 1
mov dword [ebx + 0x5c], eax
cmp dword [ebx + 0x7c], eax
jg 0x47d2cb
cmp dword [esp + 0x2c], 0
jne 0x475656
mov ebp, dword [esp + 0x164]
cmp edi, edx
jb 0x47845c
mov esi, dword [esp + 0x17c]
mov ebx, dword [esp + 0x168]
inc esi
jmp 0x478410
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x16c]
push esi
push 0
push ecx
mov ecx, dword [esp + 0x16c]
push edx
mov edx, dword [esp + 0x16c]
push eax
push ebx
push ebp
push ecx
push edx
push edi
call fcn.004755e0
add esp, 0x28
dec edi
test eax, eax
jne 0x47f150
cmp edi, dword [esp + 0x28]
jae 0x478410
mov ebx, dword [esp + 0x16c]
mov dword [ebx + 0x9c], ebp
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47c6ef
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x24], ebp
je 0x4784c3
cmp edx, 0xc0
jb 0x4784c3
mov eax, edx
and eax, 0x3f
test byte [esp + 0x170], 1
je 0x4784fe
cmp edx, 0x100
jae 0x4784dc
mov ecx, dword [esi + 0x30]
movzx edx, byte [ecx + edx]
movzx eax, byte [ebx + 1]
mov ecx, dword [esi + 0x30]
movzx eax, byte [ecx + eax]
add ebx, 2
mov dword [esp + 0x15c], ebx
cmp eax, edx
jne 0x475656
jmp 0x4764b5
movzx ecx, byte [ebx + 1]
add ebx, 2
mov dword [esp + 0x15c], ebx
cmp ecx, edx
jne 0x475656
jmp case.0x479cf2.14
movzx esi, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl esi, 8
or esi, edx
mov dword [esp + 0x14], esi
add ebx, 3
jmp 0x4785d5
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl eax, 8
or eax, edx
mov dword [esp + 0x14], eax
xor eax, eax
xor esi, esi
cmp cl, 0x33
sete al
add ebx, 3
mov dword [esp + 0x28], eax
jmp 0x4785d5
xor esi, esi
mov dword [esp + 0x2c], 1
inc ebx
jmp 0x4785cd
mov esi, 1
mov dword [esp + 0x2c], esi
add ebx, esi
jmp 0x4785cd
mov eax, 1
xor esi, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
add ebx, eax
jmp 0x4785d5
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
xor esi, esi
mov dword [esp + 0x2c], 1
mov dword [esp + 0x14], eax
add ebx, 3
jmp 0x4785d5
movsx esi, byte [eax + 0x4b6a1c]
lea ecx, [eax - 0x2c]
movsx eax, byte [eax + 0x4b6a24]
and ecx, 1
inc ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], eax
cmp eax, ebp
jne 0x4785d5
mov dword [esp + 0x14], SysReAllocString
movzx eax, byte [ebx]
inc ebx
test byte [esp + 0x170], 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x15c], ebx
je 0x47894f
cmp dword [esp + 0x24], 0
mov edx, dword [esp + 0x16c]
mov ebp, dword [edx + 0x30]
movzx eax, byte [eax + ebp]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x20], eax
je 0x478694
mov ebx, 1
cmp esi, ebx
jl 0x4786c1
mov ecx, edx
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x1c], edx
cmp edi, dword [esp + 0x1c]
jae 0x47d48f
movzx edx, byte [edi]
inc edi
cmp edx, 0xc0
jb 0x478677
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x478673
lea ecx, [ecx]
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x478660
mov ebp, dword [esp + 0x34]
cmp edx, 0x100
jae 0x478683
movzx edx, byte [edx + ebp]
cmp dword [esp + 0x20], edx
je 0x47c803
inc ebx
cmp ebx, esi
jle 0x478629
jmp 0x4786c1
mov eax, 1
cmp esi, eax
jl 0x4786c1
mov ecx, edx
mov ecx, dword [ecx + 0x6c]
cmp edi, ecx
jae 0x47ce1e
movzx edx, byte [edi]
movzx edx, byte [edx + ebp]
inc edi
cmp dword [esp + 0x20], edx
je case.0x475682.115
inc eax
cmp eax, esi
jle 0x4786a2
cmp esi, dword [esp + 0x14]
je 0x475656
cmp dword [esp + 0x28], 0
jne 0x47d4dd
cmp dword [esp + 0x24], 0
mov ecx, edi
mov dword [esp + 0x28], ecx
je 0x478861
mov ebx, esi
cmp esi, dword [esp + 0x14]
jge 0x478795
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + 0x6c]
mov dword [esp + 0x1c], ecx
mov edx, 1
cmp edi, dword [esp + 0x1c]
jae 0x47877a
movzx esi, byte [edi]
cmp esi, 0xc0
jb 0x47875d
mov edx, esi
and edx, 0x3f
movzx edx, byte [edx + 0x4b5e48]
and esi, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
mov eax, 1
shl esi, cl
cmp edx, eax
jl 0x478755
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or esi, ebp
cmp eax, edx
jle 0x47873e
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x16c]
inc edx
cmp esi, 0x100
jae 0x478769
movzx esi, byte [esi + ebp]
cmp dword [esp + 0x20], esi
je 0x478795
inc ebx
add edi, edx
cmp ebx, dword [esp + 0x14]
jl 0x478701
jmp 0x478795
cmp dword [eax + 0x7c], 0
je 0x478795
cmp edi, dword [esp + 0x160]
jbe 0x478795
mov dword [eax + 0x5c], edx
cmp dword [eax + 0x7c], edx
jg 0x47d6c8
cmp dword [esp + 0x2c], 0
jne 0x475656
mov esi, dword [esp + 0x17c]
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x16c]
mov ebx, dword [esp + 0x168]
mov ebp, dword [esp + 0x164]
inc esi
push esi
push 0
push ecx
mov ecx, dword [esp + 0x16c]
push edx
mov edx, dword [esp + 0x16c]
push eax
push ebx
push ebp
push ecx
push edx
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
jne 0x47f150
mov eax, edi
dec edi
cmp eax, dword [esp + 0x28]
je 0x478935
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x47881c
jmp 0x478810
mov dl, byte [edi - 1]
dec edi
and dl, 0xc0
cmp dl, 0x80
je 0x478810
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x16c]
push esi
push 0
push eax
mov eax, dword [esp + 0x16c]
push ecx
mov ecx, dword [esp + 0x16c]
push edx
push ebx
push ebp
push eax
push ecx
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
je 0x4787f4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
cmp esi, dword [esp + 0x14]
jge 0x4788c0
mov edx, dword [esp + 0x16c]
mov eax, dword [edx + 0x6c]
mov ebx, dword [esp + 0x20]
jmp 0x478887
mov edx, dword [esp + 0x16c]
cmp edi, eax
jae 0x4788a0
movzx edx, byte [edi]
movzx edx, byte [edx + ebp]
cmp ebx, edx
je 0x4788c0
inc esi
inc edi
cmp esi, dword [esp + 0x14]
jl 0x478880
jmp 0x4788c0
cmp dword [edx + 0x7c], 0
je 0x4788c0
cmp edi, dword [esp + 0x160]
jbe 0x4788c0
mov eax, 1
mov dword [edx + 0x5c], eax
cmp dword [edx + 0x7c], eax
jg 0x47d708
cmp dword [esp + 0x2c], 0
jne 0x475656
mov ebp, dword [esp + 0x164]
cmp edi, ecx
jb 0x478935
mov esi, dword [esp + 0x17c]
mov ebx, dword [esp + 0x168]
inc esi
lea esp, [esp]
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x16c]
push esi
push 0
push ecx
mov ecx, dword [esp + 0x16c]
push edx
mov edx, dword [esp + 0x16c]
push eax
push ebx
push ebp
push ecx
push edx
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
jne 0x47f150
dec edi
cmp edi, dword [esp + 0x28]
jae 0x4788f0
mov eax, dword [esp + 0x16c]
mov dword [eax + 0x9c], ebp
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
cmp dword [esp + 0x24], ebp
je 0x4789db
mov ebx, 1
cmp esi, ebx
jl 0x4789d2
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + 0x6c]
mov dword [esp + 0x1c], ecx
cmp edi, dword [esp + 0x1c]
jae 0x47d725
movzx edx, byte [edi]
inc edi
cmp edx, 0xc0
jb 0x4789c3
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x4789c3
jmp 0x4789b0
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x4789b0
cmp dword [esp + 0x20], edx
je 0x47c8ef
inc ebx
cmp ebx, esi
jle 0x478974
mov ebp, dword [esp + 0x16c]
jmp 0x478a0b
mov eax, 1
cmp esi, eax
jl 0x4789d2
mov edx, dword [esp + 0x16c]
mov ecx, dword [edx + 0x6c]
cmp edi, ecx
jae 0x47d735
movzx ebx, byte [edi]
inc edi
cmp dword [esp + 0x20], ebx
je 0x47d289
inc eax
cmp eax, esi
jle 0x4789ee
mov ebp, edx
mov eax, dword [esp + 0x14]
cmp esi, eax
je 0x475656
cmp dword [esp + 0x28], 0
jne 0x47d754
cmp dword [esp + 0x24], 0
mov ecx, edi
mov dword [esp + 0x28], ecx
je 0x478b91
mov ebx, esi
cmp esi, eax
jge 0x478ac8
mov ecx, dword [ebp + 0x6c]
mov dword [esp + 0x1c], ecx
mov edx, 1
cmp edi, dword [esp + 0x1c]
jae 0x478aad
movzx esi, byte [edi]
cmp esi, 0xc0
jb 0x478a9c
mov edx, esi
and edx, 0x3f
movzx edx, byte [edx + 0x4b5e48]
and esi, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
mov eax, 1
shl esi, cl
cmp edx, eax
jl 0x478a9b
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or esi, ebp
cmp eax, edx
jle 0x478a81
mov ebp, dword [esp + 0x16c]
inc edx
cmp dword [esp + 0x20], esi
je 0x478ac8
inc ebx
add edi, edx
cmp ebx, dword [esp + 0x14]
jl 0x478a44
jmp 0x478ac8
cmp dword [ebp + 0x7c], 0
je 0x478ac8
cmp edi, dword [esp + 0x160]
jbe 0x478ac8
mov dword [ebp + 0x5c], edx
cmp dword [ebp + 0x7c], edx
jg 0x47c941
cmp dword [esp + 0x2c], 0
jne 0x475656
mov esi, dword [esp + 0x17c]
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x168]
mov ebp, dword [esp + 0x164]
inc esi
push esi
push 0
push eax
mov eax, dword [esp + 0x16c]
push ecx
mov ecx, dword [esp + 0x16c]
push edx
push ebx
push ebp
push eax
push ecx
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
jne 0x47f150
mov edx, edi
dec edi
cmp edx, dword [esp + 0x28]
je 0x478c45
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
jne 0x478b4c
lea esp, [esp]
mov cl, byte [edi - 1]
dec edi
and cl, 0xc0
cmp cl, 0x80
je 0x478b40
mov edx, dword [esp + 0x174]
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x16c]
push esi
push 0
push edx
mov edx, dword [esp + 0x16c]
push eax
mov eax, dword [esp + 0x16c]
push ecx
push ebx
push ebp
push edx
push eax
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
je 0x478b27
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
cmp esi, eax
jge 0x478bcf
mov eax, dword [ebp + 0x6c]
cmp edi, eax
jae 0x478baf
movzx edx, byte [edi]
cmp dword [esp + 0x20], edx
je 0x478bcf
inc esi
inc edi
cmp esi, dword [esp + 0x14]
jl 0x478b98
jmp 0x478bcf
cmp dword [ebp + 0x7c], 0
je 0x478bcf
cmp edi, dword [esp + 0x160]
jbe 0x478bcf
mov eax, 1
mov dword [ebp + 0x5c], eax
cmp dword [ebp + 0x7c], eax
jg 0x47db35
cmp dword [esp + 0x2c], 0
jne 0x475656
mov ebp, dword [esp + 0x164]
cmp edi, ecx
jb 0x478c45
mov esi, dword [esp + 0x17c]
mov ebx, dword [esp + 0x168]
inc esi
jmp 0x478c00
mov edx, dword [esp + 0x174]
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x16c]
push esi
push 0
push edx
mov edx, dword [esp + 0x16c]
push eax
mov eax, dword [esp + 0x16c]
push ecx
push ebx
push ebp
push edx
push eax
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
jne 0x47f150
dec edi
cmp edi, dword [esp + 0x28]
jae 0x478c00
mov ecx, dword [esp + 0x16c]
mov dword [ecx + 0x9c], ebp
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], 1
add ebx, 3
mov ebp, eax
jmp 0x478d3b
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx + 2]
shl eax, 8
or eax, edx
mov dword [esp + 0x14], eax
xor eax, eax
cmp cl, 0x40
sete al
mov dword [esp + 0x18], ebp
add ebx, 3
mov dword [esp + 0x28], eax
jmp 0x478d3b
mov dword [esp + 0x2c], 1
mov dword [esp + 0x18], ebp
inc ebx
jmp 0x478d33
mov eax, 1
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
add ebx, eax
mov ebp, eax
jmp 0x478d33
mov eax, 1
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], eax
add ebx, eax
jmp 0x478d3b
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl eax, 8
or eax, ecx
mov dword [esp + 0x2c], 1
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], eax
add ebx, 3
jmp 0x478d3b
movsx ebp, byte [eax + 0x4b6a0f]
lea ecx, [eax - 0x39]
movsx eax, byte [eax + 0x4b6a17]
and ecx, 1
inc ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], eax
test eax, eax
jne 0x478d3b
mov dword [esp + 0x14], SysReAllocString
movzx eax, byte [ebx]
mov edx, 1
add ebx, edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x15c], ebx
cmp eax, 0x10
je 0x478d5f
cmp eax, 0xf
je 0x478d5f
or ecx, 0xffffffff
jmp 0x478d81
movzx esi, byte [ebx + edx]
xor ecx, ecx
cmp eax, 0xf
sete cl
mov dword [esp + 0x40], esi
mov dword [esp + 0x30], ecx
movzx ecx, byte [ebx]
add ebx, edx
add ebx, edx
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x38], ecx
test ebp, ebp
jle 0x479834
test ecx, ecx
js 0x479462
cmp ecx, 8
ja case.default.0x4770e4
jmp dword [ecx*4 + 0x47f360]
cmp dword [esp + 0x30], 0
jne 0x47c803
mov ecx, edx
cmp ebp, edx
jl 0x479834
mov ebx, dword [esp + 0x16c]
mov esi, dword [ebx + 0x6c]
mov edx, dword [esp + 0x24]
cmp edi, esi
jae 0x47d935
movzx eax, byte [edi]
inc edi
test edx, edx
je 0x478def
cmp eax, 0xc0
jb 0x478def
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
test eax, eax
jle 0x478def
add edi, eax
inc ecx
cmp ecx, ebp
jle 0x478dc8
mov edx, ebx
jmp 0x478ebf
mov ebx, edx
cmp ebp, 1
jl 0x479834
mov edx, dword [esp + 0x16c]
mov eax, dword [edx + 0x6c]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
cmp edi, dword [esp + 0x1c]
jae 0x47c95e
movzx edx, byte [edi]
inc edi
test esi, esi
je 0x478e63
cmp edx, 0xc0
jb 0x478e63
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x478e63
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x478e50
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4a8f80]
and edx, 0x7f
shl ecx, 7
add ecx, edx
movzx edx, word [ecx*2 + 0x4ab180]
movzx eax, byte [edx*8 + 0x4a7f51]
cmp eax, 9
je 0x478e9a
cmp eax, 5
je 0x478e9a
cmp eax, 8
je 0x478e9a
xor eax, eax
jmp 0x478e9f
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x47c8ef
inc ebx
cmp ebx, dword [esp + 0x18]
jle 0x478e18
mov edx, dword [esp + 0x16c]
mov ebp, dword [esp + 0x18]
cmp ebp, dword [esp + 0x14]
je 0x475656
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x38]
jne 0x47dbb9
mov dword [esp + 0x28], edi
test eax, eax
js 0x47a7b2
cmp eax, 8
ja case.default.0x4770e4
jmp dword [eax*4 + 0x47f384]
mov ebx, edx
cmp ebp, 1
jl 0x479834
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + 0x6c]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
cmp edi, dword [esp + 0x1c]
jae 0x47d97a
movzx edx, byte [edi]
inc edi
test esi, esi
je 0x478f63
cmp edx, 0xc0
jb 0x478f63
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x478f63
lea esp, [esp]
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x478f50
mov ecx, edx
shr ecx, 7
movzx eax, byte [ecx + 0x4a8f80]
shl eax, 7
and edx, 0x7f
add eax, edx
movzx ecx, word [eax*2 + 0x4ab180]
movzx edx, byte [ecx*8 + 0x4a7f51]
mov ecx, dword [esp + 0x40]
xor eax, eax
cmp dword [edx*4 + 0x4b5e88], ecx
sete al
cmp eax, dword [esp + 0x30]
je 0x47c803
inc ebx
cmp ebx, dword [esp + 0x18]
jle 0x478f11
jmp 0x478eb4
mov ebx, edx
cmp ebp, 1
jl 0x479834
mov edx, dword [esp + 0x16c]
mov eax, dword [edx + 0x6c]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
cmp edi, dword [esp + 0x1c]
jae 0x47c95e
movzx edx, byte [edi]
inc edi
test esi, esi
je 0x479019
cmp edx, 0xc0
jb 0x479019
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x479019
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x479006
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4a8f80]
shl ecx, 7
and edx, 0x7f
add ecx, edx
movzx edx, word [ecx*2 + 0x4ab180]
movzx eax, byte [edx*8 + 0x4a7f51]
xor ecx, ecx
cmp eax, dword [esp + 0x40]
sete cl
sar dword [ebx], 0x4c
and al, 0x30
je 0x47c8ef
inc ebx
cmp ebx, dword [esp + 0x18]
jle 0x478fce
jmp 0x478eb4
mov ebx, edx
cmp ebp, 1
jl 0x479834
mov edx, dword [esp + 0x16c]
mov eax, dword [edx + 0x6c]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
cmp edi, dword [esp + 0x1c]
jae 0x47d97a
movzx edx, byte [edi]
inc edi
test esi, esi
je 0x4790c8
cmp edx, 0xc0
jb 0x4790c8
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x4790c8
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x4790b5
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4a8f80]
shl ecx, 7
and edx, 0x7f
add ecx, edx
movzx edx, word [ecx*2 + 0x4ab180]
movzx eax, byte [edx*8 + 0x4a7f50]
xor ecx, ecx
cmp eax, dword [esp + 0x40]
sete cl
cmp ecx, dword [esp + 0x30]
je 0x47c803
inc ebx
cmp ebx, dword [esp + 0x18]
jle 0x47907d
jmp 0x478eb4
mov ebx, edx
cmp ebp, 1
jl 0x479834
mov edx, dword [esp + 0x16c]
mov eax, dword [edx + 0x6c]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
cmp edi, dword [esp + 0x1c]
jae 0x47c95e
movzx edx, byte [edi]
inc edi
test esi, esi
je 0x479177
cmp edx, 0xc0
jb 0x479177
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x4b5e48]
dec ebx
add byte [ebx], ah
adc al, 0x85
sub al, 0x5e
dec ebx
add byte [ebp - 0x36fcbff4], cl
shl edx, cl
test eax, eax
jle 0x479177
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x479164
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4a8f80]
and edx, 0x7f
shl ecx, 7
add ecx, edx
movzx edx, word [ecx*2 + 0x4ab180]
movzx eax, byte [edx*8 + 0x4a7f51]
mov eax, dword [eax*4 + 0x4b5e88]
pop esi
dec ebx
add byte [ebx + 0x97401f8], al
cmp eax, 3
je 0x4791b0
xor eax, eax
jmp 0x4791b5
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x47c8ef
inc ebx
cmp ebx, dword [esp + 0x18]
jle 0x47912c
jmp 0x478eb4
mov dword [esp + 0x20], edx
cmp ebp, edx
jl 0x479834
mov ecx, dword [esp + 0x16c]
mov edx, dword [ecx + 0x6c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
mov esi, 6
cmp edi, dword [esp + 0x1c]
jae 0x47d97a
movzx edx, byte [edi]
inc edi
test ebx, ebx
je 0x479242
cmp edx, 0xc0
jb 0x479242
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x479242
lea ebx, [ebx]
movzx ebp, byte [edi]
sub ecx, esi
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x479230
mov ecx, edx
shr ecx, 7
movzx eax, byte [ecx + 0x4a8f80]
shl eax, 7
mov ecx, edx
and ecx, 0x7f
add eax, ecx
movzx eax, word [eax*2 + 0x4ab180]
movzx ecx, byte [eax*8 + 0x4a7f51]
cmp dword [ecx*4 + 0x4b5e88], esi
je 0x479289
cmp edx, 9
je 0x479289
cmp edx, 0xa
je 0x479289
cmp edx, 0xc
je 0x479289
cmp edx, 0xd
je 0x479289
xor eax, eax
jmp 0x47928e
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x47c803
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x18]
jle 0x4791f2
jmp 0x478eb4
mov dword [esp + 0x20], edx
cmp ebp, edx
jl 0x479834
mov edx, dword [esp + 0x16c]
mov eax, dword [edx + 0x6c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov esi, 6
cmp edi, dword [esp + 0x1c]
jae 0x47ce1e
movzx edx, byte [edi]
inc edi
test ebx, ebx
je 0x479322
cmp edx, 0xc0
jb 0x479322
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x479322
jmp 0x479310
movzx ebp, byte [edi]
sub ecx, esi
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x479310
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4a8f80]
shl ecx, 7
mov eax, edx
and eax, 0x7f
add ecx, eax
movzx ecx, word [ecx*2 + 0x4ab180]
movzx eax, byte [ecx*8 + 0x4a7f51]
cmp dword [eax*4 + 0x4b5e88], esi
je 0x47936e
cmp edx, 9
je 0x47936e
cmp edx, 0xa
je 0x47936e
cmp edx, 0xb
je 0x47936e
cmp edx, 0xc
je 0x47936e
cmp edx, 0xd
je 0x47936e
xor eax, eax
jmp 0x479373
mov eax, 1
cmp eax, dword [esp + 0x30]
je case.0x475682.115
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x18]
jle 0x4792d3
jmp 0x478eb4
mov ebx, edx
cmp ebp, 1
jl 0x479834
mov ecx, dword [esp + 0x16c]
mov edx, dword [ecx + 0x6c]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
cmp edi, dword [esp + 0x1c]
jae 0x47c95e
movzx edx, byte [edi]
inc edi
test esi, esi
je 0x479403
cmp edx, 0xc0
jb 0x479403
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x479403
lea ebx, [ebx]
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x4793f0
mov ecx, edx
shr ecx, 7
movzx eax, byte [ecx + 0x4a8f80]
shl eax, 7
mov ecx, edx
and ecx, 0x7f
add eax, ecx
movzx eax, word [eax*2 + 0x4ab180]
movzx ecx, byte [eax*8 + 0x4a7f51]
mov eax, dword [ecx*4 + 0x4b5e88]
cmp eax, 1
je 0x479443
cmp eax, 3
je 0x479443
cmp edx, 0x5f
je 0x479443
xor eax, eax
jmp 0x479448
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x47c8ef
inc ebx
cmp ebx, dword [esp + 0x18]
jle 0x4793b2
jmp 0x478eb4
cmp eax, 0x16
jne 0x4795b2
mov dword [esp + 0x20], edx
cmp ebp, edx
mov edx, dword [esp + 0x16c]
jl 0x478ebf
mov ebp, dword [edx + 0x6c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x1c], ebp
lea esp, [esp]
cmp edi, ebp
jae 0x47ce1e
movzx edx, byte [edi]
inc edi
test ebx, ebx
je 0x4794d9
cmp edx, 0xc0
jb 0x4794d9
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x4794d9
movzx esi, byte [edi]
sub ecx, 6
and esi, 0x3f
shl esi, cl
dec eax
inc edi
or edx, esi
test eax, eax
jg 0x4794c6
mov ecx, edx
shr ecx, 7
movzx eax, byte [ecx + 0x4a8f80]
and edx, 0x7f
shl eax, 7
add eax, edx
movzx ecx, word [eax*2 + 0x4ab180]
movzx edx, byte [ecx*8 + 0x4a7f51]
cmp dword [edx*4 + 0x4b5e88], 2
je case.0x475682.115
cmp edi, ebp
jae 0x47959a
movzx edx, byte [edi]
mov esi, 1
test ebx, ebx
je 0x479562
cmp edx, 0xc0
jb 0x479562
mov eax, edx
and eax, 0x3f
movzx esi, byte [eax + 0x4b5e48]
and edx, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov eax, 1
shl edx, cl
cmp esi, eax
jl 0x479561
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or edx, ebp
cmp eax, esi
jle 0x47954a
mov ebp, dword [esp + 0x1c]
inc esi
mov ecx, edx
shr ecx, 7
movzx eax, byte [ecx + 0x4a8f80]
and edx, 0x7f
shl eax, 7
add eax, edx
movzx ecx, word [eax*2 + 0x4ab180]
movzx edx, byte [ecx*8 + 0x4a7f51]
cmp dword [edx*4 + 0x4b5e88], 2
jne 0x47959a
add edi, esi
cmp edi, ebp
jb 0x479513
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x18]
jle 0x479490
jmp 0x478eb4
add eax, 0xfffffffa
cmp dword [esp + 0x24], 0
je 0x479c0e
cmp eax, 0xf
ja case.default.0x4770e4
jmp dword [eax*4 + 0x47f3a8]
mov ebp, edx
cmp dword [esp + 0x18], edx
jl 0x478eb4
mov esi, dword [esp + 0x16c]
cmp edi, dword [esi + 0x6c]
jae 0x47d9c6
mov eax, dword [esi + 0x18]
test eax, eax
je 0x479612
mov edx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x24]
lea ecx, [esi + 0x1c]
push ecx
push edx
push eax
call fcn.00480620
add esp, 0xc
test eax, eax
jne 0x4764b5
jmp 0x479638
mov eax, dword [esi + 0x6c]
sub eax, dword [esi + 0x1c]
cmp edi, eax
ja 0x479638
mov cl, byte [edi]
cmp cl, byte [esi + 0x2c]
jne 0x479638
cmp dword [esi + 0x1c], edx
je 0x4764b5
mov dl, byte [edi + 1]
cmp dl, byte [esi + 0x2d]
je 0x4764b5
mov eax, dword [esi + 0x6c]
mov edx, 1
add edi, edx
cmp edi, eax
jae 0x479656
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x479656
add edi, edx
cmp edi, eax
jb 0x479646
add ebp, edx
cmp ebp, dword [esp + 0x18]
jle 0x4795e3
mov edx, esi
jmp 0x478ebb
mov ecx, edx
cmp ebp, edx
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov eax, dword [esi + 0x6c]
cmp edi, eax
jae 0x47d9c6
add edi, edx
cmp edi, eax
jae 0x479697
mov bl, byte [edi]
and bl, 0xc0
cmp bl, 0x80
jne 0x479697
add edi, edx
cmp edi, eax
jb 0x479687
add ecx, edx
cmp ecx, ebp
jle 0x479679
mov edx, esi
jmp 0x478ebf
mov eax, dword [esp + 0x16c]
mov edx, dword [eax + 0x6c]
sub edx, ebp
cmp edi, edx
ja 0x47c6d5
add edi, ebp
mov edx, eax
jmp 0x478ebf
mov esi, edx
cmp ebp, edx
jl 0x478eb4
mov eax, dword [esp + 0x16c]
mov ebx, dword [eax + 0x6c]
cmp edi, ebx
jae 0x47da06
movzx edx, byte [edi]
inc edi
cmp edx, 0xc0
jb 0x47971a
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x4b5e48]
dec ebx
add byte [ebx], ah
adc al, 0x85
sub al, 0x5e
dec ebx
add byte [ebp - 0x36fcbff4], cl
shl edx, cl
test eax, eax
jle 0x47971a
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x479707
cmp edx, 0xd
ja 0x479737
je 0x47972b
cmp edx, 0xa
je 0x47975f
add edx, 0xfffffff5
jmp 0x479745
cmp edi, ebx
jae 0x47975f
cmp byte [edi], 0xa
jne 0x47975f
inc edi
jmp 0x47975f
cmp edx, 0x85
je 0x47974e
add edx, 0xffffdfd8
cmp edx, 1
ja 0x47c8ef
mov eax, dword [esp + 0x16c]
cmp dword [eax + 0x60], 0
jne 0x47c6d5
inc esi
cmp esi, dword [esp + 0x18]
jle 0x4796d5
jmp 0x478eb4
mov esi, edx
cmp ebp, edx
jl 0x478eb4
mov edx, dword [esp + 0x16c]
mov ebx, dword [edx + 0x6c]
cmp edi, ebx
jae 0x47da06
movzx eax, byte [edi]
inc edi
cmp eax, 0xc0
jb 0x4797cb
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x4b5e48]
and eax, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
shl eax, cl
test edx, edx
jle 0x4797c7
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec edx
inc edi
or eax, ebp
test edx, edx
jg 0x4797b4
mov ebp, dword [esp + 0x18]
cmp eax, 0x180e
ja 0x4797fa
je 0x47c8ef
cmp eax, 0xa0
ja 0x4797f3
je 0x47c8ef
cmp eax, 9
je 0x47c8ef
cmp eax, 0x20
jmp 0x479825
cmp eax, 0x1680
jmp 0x479825
cmp eax, 0x205f
ja 0x479820
je 0x47c8ef
cmp eax, 0x2000
jb 0x47982b
cmp eax, 0x200a
jbe 0x47c8ef
cmp eax, 0x202f
jmp 0x479825
cmp eax, 0x3000
je 0x47c8ef
inc esi
cmp esi, ebp
jle 0x479783
mov edx, dword [esp + 0x16c]
jmp 0x478ebf
mov esi, edx
cmp ebp, edx
jl 0x478eb4
mov edx, dword [esp + 0x16c]
mov ebx, dword [edx + 0x6c]
cmp edi, ebx
jae 0x47ce1e
movzx eax, byte [edi]
inc edi
cmp eax, 0xc0
jb 0x47989c
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x4b5e48]
and eax, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
shl eax, cl
test edx, edx
jle 0x479898
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec edx
inc edi
or eax, ebp
test edx, edx
jg 0x479885
mov ebp, dword [esp + 0x18]
cmp eax, 0x180e
ja 0x4798bf
je 0x4798ec
cmp eax, 0xa0
ja 0x4798b8
je 0x4798ec
cmp eax, 9
je 0x4798ec
cmp eax, 0x20
jmp 0x4798e6
cmp eax, 0x1680
jmp 0x4798e6
cmp eax, 0x205f
ja 0x4798e1
je 0x4798ec
cmp eax, 0x2000
jb case.0x475682.115
cmp eax, 0x200a
jbe 0x4798ec
cmp eax, 0x202f
jmp 0x4798e6
cmp eax, 0x3000
jne case.0x475682.115
inc esi
cmp esi, ebp
jle 0x479854
mov edx, dword [esp + 0x16c]
jmp 0x478ebf
mov esi, edx
cmp ebp, edx
jl 0x478eb4
mov edx, dword [esp + 0x16c]
mov ebx, dword [edx + 0x6c]
cmp edi, ebx
jae 0x47da06
movzx edx, byte [edi]
inc edi
cmp edx, 0xc0
jb 0x47995a
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x47995a
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x479947
cmp edx, 0x85
ja 0x479972
je 0x47c8ef
cmp edx, 0xa
jb 0x479986
cmp edx, 0xd
jmp 0x479980
cmp edx, 0x2028
jb 0x479986
cmp edx, 0x2029
jbe 0x47c8ef
inc esi
cmp esi, dword [esp + 0x18]
jle 0x479915
jmp 0x478eb4
mov esi, edx
cmp ebp, edx
jl 0x478eb4
mov ecx, dword [esp + 0x16c]
mov ebx, dword [ecx + 0x6c]
cmp edi, ebx
jae 0x47ce1e
movzx edx, byte [edi]
inc edi
cmp edx, 0xc0
jb 0x4799f7
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x4799f3
jmp 0x4799e0
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x4799e0
mov ebp, dword [esp + 0x18]
cmp edx, 0x85
ja 0x479a09
je 0x479a18
add edx, 0xfffffff6
cmp edx, 3
jmp 0x479a12
add edx, 0xffffdfd8
cmp edx, 1
ja case.0x475682.115
inc esi
cmp esi, ebp
jle 0x4799a6
mov edx, dword [esp + 0x16c]
jmp 0x478ebf
mov esi, edx
cmp ebp, edx
jl 0x478eb4
mov ebx, dword [esp + 0x16c]
lea ebx, [ebx]
cmp edi, dword [ebx + 0x6c]
jae 0x47d2a3
movzx edx, byte [edi]
inc edi
cmp edx, 0xc0
jb 0x479a86
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x479a86
movzx ebp, byte [edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
dec eax
inc edi
or edx, ebp
test eax, eax
jg 0x479a73
cmp edx, 0x80
jae 0x479a9b
mov eax, dword [ebx + 0x34]
test byte [edx + eax], 4
jne 0x47c52e
inc esi
cmp esi, dword [esp + 0x18]
jle 0x479a40
mov edx, ebx
jmp 0x478ebb
mov ecx, edx
cmp ebp, edx
jl 0x478eb4
mov edx, dword [esp + 0x16c]
mov esi, dword [edx + 0x6c]
lea ecx, [ecx]
cmp edi, esi
jae 0x47da3a
mov al, byte [edi]
cmp al, 0x80
jae 0x47d289
mov ebx, dword [edx + 0x34]
movzx eax, al
mov al, byte [eax + ebx]
inc edi
and al, 4
je 0x47d289
inc ecx
cmp ecx, ebp
jle 0x479ac0
jmp 0x478ebf
cmp ebp, 1
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov ecx, dword [esi + 0x6c]
cmp edi, ecx
jae 0x47da43
mov al, byte [edi]
cmp al, 0x80
jae 0x479b20
mov ebx, dword [esi + 0x34]
movzx eax, al
test byte [eax + ebx], 1
jne case.0x479cf2.14
nop
inc edi
cmp edi, ecx
jae 0x479b2d
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
je 0x479b20
inc edx
cmp edx, ebp
jle 0x479b01
mov edx, esi
jmp 0x478ebf
mov ecx, edx
cmp ebp, edx
jl 0x478eb4
mov edx, dword [esp + 0x16c]
mov esi, dword [edx + 0x6c]
lea ecx, [ecx]
cmp edi, esi
jae 0x47da88
mov al, byte [edi]
cmp al, 0x80
jae 0x47d73a
mov ebx, dword [edx + 0x34]
movzx eax, al
mov al, byte [eax + ebx]
inc edi
and al, 1
je 0x47d73a
inc ecx
cmp ecx, ebp
jle 0x479b50
jmp 0x478ebf
cmp ebp, 1
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov ecx, dword [esi + 0x6c]
cmp edi, ecx
jae 0x47dacd
mov al, byte [edi]
cmp al, 0x80
jae 0x479bb0
mov ebx, dword [esi + 0x34]
movzx eax, al
test byte [eax + ebx], 0x10
jne 0x477132
nop
inc edi
cmp edi, ecx
jae 0x479bbd
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
je 0x479bb0
inc edx
cmp edx, ebp
jle 0x479b91
mov edx, esi
jmp 0x478ebf
mov ecx, edx
cmp ebp, edx
jl 0x478eb4
mov edx, dword [esp + 0x16c]
mov esi, dword [edx + 0x6c]
lea ecx, [ecx]
cmp edi, esi
jae 0x47da3a
mov al, byte [edi]
cmp al, 0x80
jae 0x47d289
mov ebx, dword [edx + 0x34]
movzx eax, al
mov al, byte [eax + ebx]
inc edi
and al, 0x10
je 0x47d289
inc ecx
cmp ecx, ebp
jle 0x479be0
jmp 0x478ebf
cmp eax, 0xf
ja case.default.0x4770e4
jmp dword [eax*4 + 0x47f3e8]
cmp ebp, edx
jl 0x478eb4
mov ebp, dword [esp + 0x16c]
mov esi, edx
cmp edi, dword [ebp + 0x6c]
jae 0x47db12
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x479c70
mov edx, dword [ebp + 0x6c]
lea ecx, [ebp + 0x1c]
push ecx
push edx
push eax
xor ebx, ebx
call fcn.00480620
add esp, 0xc
test eax, eax
je 0x479c8e
mov eax, dword [esp + 0x164]
mov dword [ebp + 0x9c], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
mov eax, dword [ebp + 0x6c]
sub eax, dword [ebp + 0x1c]
cmp edi, eax
ja 0x479c8e
mov cl, byte [edi]
cmp cl, byte [ebp + 0x2c]
jne 0x479c8e
cmp dword [ebp + 0x1c], edx
je 0x479c56
mov dl, byte [edi + 1]
cmp dl, byte [ebp + 0x2d]
je 0x479c56
mov edx, 1
add esi, edx
add edi, edx
cmp esi, dword [esp + 0x18]
jle 0x479c2f
jmp 0x478eb4
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + 0x6c]
sub ecx, ebp
cmp edi, ecx
ja 0x47db52
add edi, ebp
mov edx, eax
jmp 0x478ebf
mov ecx, edx
cmp ebp, edx
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov edx, dword [esi + 0x6c]
cmp edi, edx
jae 0x47db74
movzx eax, byte [edi]
sub eax, 0xa
inc edi
cmp eax, 0x7b
ja case.0x479cf2.14
movzx eax, byte [eax + 0x47f438]
jmp dword [eax*4 + 0x47f428]
cmp edi, edx
jae case.0x479cf2.10
cmp byte [edi], 0xa
jne case.0x479cf2.10
inc edi
jmp case.0x479cf2.10
cmp dword [esi + 0x60], 0
jne 0x4764b5
inc ecx
cmp ecx, ebp
jle 0x479cd3
mov edx, esi
jmp 0x478ebf
mov ecx, edx
cmp ebp, edx
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov edx, dword [esi + 0x6c]
nop
cmp edi, edx
jae 0x47da43
movzx eax, byte [edi]
inc edi
cmp eax, 9
je case.0x479cf2.14
cmp eax, 0x20
je case.0x479cf2.14
cmp eax, 0xa0
je case.0x479cf2.14
inc ecx
cmp ecx, ebp
jle 0x479d30
mov edx, esi
jmp 0x478ebf
mov ecx, edx
cmp ebp, edx
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov edx, dword [esi + 0x6c]
lea esp, [esp]
cmp edi, edx
jae 0x47da43
movzx eax, byte [edi]
inc edi
cmp eax, 9
je 0x479da1
cmp eax, 0x20
je 0x479da1
cmp eax, 0xa0
jne case.0x479cf2.14
inc ecx
cmp ecx, ebp
jle 0x479d80
mov edx, esi
jmp 0x478ebf
mov ecx, edx
cmp ebp, edx
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov edx, dword [esi + 0x6c]
cmp edi, edx
jae 0x47da43
movzx eax, byte [edi]
inc edi
cmp eax, 0xa
jl 0x479de6
cmp eax, 0xd
jle case.0x479cf2.14
cmp eax, 0x85
je case.0x479cf2.14
inc ecx
cmp ecx, ebp
jle 0x479dc1
mov edx, esi
jmp 0x478ebf
mov ecx, edx
cmp ebp, edx
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov edx, dword [esi + 0x6c]
cmp edi, edx
jae 0x47da43
movzx eax, byte [edi]
inc edi
cmp eax, 0xa
jl case.0x479cf2.14
cmp eax, 0xd
jle 0x479e2b
cmp eax, 0x85
jne case.0x479cf2.14
inc ecx
cmp ecx, ebp
jle 0x479e06
mov edx, esi
jmp 0x478ebf
mov eax, edx
cmp ebp, edx
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov ecx, dword [esi + 0x6c]
cmp edi, ecx
jae 0x47da43
movzx edx, byte [edi]
mov ebx, dword [esi + 0x34]
mov dl, byte [edx + ebx]
inc edi
and dl, 4
jne case.0x479cf2.14
inc eax
cmp eax, ebp
jle 0x479e4b
mov edx, esi
jmp 0x478ebf
mov eax, edx
cmp ebp, edx
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov ecx, dword [esi + 0x6c]
cmp edi, ecx
jae 0x47da43
movzx edx, byte [edi]
mov ebx, dword [esi + 0x34]
mov dl, byte [edx + ebx]
inc edi
and dl, 4
je case.0x479cf2.14
inc eax
cmp eax, ebp
jle 0x479e86
mov edx, esi
jmp 0x478ebf
mov eax, edx
cmp ebp, edx
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov ecx, dword [esi + 0x6c]
cmp edi, ecx
jae 0x47da43
movzx edx, byte [edi]
mov ebx, dword [esi + 0x34]
mov dl, byte [edx + ebx]
inc edi
and dl, 1
jne case.0x479cf2.14
inc eax
cmp eax, ebp
jle 0x479ec1
mov edx, esi
jmp 0x478ebf
mov eax, edx
cmp ebp, edx
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov ecx, dword [esi + 0x6c]
cmp edi, ecx
jae 0x47da43
movzx edx, byte [edi]
mov ebx, dword [esi + 0x34]
mov dl, byte [edx + ebx]
inc edi
and dl, 1
je case.0x479cf2.14
inc eax
cmp eax, ebp
jle 0x479efc
mov edx, esi
jmp 0x478ebf
mov eax, edx
cmp ebp, edx
jl 0x478eb4
mov esi, dword [esp + 0x16c]
mov ecx, dword [esi + 0x6c]
cmp edi, ecx
jae 0x47da43
movzx edx, byte [edi]
mov ebx, dword [esi + 0x34]
mov dl, byte [edx + ebx]
inc edi
and dl, 0x10
jne case.0x479cf2.14
inc eax
cmp eax, ebp
jle 0x479f37
mov edx, esi
jmp 0x478ebf
mov eax, edx
cmp ebp, edx
mov edx, dword [esp + 0x16c]
jl 0x478ebf
mov ecx, dword [edx + 0x6c]
cmp edi, ecx
jae 0x47da88
movzx esi, byte [edi]
mov ebx, dword [edx + 0x34]
mov bl, byte [esi + ebx]
inc edi
and bl, 0x10
je 0x47d73a
inc eax
cmp eax, ebp
jle 0x479f72
jmp 0x478ebf
mov ebx, dword [esp + 0x14]
mov edx, ebp
cmp ebp, ebx
jge 0x47a6e6
mov eax, dword [esp + 0x16c]
mov esi, dword [eax + 0x6c]
mov ebp, dword [esp + 0x30]
jmp 0x479fc7
mov eax, dword [esp + 0x16c]
mov ecx, 1
cmp edi, esi
jae 0x47a000
cmp dword [esp + 0x24], 0
movzx eax, byte [edi]
je 0x479fec
cmp eax, 0xc0
jb 0x479fec
and eax, 0x3f
movzx ecx, byte [eax + 0x4b5e48]
inc ecx
test ebp, ebp
jne 0x47a6e6
inc edx
add edi, ecx
cmp edx, ebx
jl 0x479fc0
jmp 0x47a6e6
cmp dword [eax + 0x7c], 0
je 0x47a6e6
cmp edi, dword [esp + 0x160]
jbe 0x47a6e6
mov dword [eax + 0x5c], ecx
cmp dword [eax + 0x7c], ecx
jg 0x47d9a9
jmp 0x47a6e6
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47a6e6
mov eax, dword [edx + 0x6c]
mov dword [esp + 0x1c], eax
mov esi, 1
cmp edi, dword [esp + 0x1c]
jae 0x47a0f5
cmp dword [esp + 0x24], 0
movzx eax, byte [edi]
je 0x47a09d
cmp eax, 0xc0
jb 0x47a09d
mov ecx, eax
and ecx, 0x3f
movzx esi, byte [ecx + 0x4b5e48]
and eax, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov edx, 1
shl eax, cl
cmp esi, edx
jl 0x47a095
movzx ebp, byte [edx + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc edx
or eax, ebp
cmp edx, esi
jle 0x47a082
mov edx, dword [esp + 0x16c]
inc esi
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4a8f80]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4ab180]
movzx eax, byte [eax*8 + 0x4a7f51]
cmp eax, 9
je 0x47a0d4
cmp eax, 5
je 0x47a0d4
cmp eax, 8
je 0x47a0d4
xor eax, eax
jmp 0x47a0d9
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x47a6e6
inc ebx
add edi, esi
cmp ebx, dword [esp + 0x14]
jl 0x47a03b
jmp 0x47a6e6
cmp dword [edx + 0x7c], 0
je 0x47a6e6
cmp edi, dword [esp + 0x160]
jbe 0x47a6e6
mov eax, esi
mov dword [edx + 0x5c], eax
cmp dword [edx + 0x7c], eax
jg 0x47d708
jmp 0x47a6e6
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47a6e6
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x1c], ecx
mov esi, 1
cmp edi, dword [esp + 0x1c]
jae 0x47a6c9
cmp dword [esp + 0x24], 0
movzx eax, byte [edi]
je 0x47a194
cmp eax, 0xc0
jb 0x47a194
mov edx, eax
and edx, 0x3f
movzx esi, byte [edx + 0x4b5e48]
and eax, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov edx, 1
shl eax, cl
cmp esi, edx
jl 0x47a18c
movzx ebp, byte [edx + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc edx
or eax, ebp
cmp edx, esi
jle 0x47a179
mov edx, dword [esp + 0x16c]
inc esi
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4a8f80]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4ab180]
movzx ecx, byte [eax*8 + 0x4a7f51]
mov ecx, dword [ecx*4 + 0x4b5e88]
xor eax, eax
cmp ecx, dword [esp + 0x40]
sete al
cmp eax, dword [esp + 0x30]
je 0x47a6e6
inc ebx
add edi, esi
cmp ebx, dword [esp + 0x14]
jl 0x47a132
jmp 0x47a6e6
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47a6e6
mov eax, dword [edx + 0x6c]
mov dword [esp + 0x1c], eax
mov esi, 1
cmp edi, dword [esp + 0x1c]
jae 0x47a0f5
cmp dword [esp + 0x24], 0
movzx eax, byte [edi]
je 0x47a259
cmp eax, 0xc0
jb 0x47a259
mov ecx, eax
and ecx, 0x3f
movzx esi, byte [ecx + 0x4b5e48]
and eax, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov edx, 1
shl eax, cl
cmp esi, edx
jl 0x47a251
movzx ebp, byte [edx + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc edx
or eax, ebp
cmp edx, esi
jle 0x47a23e
mov edx, dword [esp + 0x16c]
inc esi
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4a8f80]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4ab180]
movzx ecx, byte [eax*8 + 0x4a7f51]
xor eax, eax
cmp ecx, dword [esp + 0x40]
sete al
cmp eax, dword [esp + 0x30]
je 0x47a6e6
inc ebx
add edi, esi
cmp ebx, dword [esp + 0x14]
jl 0x47a1f7
jmp 0x47a6e6
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47a6e6
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x1c], ecx
mov esi, 1
cmp edi, dword [esp + 0x1c]
jae 0x47a6c9
cmp dword [esp + 0x24], 0
movzx eax, byte [edi]
je 0x47a317
cmp eax, 0xc0
jb 0x47a317
mov edx, eax
and edx, 0x3f
movzx esi, byte [edx + 0x4b5e48]
and eax, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov edx, 1
shl eax, cl
cmp esi, edx
jl 0x47a30f
movzx ebp, byte [edx + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc edx
or eax, ebp
cmp edx, esi
jle 0x47a2fc
mov edx, dword [esp + 0x16c]
inc esi
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4a8f80]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4ab180]
movzx ecx, byte [eax*8 + 0x4a7f50]
xor eax, eax
cmp ecx, dword [esp + 0x40]
sete al
cmp eax, dword [esp + 0x30]
je 0x47a6e6
inc ebx
add edi, esi
cmp ebx, dword [esp + 0x14]
jl 0x47a2b5
jmp 0x47a6e6
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47a6e6
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x1c], ecx
mov esi, 1
cmp edi, dword [esp + 0x1c]
jae 0x47a0f5
cmp dword [esp + 0x24], 0
movzx eax, byte [edi]
je 0x47a3d5
cmp eax, 0xc0
jb 0x47a3d5
mov edx, eax
and edx, 0x3f
movzx esi, byte [edx + 0x4b5e48]
and eax, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov edx, 1
shl eax, cl
cmp esi, edx
jl 0x47a3cd
movzx ebp, byte [edx + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc edx
or eax, ebp
cmp edx, esi
jle 0x47a3ba
mov edx, dword [esp + 0x16c]
inc esi
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4a8f80]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4ab180]
movzx ecx, byte [eax*8 + 0x4a7f51]
mov eax, dword [ecx*4 + 0x4b5e88]
cmp eax, 1
je 0x47a40e
cmp eax, 3
je 0x47a40e
xor eax, eax
jmp 0x47a413
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x47a6e6
inc ebx
add edi, esi
cmp ebx, dword [esp + 0x14]
jl 0x47a373
jmp 0x47a6e6
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47a6e6
mov eax, dword [edx + 0x6c]
mov dword [esp + 0x1c], eax
jmp 0x47a457
mov edx, dword [esp + 0x16c]
mov esi, 1
cmp edi, dword [esp + 0x1c]
jae 0x47a6c9
cmp dword [esp + 0x24], 0
movzx edx, byte [edi]
je 0x47a4af
cmp edx, 0xc0
jb 0x47a4af
mov ecx, edx
and ecx, 0x3f
movzx esi, byte [ecx + 0x4b5e48]
and edx, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov eax, 1
shl edx, cl
cmp esi, eax
jl 0x47a4ae
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or edx, ebp
cmp eax, esi
jle 0x47a49b
inc esi
mov ecx, edx
shr ecx, 7
movzx eax, byte [ecx + 0x4a8f80]
shl eax, 7
mov ecx, edx
and ecx, 0x7f
add eax, ecx
movzx eax, word [eax*2 + 0x4ab180]
movzx ecx, byte [eax*8 + 0x4a7f51]
cmp dword [ecx*4 + 0x4b5e88], 6
je 0x47a4f7
cmp edx, 9
je 0x47a4f7
cmp edx, 0xa
je 0x47a4f7
cmp edx, 0xc
je 0x47a4f7
cmp edx, 0xd
je 0x47a4f7
xor eax, eax
jmp 0x47a4fc
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x47a6e6
inc ebx
add edi, esi
cmp ebx, dword [esp + 0x14]
jl 0x47a450
jmp 0x47a6e6
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47a6e6
mov eax, dword [edx + 0x6c]
mov dword [esp + 0x1c], eax
mov esi, 1
cmp edi, dword [esp + 0x1c]
jae 0x47a0f5
cmp dword [esp + 0x24], 0
movzx eax, byte [edi]
je 0x47a589
cmp eax, 0xc0
jb 0x47a589
mov ecx, eax
and ecx, 0x3f
movzx esi, byte [ecx + 0x4b5e48]
and eax, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov edx, 1
shl eax, cl
cmp esi, edx
jl 0x47a581
movzx ebp, byte [edx + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc edx
or eax, ebp
cmp edx, esi
jle 0x47a56e
mov edx, dword [esp + 0x16c]
inc esi
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4a8f80]
shl ecx, 7
mov ebp, eax
and ebp, 0x7f
add ecx, ebp
movzx ecx, word [ecx*2 + 0x4ab180]
movzx ecx, byte [ecx*8 + 0x4a7f51]
cmp dword [ecx*4 + 0x4b5e88], 6
je 0x47a5d6
cmp eax, 9
je 0x47a5d6
cmp eax, 0xa
je 0x47a5d6
cmp eax, 0xb
je 0x47a5d6
cmp eax, 0xc
je 0x47a5d6
cmp eax, 0xd
je 0x47a5d6
xor eax, eax
jmp 0x47a5db
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x47a6e6
inc ebx
add edi, esi
cmp ebx, dword [esp + 0x14]
jl 0x47a52b
jmp 0x47a6e6
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47a6e6
mov eax, dword [edx + 0x6c]
mov dword [esp + 0x1c], eax
jmp 0x47a617
mov edx, dword [esp + 0x16c]
mov esi, 1
cmp edi, dword [esp + 0x1c]
jae 0x47a6c9
cmp dword [esp + 0x24], 0
movzx edx, byte [edi]
je 0x47a66f
cmp edx, 0xc0
jb 0x47a66f
mov ecx, edx
and ecx, 0x3f
movzx esi, byte [ecx + 0x4b5e48]
and edx, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov eax, 1
add dword [eax], eax
add byte [eax], al
shl edx, cl
cmp esi, eax
jl 0x47a66e
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or edx, ebp
cmp eax, esi
jle 0x47a65b
inc esi
mov ecx, edx
shr ecx, 7
movzx eax, byte [ecx + 0x4a8f80]
shl eax, 7
mov ecx, edx
and ecx, 0x7f
add eax, ecx
movzx eax, word [eax*2 + 0x4ab180]
movzx ecx, byte [eax*8 + 0x4a7f51]
mov eax, dword [ecx*4 + 0x4b5e88]
cmp eax, 1
je 0x47a6af
cmp eax, 3
je 0x47a6af
cmp edx, 0x5f
je 0x47a6af
xor eax, eax
jmp 0x47a6b4
mov eax, 1
cmp eax, dword [esp + 0x30]
je 0x47a6e6
inc ebx
add edi, esi
cmp ebx, dword [esp + 0x14]
jl 0x47a610
jmp 0x47a6e6
cmp dword [edx + 0x7c], 0
je 0x47a6e6
cmp edi, dword [esp + 0x160]
jbe 0x47a6e6
mov eax, esi
mov dword [edx + 0x5c], eax
cmp dword [edx + 0x7c], eax
jg 0x47dab0
cmp dword [esp + 0x2c], 0
jne 0x475656
mov esi, dword [esp + 0x17c]
mov edx, dword [esp + 0x174]
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x168]
mov ebp, dword [esp + 0x15c]
inc esi
push esi
push 0
push edx
mov edx, dword [esp + 0x170]
push eax
mov eax, dword [esp + 0x170]
push ecx
push ebx
push edx
push eax
push ebp
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
jne 0x47f150
mov ecx, edi
dec edi
cmp ecx, dword [esp + 0x28]
je case.0x475682.115
cmp dword [esp + 0x24], 0
je 0x47a76d
mov dl, byte [edi]
and dl, 0xc0
cmp dl, 0x80
jne 0x47a76d
mov al, byte [edi - 1]
dec edi
and al, 0xc0
cmp al, 0x80
je 0x47a763
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x16c]
push esi
push 0
push ecx
mov ecx, dword [esp + 0x170]
push edx
mov edx, dword [esp + 0x170]
push eax
push ebx
push ecx
push edx
push ebp
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
je 0x47a745
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
mov eax, dword [esp + 0x34]
cmp eax, 0x16
jne 0x47a9c3
mov dword [esp + 0x20], ebp
cmp ebp, dword [esp + 0x14]
jge 0x47a93d
mov edx, dword [esp + 0x16c]
mov eax, dword [edx + 0x6c]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x1c]
cmp edi, esi
jae 0x47a916
movzx edx, byte [edi]
inc edi
test ebp, ebp
je 0x47a833
cmp edx, 0xc0
jb 0x47a833
mov ecx, edx
and ecx, 0x3f
movzx eax, byte [ecx + 0x4b5e48]
and edx, dword [eax*4 + 0x4b5e2c]
lea ecx, [eax + eax*2]
add ecx, ecx
shl edx, cl
test eax, eax
jle 0x47a833
lea ecx, [ecx]
movzx ebx, byte [edi]
sub ecx, 6
and ebx, 0x3f
shl ebx, cl
dec eax
inc edi
or edx, ebx
test eax, eax
jg 0x47a820
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4a8f80]
and edx, 0x7f
shl ecx, 7
add ecx, edx
movzx edx, word [ecx*2 + 0x4ab180]
movzx eax, byte [edx*8 + 0x4a7f51]
mov ebx, 2
cmp dword [eax*4 + 0x4b5e88], ebx
je 0x47a93d
cmp edi, esi
jae 0x47a901
movzx edx, byte [edi]
mov esi, 1
test ebp, ebp
je 0x47a8c8
cmp edx, 0xc0
jb 0x47a8c8
mov ecx, edx
and ecx, 0x3f
movzx esi, byte [ecx + 0x4b5e48]
and edx, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov eax, 1
shl edx, cl
cmp esi, eax
jl 0x47a8c7
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or edx, ebp
cmp eax, esi
jle 0x47a8b0
mov ebp, dword [esp + 0x24]
inc esi
mov ecx, edx
shr ecx, 7
movzx eax, byte [ecx + 0x4a8f80]
and edx, 0x7f
shl eax, 7
add eax, edx
movzx ecx, word [eax*2 + 0x4ab180]
movzx edx, byte [ecx*8 + 0x4a7f51]
cmp dword [edx*4 + 0x4b5e88], ebx
jne 0x47a901
add edi, esi
cmp edi, dword [esp + 0x1c]
jb 0x47a871
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x14]
jl 0x47a7df
jmp 0x47a93d
mov ecx, dword [esp + 0x16c]
cmp dword [ecx + 0x7c], 0
je 0x47a93d
cmp edi, dword [esp + 0x160]
jbe 0x47a93d
mov eax, 1
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jg 0x47b548
cmp dword [esp + 0x2c], 0
jne 0x475656
mov ebx, dword [esp + 0x17c]
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x16c]
inc ebx
push ebx
push 0
push ecx
mov ecx, dword [esp + 0x174]
push edx
mov edx, dword [esp + 0x174]
push eax
mov eax, dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
jne 0x47f150
mov edx, edi
dec edi
cmp edx, dword [esp + 0x28]
je case.0x475682.115
lea esp, [esp]
cmp dword [esp + 0x24], 0
jne 0x47f045
movzx eax, byte [edi]
jmp 0x47f09c
add eax, 0xfffffffa
cmp dword [esp + 0x24], 0
je 0x47b3a8
cmp eax, 0xf
ja case.default.0x4770e4
jmp dword [eax*4 + 0x47f4b4]
cmp dword [esp + 0x14], 0x7fffffff
mov esi, ebp
jge 0x47aabc
cmp ebp, dword [esp + 0x14]
jge 0x47b2dc
jmp 0x47aa00
cmp edi, dword [edx + 0x6c]
jae 0x47aa8f
mov eax, dword [edx + 0x18]
test eax, eax
je 0x47aa3d
mov ecx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x24]
lea edx, [ecx + 0x1c]
mov ecx, dword [ecx + 0x6c]
push edx
push ecx
push eax
call fcn.00480620
add esp, 0xc
test eax, eax
jne 0x47b2dc
mov edx, dword [esp + 0x16c]
jmp 0x47aa64
mov eax, dword [edx + 0x6c]
sub eax, dword [edx + 0x1c]
cmp edi, eax
ja 0x47aa64
mov cl, byte [edi]
cmp cl, byte [edx + 0x2c]
jne 0x47aa64
cmp dword [edx + 0x1c], 1
je 0x47b2dc
mov al, byte [edi + 1]
cmp al, byte [edx + 0x2d]
je 0x47b2dc
mov eax, dword [edx + 0x6c]
inc edi
cmp edi, eax
jae 0x47aa7f
lea esp, [esp]
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x47aa7f
inc edi
cmp edi, eax
jb 0x47aa70
inc esi
cmp esi, dword [esp + 0x14]
jl 0x47aa00
jmp 0x47b2dc
cmp dword [edx + 0x7c], 0
je 0x47b2dc
cmp edi, dword [esp + 0x160]
jbe 0x47b2dc
mov eax, 1
mov dword [edx + 0x5c], eax
cmp dword [edx + 0x7c], eax
jg 0x47d708
jmp 0x47b2dc
cmp ebp, dword [esp + 0x14]
jge 0x47b2dc
cmp edi, dword [edx + 0x6c]
jae 0x47abb7
mov eax, dword [edx + 0x18]
test eax, eax
je 0x47ab03
mov ecx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x24]
lea edx, [ecx + 0x1c]
mov ecx, dword [ecx + 0x6c]
push edx
push ecx
push eax
call fcn.00480620
add esp, 0xc
test eax, eax
jne 0x47b2dc
mov edx, dword [esp + 0x16c]
jmp 0x47ab2a
mov eax, dword [edx + 0x6c]
sub eax, dword [edx + 0x1c]
cmp edi, eax
ja 0x47ab2a
mov cl, byte [edi]
cmp cl, byte [edx + 0x2c]
jne 0x47ab2a
cmp dword [edx + 0x1c], 1
je 0x47b2dc
mov al, byte [edi + 1]
cmp al, byte [edx + 0x2d]
je 0x47b2dc
mov eax, dword [edx + 0x6c]
inc edi
cmp edi, eax
jae 0x47ab41
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x47ab41
inc edi
cmp edi, eax
jb 0x47ab32
inc esi
cmp esi, dword [esp + 0x14]
jl 0x47aac6
jmp 0x47b2dc
mov esi, dword [esp + 0x14]
cmp esi, 0x7fffffff
jge 0x47ab9d
mov ecx, ebp
cmp ebp, esi
jge 0x47b2dc
mov eax, dword [edx + 0x6c]
mov edi, edi
cmp edi, eax
jae 0x47aa8f
inc edi
cmp edi, eax
jae 0x47ab93
lea ecx, [ecx]
mov bl, byte [edi]
and bl, 0xc0
cmp bl, 0x80
jne 0x47ab8f
inc edi
cmp edi, eax
jb 0x47ab80
mov esi, dword [esp + 0x14]
inc ecx
cmp ecx, esi
jl 0x47ab70
jmp 0x47b2dc
mov edi, dword [edx + 0x6c]
jmp 0x47b2dc
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 0x6c]
sub eax, ebp
sub ecx, edi
cmp dword [edx + 0x7c], 0
je 0x47b2dc
cmp edi, dword [esp + 0x160]
jbe 0x47b2dc
mov dword [esp + 0x20], ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b2dc
mov ebx, dword [edx + 0x6c]
mov ecx, dword [esp + 0x16c]
mov esi, 1
cmp edi, ebx
jae 0x47acc9
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x47ac5d
mov eax, edx
and eax, 0x3f
movzx esi, byte [eax + 0x4b5e48]
and edx, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov eax, 1
shl edx, cl
cmp esi, eax
jl 0x47ac55
invalid
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or edx, ebp
cmp eax, esi
jle 0x47ac42
mov ecx, dword [esp + 0x16c]
inc esi
cmp edx, 0xd
jne 0x47ac7a
inc edi
cmp edi, ebx
jae 0x47b2dc
cmp byte [edi], 0xa
jne 0x47acb1
inc edi
jmp 0x47acb1
cmp edx, 0xa
je 0x47acaf
cmp dword [ecx + 0x60], 0
jne 0x47b2dc
cmp edx, 0xb
je 0x47acaf
cmp edx, 0xc
je 0x47acaf
cmp edx, 0x85
je 0x47acaf
cmp edx, 0x2028
je 0x47acaf
cmp edx, 0x2029
jne 0x47b2dc
add edi, esi
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x14]
jl 0x47ac03
jmp 0x47b2dc
cmp dword [ecx + 0x7c], 0
je 0x47b2dc
cmp edi, dword [esp + 0x160]
jbe 0x47b2dc
mov eax, esi
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jg 0x47ce4d
jmp 0x47b2dc
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b2dc
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x1c], ecx
mov esi, 1
cmp edi, dword [esp + 0x1c]
jae 0x47ade2
movzx eax, byte [edi]
cmp eax, 0xc0
jb 0x47ad61
mov edx, eax
and edx, 0x3f
movzx esi, byte [edx + 0x4b5e48]
and eax, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov edx, 1
shl eax, cl
cmp esi, edx
jl 0x47ad59
movzx ebp, byte [edx + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc edx
or eax, ebp
cmp edx, esi
jle 0x47ad46
mov edx, dword [esp + 0x16c]
inc esi
cmp eax, 0x180e
ja 0x47ad90
je 0x47adb9
cmp eax, 0xa0
ja 0x47ad89
je 0x47adb9
cmp eax, 9
je 0x47adb9
cmp eax, 0x20
jmp 0x47adb3
cmp eax, 0x1680
jmp 0x47adb3
cmp eax, 0x205f
ja 0x47adae
je 0x47adb9
cmp eax, 0x2000
jb 0x47adb5
cmp eax, 0x200a
jbe 0x47adb9
cmp eax, 0x202f
jmp 0x47adb3
cmp eax, 0x3000
je 0x47adb9
xor eax, eax
jmp 0x47adbe
mov eax, 1
xor ecx, ecx
cmp dword [esp + 0x34], 0x12
sete cl
cmp eax, ecx
je 0x47b2dc
inc ebx
add edi, esi
cmp ebx, dword [esp + 0x14]
jl 0x47ad06
jmp 0x47b2dc
cmp dword [edx + 0x7c], 0
je 0x47b2dc
cmp edi, dword [esp + 0x160]
jbe 0x47b2dc
mov eax, esi
mov dword [edx + 0x5c], eax
cmp dword [edx + 0x7c], eax
jg 0x47d708
jmp 0x47b2dc
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b2dc
mov eax, dword [edx + 0x6c]
mov dword [esp + 0x1c], eax
jmp 0x47ae37
mov edx, dword [esp + 0x16c]
mov esi, 1
cmp edi, dword [esp + 0x1c]
jae 0x47aed4
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x47ae88
mov ecx, edx
and ecx, 0x3f
movzx esi, byte [ecx + 0x4b5e48]
and edx, dword [esi*4 + 0x4b5e2c]
lea ecx, [esi + esi*2]
add ecx, ecx
mov eax, 1
shl edx, cl
cmp esi, eax
jl 0x47ae87
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or edx, ebp
cmp eax, esi
jle 0x47ae74
inc esi
cmp edx, 0x85
ja 0x47aec2
je 0x47aecd
cmp edx, 0xa
jb 0x47ae9c
cmp edx, 0xd
jbe 0x47aecd
xor eax, eax
xor ecx, ecx
cmp dword [esp + 0x34], 0x14
sete cl
cmp eax, ecx
je 0x47b2dc
inc ebx
add edi, esi
cmp ebx, dword [esp + 0x14]
jl 0x47ae30
jmp 0x47b2dc
add edx, 0xffffdfd8
cmp edx, 1
ja 0x47ae9c
mov eax, 1
jmp 0x47ae9e
cmp dword [edx + 0x7c], 0
je 0x47b2dc
cmp edi, dword [esp + 0x160]
jbe 0x47b2dc
mov eax, esi
mov dword [edx + 0x5c], eax
cmp dword [edx + 0x7c], eax
jg 0x47dab0
jmp 0x47b2dc
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b2dc
mov edx, dword [edx + 0x6c]
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x1c], edx
mov edx, 1
cmp edi, dword [esp + 0x1c]
jae 0x47af97
movzx esi, byte [edi]
cmp esi, 0xc0
jb 0x47af74
mov eax, esi
and eax, 0x3f
movzx edx, byte [eax + 0x4b5e48]
and esi, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
mov eax, 1
shl esi, cl
cmp edx, eax
jl 0x47af6c
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or esi, ebp
cmp eax, edx
jle 0x47af59
mov ecx, dword [esp + 0x16c]
inc edx
cmp esi, 0x100
jae 0x47af89
mov eax, dword [ecx + 0x34]
test byte [esi + eax], 4
jne 0x47b2dc
inc ebx
add edi, edx
cmp ebx, dword [esp + 0x14]
jl 0x47af18
jmp 0x47b2dc
cmp dword [ecx + 0x7c], 0
je 0x47b2dc
cmp edi, dword [esp + 0x160]
jbe 0x47b2dc
mov eax, edx
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jg 0x47ce4d
jmp 0x47b2dc
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b2dc
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x16c]
mov edx, 1
cmp edi, dword [esp + 0x1c]
jae 0x47b2bf
movzx esi, byte [edi]
cmp esi, 0xc0
jb 0x47b037
mov edx, esi
and edx, 0x3f
movzx edx, byte [edx + 0x4b5e48]
and esi, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
mov eax, 1
shl esi, cl
cmp edx, eax
jl 0x47b02f
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or esi, ebp
cmp eax, edx
jle 0x47b01c
mov ecx, dword [esp + 0x16c]
inc edx
cmp esi, 0x100
jae 0x47b2dc
mov eax, dword [ecx + 0x34]
test byte [esi + eax], 4
je 0x47b2dc
inc ebx
add edi, edx
cmp ebx, dword [esp + 0x14]
jl 0x47afdb
jmp 0x47b2dc
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b2dc
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x16c]
mov edx, 1
cmp edi, dword [esp + 0x1c]
jae 0x47af97
movzx esi, byte [edi]
cmp esi, 0xc0
jb 0x47b0d4
mov edx, esi
and edx, 0x3f
movzx edx, byte [edx + 0x4b5e48]
and esi, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
mov eax, 1
shl esi, cl
cmp edx, eax
jl 0x47b0cc
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or esi, ebp
cmp eax, edx
jle 0x47b0b9
mov ecx, dword [esp + 0x16c]
inc edx
cmp esi, 0x100
jae 0x47b0e9
mov eax, dword [ecx + 0x34]
test byte [esi + eax], 1
jne 0x47b2dc
inc ebx
add edi, edx
cmp ebx, dword [esp + 0x14]
jl 0x47b078
jmp 0x47b2dc
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b2dc
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x16c]
mov edx, 1
cmp edi, dword [esp + 0x1c]
jae 0x47b2bf
movzx esi, byte [edi]
cmp esi, 0xc0
jb 0x47b16d
mov edx, esi
and edx, 0x3f
movzx edx, byte [edx + 0x4b5e48]
and esi, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
mov eax, 1
shl esi, cl
cmp edx, eax
jl 0x47b165
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or esi, ebp
cmp eax, edx
jle 0x47b152
mov ecx, dword [esp + 0x16c]
inc edx
cmp esi, 0x100
jae 0x47b2dc
mov eax, dword [ecx + 0x34]
test byte [esi + eax], 1
je 0x47b2dc
inc ebx
add edi, edx
cmp ebx, dword [esp + 0x14]
jl 0x47b111
jmp 0x47b2dc
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b2dc
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x16c]
mov edx, 1
cmp edi, dword [esp + 0x1c]
jae 0x47af97
movzx esi, byte [edi]
cmp esi, 0xc0
jb 0x47b20a
mov edx, esi
and edx, 0x3f
movzx edx, byte [edx + 0x4b5e48]
and esi, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
mov eax, 1
shl esi, cl
cmp edx, eax
jl 0x47b202
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or esi, ebp
cmp eax, edx
jle 0x47b1ef
mov ecx, dword [esp + 0x16c]
inc edx
cmp esi, 0x100
jae 0x47b21f
mov eax, dword [ecx + 0x34]
test byte [esi + eax], 0x10
jne 0x47b2dc
inc ebx
add edi, edx
cmp ebx, dword [esp + 0x14]
jl 0x47b1ae
jmp 0x47b2dc
mov ebx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b2dc
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x16c]
mov edx, 1
cmp edi, dword [esp + 0x1c]
jae 0x47b2bf
movzx esi, byte [edi]
cmp esi, 0xc0
jb 0x47b2a3
mov edx, esi
and edx, 0x3f
movzx edx, byte [edx + 0x4b5e48]
and esi, dword [edx*4 + 0x4b5e2c]
lea ecx, [edx + edx*2]
add ecx, ecx
mov eax, 1
shl esi, cl
cmp edx, eax
jl 0x47b29b
movzx ebp, byte [eax + edi]
sub ecx, 6
and ebp, 0x3f
shl ebp, cl
inc eax
or esi, ebp
cmp eax, edx
jle 0x47b288
mov ecx, dword [esp + 0x16c]
inc edx
cmp esi, 0x100
jae 0x47b2dc
mov eax, dword [ecx + 0x34]
test byte [esi + eax], 0x10
je 0x47b2dc
inc ebx
add edi, edx
cmp ebx, dword [esp + 0x14]
jl 0x47b247
jmp 0x47b2dc
cmp dword [ecx + 0x7c], 0
je 0x47b2dc
cmp edi, dword [esp + 0x160]
jbe 0x47b2dc
mov eax, edx
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jg 0x47b548
cmp dword [esp + 0x2c], 0
jne 0x475656
mov esi, dword [esp + 0x17c]
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x16c]
mov ebx, dword [esp + 0x168]
mov ebp, dword [esp + 0x15c]
inc esi
push esi
push 0
push ecx
mov ecx, dword [esp + 0x170]
push edx
mov edx, dword [esp + 0x170]
push eax
push ebx
push ecx
push edx
push ebp
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
jne 0x47f150
jmp 0x47b340
mov eax, edi
dec edi
cmp eax, dword [esp + 0x28]
je case.0x475682.115
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x47b363
mov dl, byte [edi - 1]
dec edi
and dl, 0xc0
cmp dl, 0x80
je 0x47b357
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x16c]
push esi
push 0
push eax
mov eax, dword [esp + 0x170]
push ecx
mov ecx, dword [esp + 0x170]
push edx
push ebx
push eax
push ecx
push ebp
push edi
call fcn.004755e0
add esp, 0x28
test eax, eax
je 0x47b340
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
cmp eax, 0xf
ja case.default.0x4770e4
jmp dword [eax*4 + 0x47f4f4]
mov esi, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b921
cmp edi, dword [edx + 0x6c]
jae 0x47b433
mov eax, dword [edx + 0x18]
test eax, eax
je 0x47b3ff
mov ecx, dword [esp + 0x16c]
lea edx, [ecx + 0x1c]
mov ecx, dword [ecx + 0x6c]
push edx
push ecx
push eax
xor ebx, ebx
call fcn.00480620
add esp, 0xc
test eax, eax
jne 0x47b921
mov edx, dword [esp + 0x16c]
jmp 0x47b426
mov eax, dword [edx + 0x6c]
sub eax, dword [edx + 0x1c]
cmp edi, eax
ja 0x47b426
mov cl, byte [edi]
cmp cl, byte [edx + 0x2c]
jne 0x47b426
cmp dword [edx + 0x1c], 1
je 0x47b921
mov al, byte [edi + 1]
cmp al, byte [edx + 0x2d]
je 0x47b921
inc esi
inc edi
cmp esi, dword [esp + 0x14]
jl 0x47b3c4
jmp 0x47b921
cmp dword [edx + 0x7c], 0
je 0x47b921
cmp edi, dword [esp + 0x160]
jbe 0x47b921
mov eax, 1
mov dword [edx + 0x5c], eax
cmp dword [edx + 0x7c], eax
jg 0x47d708
jmp 0x47b921
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 0x6c]
sub eax, ebp
sub ecx, edi
cmp eax, ecx
jbe 0x47b4a6
mov edi, dword [edx + 0x6c]
cmp dword [edx + 0x7c], 0
je 0x47b921
cmp edi, dword [esp + 0x160]
jbe 0x47b921
mov ecx, dword [esp + 0x16c]
mov eax, 1
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jg 0x47ce4d
jmp 0x47b921
add edi, eax
jmp 0x47b921
mov ecx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b921
mov esi, dword [esp + 0x16c]
mov edx, dword [esi + 0x6c]
jmp 0x47b4cc
mov esi, dword [esp + 0x16c]
cmp edi, edx
jae 0x47b519
movzx eax, byte [edi]
cmp eax, 0xd
jne 0x47b4e8
inc edi
cmp edi, edx
jae 0x47b921
cmp byte [edi], 0xa
jne 0x47b50d
jmp 0x47b50c
cmp eax, 0xa
je 0x47b50c
cmp dword [esi + 0x60], 0
jne 0x47b921
cmp eax, 0xb
je 0x47b50c
cmp eax, 0xc
je 0x47b50c
cmp eax, 0x85
jne 0x47b921
inc edi
inc ecx
cmp ecx, dword [esp + 0x14]
jl 0x47b4c5
jmp 0x47b921
cmp dword [esi + 0x7c], 0
je 0x47b921
cmp edi, dword [esp + 0x160]
jbe 0x47b921
mov ecx, dword [esp + 0x16c]
mov eax, 1
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jle 0x47b921
mov eax, dword [esp + 0x164]
mov dword [ecx + 0x9c], eax
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
mov ecx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b921
mov edx, dword [esp + 0x16c]
mov edx, dword [edx + 0x6c]
cmp edi, edx
jae 0x47b5ac
movzx eax, byte [edi]
cmp eax, 9
je 0x47b921
cmp eax, 0x20
je 0x47b921
cmp eax, 0xa0
je 0x47b921
inc ecx
inc edi
cmp ecx, dword [esp + 0x14]
jl 0x47b57b
jmp 0x47b921
mov eax, dword [esp + 0x16c]
cmp dword [eax + 0x7c], 0
je 0x47b921
cmp edi, dword [esp + 0x160]
jbe 0x47b921
mov ecx, dword [esp + 0x16c]
mov eax, 1
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jg 0x47ce4d
jmp 0x47b921
mov ecx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b921
mov edx, dword [esp + 0x16c]
mov edx, dword [edx + 0x6c]
cmp edi, edx
jae 0x47b626
movzx eax, byte [edi]
cmp eax, 9
je 0x47b619
cmp eax, 0x20
je 0x47b619
cmp eax, 0xa0
jne 0x47b921
inc ecx
inc edi
cmp ecx, dword [esp + 0x14]
jl 0x47b5fd
jmp 0x47b921
mov eax, dword [esp + 0x16c]
cmp dword [eax + 0x7c], 0
je 0x47b921
cmp edi, dword [esp + 0x160]
jbe 0x47b921
mov ecx, dword [esp + 0x16c]
mov eax, 1
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jg 0x47b548
jmp 0x47b921
mov ecx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b921
mov edx, dword [esp + 0x16c]
mov edx, dword [edx + 0x6c]
cmp edi, edx
jae 0x47b5ac
movzx eax, byte [edi]
cmp eax, 0xa
je 0x47b921
cmp eax, 0xb
je 0x47b921
cmp eax, 0xc
je 0x47b921
cmp eax, 0xd
je 0x47b921
cmp eax, 0x85
je 0x47b921
inc ecx
inc edi
cmp ecx, dword [esp + 0x14]
jl 0x47b677
jmp 0x47b921
mov ecx, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b921
mov ebx, dword [esp + 0x16c]
mov edx, dword [ebx + 0x6c]
mov esi, dword [esp + 0x14]
cmp edi, edx
jae 0x47b709
movzx eax, byte [edi]
cmp eax, 0xa
je 0x47b6fe
cmp eax, 0xb
je 0x47b6fe
cmp eax, 0xc
je 0x47b6fe
cmp eax, 0xd
je 0x47b6fe
cmp eax, 0x85
jne 0x47b921
inc ecx
inc edi
cmp ecx, esi
jl 0x47b6d8
jmp 0x47b921
cmp dword [ebx + 0x7c], 0
je 0x47b921
cmp edi, dword [esp + 0x160]
jbe 0x47b921
mov eax, 1
mov ecx, ebx
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jg 0x47b548
jmp 0x47b921
mov eax, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b921
mov edx, dword [esp + 0x16c]
mov ecx, dword [edx + 0x6c]
jmp 0x47b757
mov edx, dword [esp + 0x16c]
cmp edi, ecx
jae 0x47b472
movzx esi, byte [edi]
mov edx, dword [edx + 0x34]
test byte [esi + edx], 4
jne 0x47b921
inc eax
inc edi
cmp eax, dword [esp + 0x14]
jl 0x47b750
jmp 0x47b921
mov eax, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b921
mov edx, dword [esp + 0x16c]
mov ecx, dword [edx + 0x6c]
jmp 0x47b79b
mov edx, dword [esp + 0x16c]
cmp edi, ecx
jae 0x47b7bc
movzx esi, byte [edi]
mov edx, dword [edx + 0x34]
test byte [esi + edx], 4
je 0x47b921
inc eax
inc edi
cmp eax, dword [esp + 0x14]
jl 0x47b794
jmp 0x47b921
cmp dword [edx + 0x7c], 0
je 0x47b921
cmp edi, dword [esp + 0x160]
jbe 0x47b921
mov ecx, dword [esp + 0x16c]
mov eax, 1
mov dword [ecx + 0x5c], eax
cmp dword [ecx + 0x7c], eax
jg 0x47b548
jmp 0x47b921
mov eax, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b921
mov edx, dword [esp + 0x16c]
mov ecx, dword [edx + 0x6c]
jmp 0x47b817
mov edx, dword [esp + 0x16c]
cmp edi, ecx
jae 0x47b472
movzx esi, byte [edi]
mov edx, dword [edx + 0x34]
test byte [esi + edx], 1
jne 0x47b921
inc eax
inc edi
cmp eax, dword [esp + 0x14]
jl 0x47b810
jmp 0x47b921
mov eax, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b921
mov edx, dword [esp + 0x16c]
mov ecx, dword [edx + 0x6c]
jmp 0x47b867
mov edx, dword [esp + 0x16c]
cmp edi, ecx
jae 0x47b7bc
movzx esi, byte [edi]
mov edx, dword [edx + 0x34]
test byte [esi + edx], 1
je 0x47b921
inc eax
inc edi
cmp eax, dword [esp + 0x14]
jl 0x47b860
jmp 0x47b921
mov eax, ebp
cmp ebp, dword [esp + 0x14]
jge 0x47b921
mov edx, dword [esp + 0x16c]
mov ecx, dword [edx + 0x6c]
jmp 0x47b8b7
mov edx, dword [esp + 0x16c]
cmp edi, ecx
jae 0x47b472
movzx esi, byte [edi]
mov edx, dword [edx + 0x34]
test byte [esi + edx], 0x10
jne 0x47b921
inc eax
inc edi
cmp eax, dword [esp + 0x14]
jl 0x47b8b0
jmp 0x47b921
mov esi, dword [esp + 0x14]
mov eax, ebp
cmp ebp, esi
jge 0x47b921
mov ecx, dword [edx + 0x6c]
cmp edi, ecx
jae 0x47b901
movzx ebx, byte [edi]
mov ebp, dword [edx + 0x34]
test byte [ebx + ebp], 0x10
je 0x47b921
inc eax
inc edi
cmp eax, esi
jl 0x47b8e9
jmp 0x47b921
cmp dword [edx + 0x7c], 0
je 0x47b921
cmp edi, dword [esp + 0x160]
jbe 0x47b921
mov eax, 1
mov dword [edx + 0x5c], eax
cmp dword [edx + 0x7c], eax
jg 0x47f127
cmp dword [esp + 0x2c], 0
jne 0x475656
cmp edi, dword [esp + 0x28]
jb case.0x475682.115
mov esi, dword [esp + 0x17c]
mov ebx, dword [esp + 0x168]
mov ebp, dword [esp + 0x174]
inc esi
lea esp, [esp]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x164]
push esi
push 0
push ebp
push edx
mov edx, dword [esp + 0x170]
push eax
mov eax, dword [esp + 0x170]
push ebx
push ecx
push edx
push eax
push edi
call fcn.004755e0
add esp, 0x28
dec edi
test eax, eax
jne 0x47f150
cmp edi, dword [esp + 0x28]
jae 0x47b950
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0x16c]
mov dword [edx + 0x9c], ecx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
movzx eax, byte [ebx + 4]
movzx ecx, byte [ebx + 5]
shl eax, 8
or eax, ecx
cmp byte [ebx + eax + 3], 0x54
lea eax, [ebx + eax + 3]
mov dword [esp + 0x15c], eax
jne 0x47b9f0
movzx edx, byte [eax + 1]
movzx ecx, byte [eax + 2]
shl edx, 8
or edx, ecx
add eax, edx
cmp byte [eax], 0x54
je 0x47b9d5
mov dword [esp + 0x15c], eax
mov ebx, dword [esp + 0x15c]
add ebx, 3
cmp dword [esp + 0x18], 0x63
mov dword [esp + 0x15c], ebx
jne 0x47be27
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x174]
mov eax, dword [esp + 0x170]
inc ecx
push ecx
mov ecx, dword [esp + 0x16c]
push 2
push edx
mov edx, dword [esp + 0x170]
push eax
mov eax, dword [esp + 0x170]
push ebp
push ecx
push edx
push eax
push ebx
push edi
call fcn.004755e0
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret
mov eax, dword [esp + 0x15c]
movzx esi, byte [eax + 3]
movzx edx, byte [eax + 4]
mov ebp, dword [esp + 0x16c]
shl esi, 8
or esi, edx
lea ebx, [esi + esi]
cmp ebx, dword [ebp + 0x14]
jge 0x47bbca
mov ecx, ebp
mov eax, dword [ecx + 0xc]
mov edx, dword [eax + ebx*4]
mov dword [esp + 0x38], edx
mov edx, dword [eax + ebx*4 + 4]
mov dword [esp + 0x34], edx
mov edx, dword [ecx + 0x10]
sub edx, esi
lea eax, [eax + edx*4]
mov edx, dword [eax]
mov dword [esp + 0x40], edx
mov edx, dword [ecx + 0x84]
mov dword [esp + 0x44], edx
mov edx, edi
sub edx, dword [ecx + 0x68]
mov ecx, dword [esp + 0x17c]
mov dword [eax], edx
xor eax, eax
cmp dword [esp + 0x18], 0x62
setne al
lea ebp, [eax - 1]
and ebp, 2
inc ecx
mov dword [esp + 0x3c], ecx
jmp 0x47bad0
mov ebp, dword [esp + 0x16c]
mov eax, dword [esp + 0x15c]
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
xor ebx, ebx
invalid
jl 0x47bbfb