Function at 0x59ff1b
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [esp - 0x5c]
sub esp, 0x1a4
mov eax, dword [0x67f570]
push ebx
push esi
mov esi, dword [ebp + 0x70]
push edi
push 0x1d8
mov dword [ebp + 0x58], eax
call dword [0x67b524]
mov ebx, eax
and dword [ebx], 0
mov eax, dword [ebp + 0x64]
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0x68]
mov dword [ebx + 8], eax
mov eax, dword [ebp + 0x6c]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp + 0x74]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp + 0x78]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp + 0x7c]
pop ecx
mov dword [ebx + 0x18], eax
jmp 0x5a3ee4
inc eax
mov dword [esi], eax
mov eax, dword [ebx + 0x10]
mov dword [ebx + 0x60], eax
test byte [ebx + 0x18], 2
mov eax, dword [esi + 0x28]
mov dword [ebp + 0x38], eax
je 0x59ff9a
mov ecx, dword [ebx + 0x14]
lea eax, [ebx + 0x18c]
mov dword [eax], ecx
mov ecx, dword [ebx + 4]
mov dword [ebx + 0x190], ecx
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 8]
movzx eax, byte [eax]
xor edi, edi
mov dword [ebx + 0x84], eax
mov dword [ebx + 0x58], edi
cmp dword [esi + 0x34], edi
je 0x59ffc5
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jb 0x59ffc5
cmp eax, dword [esi + 0x48]
jbe 0x59ffc5
xor edx, edx
inc edx
mov dword [esi + 0x38], edx
jmp 0x59ffc8
xor edx, edx
inc edx
mov eax, dword [ebx + 0x84]
push 0x50
pop ecx
cmp eax, ecx
jle 0x5a000a
add eax, 0xffffffb0
cmp eax, 0x64
mov dword [ebx + 0x7c], eax
jle 0x59fff0
mov edi, dword [ebx + 8]
xor eax, eax
mov ah, byte [edi + 4]
mov al, byte [edi + 5]
xor edi, edi
mov dword [ebx + 0x7c], eax
mov eax, dword [ebx + 0x7c]
add eax, eax
mov dword [ebx + 0x80], eax
cmp eax, dword [esi + 0x10]
jl 0x5a1ea3
mov dword [ebx + 0x84], ecx
mov eax, dword [ebx + 0x84]
cmp eax, ecx
ja case.0x5a001f.13
movzx eax, byte [eax + 0x5a444b]
jmp dword [eax*4 + 0x5a4393]
add dword [ebx + 8], 3
jmp 0x59ff9a
mov edi, dword [esi + 0x5c]
test edi, edi
je 0x5a4044
cmp dword [edi + 4], 0
jne 0x5a4044
mov eax, dword [edi]
mov dword [esi + 0x5c], eax
mov eax, dword [edi + 0x14]
shl eax, 2
push eax
push dword [edi + 0x10]
push dword [esi + 8]
call fcn.005f06d0
mov eax, dword [edi + 0xc]
mov dword [esi + 0x48], eax
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x10], eax
mov eax, dword [edi + 8]
add esp, 0xc
mov dword [ebx + 8], eax
jmp 0x59ff9a
mov eax, dword [ebx + 8]
movzx eax, byte [eax + 1]
mov dword [ebx + 0x10], eax
add dword [ebx + 8], 2
jmp 0x59ff9a
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xc8], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a21c6
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
cmp edi, 1
mov dword [ebp + 0x4c], ebx
je 0x5a00e3
test edi, edi
jne 0x5a2995
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
mov dword [ebx + 8], eax
cmp byte [eax], 0x41
je case.0x5a001f.69
mov eax, dword [ebx + 8]
cmp byte [eax], 0x42
je 0x5a4052
test byte [ebx + 0x18], 1
jne 0x5a408a
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
mov dword [ebx + 8], eax
cmp byte [eax], 0x41
je 0x5a00f9
add eax, 3
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x50]
mov dword [ebx + 0xc], eax
jmp 0x59ff9a
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x108], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a21f3
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
cmp edi, 1
mov dword [ebp + 0x4c], ebx
je 0x5a4052
test edi, edi
jne 0x5a2995
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
mov dword [ebx + 8], eax
cmp byte [eax], 0x41
je case.0x5a001f.70
test byte [ebx + 0x18], 1
jne 0x5a408a
add eax, 3
jmp 0x5a006d
mov eax, dword [ebx + 8]
xor ecx, ecx
cmp dword [ebp + 0x38], edi
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
je 0x5a01d5
mov edi, ecx
xor ecx, ecx
test edi, edi
jle case.0x5a001f.76
dec dword [ebx + 4]
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
jb 0x5a4052
jmp 0x5a01c1
dec eax
mov dword [ebx + 4], eax
mov dl, byte [eax]
and dl, 0xc0
cmp dl, 0x80
je 0x5a01bd
inc ecx
cmp ecx, edi
jl 0x5a01ac
jmp case.0x5a001f.76
sub dword [ebx + 4], ecx
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
jb 0x5a4052
jmp case.0x5a001f.76
mov edi, dword [0x746604]
test edi, edi
je 0x5a029f
mov dword [ebp - 0x148], 1
mov eax, dword [ebx + 8]
movzx eax, byte [eax + 1]
mov dword [ebp - 0x144], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x140], eax
lea eax, [esi + 0x40]
mov ecx, dword [eax]
mov dword [ebp - 0x13c], ecx
mov ecx, dword [esi + 0x44]
sub ecx, dword [eax]
mov dword [ebp - 0x138], ecx
mov ecx, dword [esi + 0x48]
sub ecx, dword [eax]
mov dword [ebp - 0x134], ecx
mov ecx, dword [ebx + 4]
sub ecx, dword [eax]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 2]
mov cl, byte [eax + 3]
mov dword [ebp - 0x120], ecx
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 4]
mov cl, byte [eax + 5]
mov dword [ebp - 0x11c], ecx
mov eax, dword [ebx + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x12c], eax
mov eax, dword [esi + 0x54]
mov dword [ebp - 0x128], eax
mov eax, dword [esi + 0x60]
mov dword [ebp - 0x124], eax
lea eax, [ebp - 0x148]
push eax
call edi
mov edi, eax
test edi, edi
pop ecx
jg 0x5a4052
jl 0x5a2995
add dword [ebx + 8], 6
jmp 0x59ff9a
mov eax, dword [ebx + 8]
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 0x34], eax
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xd0], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a232c
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
cmp edi, 1
mov dword [ebp + 0x4c], ebx
je 0x5a030f
test edi, edi
jne 0x5a2995
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
mov dword [ebx + 8], eax
cmp byte [eax], 0x41
je 0x5a02b4
mov eax, dword [ebx + 8]
mov al, byte [eax]
cmp al, 0x4a
je 0x5a0320
cmp al, 0x41
jne 0x5a4052
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
mov dword [ebx + 8], eax
cmp byte [eax], 0x41
je 0x5a0320
mov eax, dword [esi + 0x50]
mov dword [ebx + 0xc], eax
mov ecx, dword [esi + 0x4c]
mov dword [ebx + 4], ecx
mov eax, dword [ebx + 8]
cmp byte [eax], 0x42
je 0x5a0188
cmp ecx, dword [ebx + 0x34]
je 0x5a0188
cmp byte [eax + 3], 0x12
jne 0x5a036b
movzx eax, byte [eax + 4]
mov ecx, dword [ebx + 0x10]
and ecx, 0xfffffff8
or eax, ecx
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 8]
cmp byte [eax], 0x44
push 0x1d8
jne 0x5a2382
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xf8], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a2337
mov ebx, dword [ebp - 0xf8]
jmp 0x5a2509
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
mov dword [ebx + 8], eax
cmp byte [eax], 0x41
je case.0x5a001f.65
jmp 0x59ff9a
mov eax, dword [ebx + 8]
inc eax
push 0x1d8
mov dword [ebx + 0x28], eax
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x100], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a23f9
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x5a2995
mov eax, dword [ebx + 0x28]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
mov dword [ebx + 0x28], eax
cmp byte [eax], 0x41
je 0x5a040e
jmp 0x5a0188
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x28]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
mov dword [ebx + 0x28], eax
cmp byte [eax], 0x41
je 0x5a042f
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xe8], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a2410
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x5a2995
inc dword [ebx + 8]
jmp 0x59ff9a
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
sub eax, ecx
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 4]
mov dword [ebx + 0x34], eax
mov eax, dword [ebx + 0x14]
mov eax, dword [eax]
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 0x30]
mov al, byte [eax]
cmp al, 0x45
je 0x5a4245
cmp al, 0x46
je 0x5a4245
cmp al, 0x47
je 0x5a4245
cmp al, 0x48
je 0x5a4245
cmp al, 0x4a
je 0x5a4245
cmp al, 0x4b
je 0x5a05ba
movzx eax, al
add eax, 0xffffffb0
cmp eax, 0x64
mov dword [ebx + 0x7c], eax
jle 0x5a04ff
mov edi, dword [ebx + 0x30]
xor eax, eax
mov ah, byte [edi + 4]
mov al, byte [edi + 5]
mov dword [ebx + 0x7c], eax
mov eax, dword [ebx + 0x7c]
shl eax, 1
mov dword [ebx + 0x80], eax
mov eax, dword [ebx + 0x7c]
test eax, eax
jle 0x5a05ba
mov dword [esi + 0x54], eax
mov edi, dword [ebx + 0x80]
cmp edi, dword [esi + 0x10]
jl 0x5a0528
mov dword [esi + 0x1c], edx
jmp 0x5a056f
mov ecx, dword [esi + 0xc]
sub ecx, dword [ebx + 0x7c]
mov eax, dword [esi + 8]
mov ecx, dword [eax + ecx*4]
mov dword [eax + edi*4], ecx
mov eax, dword [ebx + 4]
sub eax, dword [esi + 0x40]
mov ecx, dword [ebx + 0x80]
mov edx, dword [esi + 8]
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebx + 0x80]
cmp dword [ebx + 0xc], eax
jg 0x5a055b
add eax, 2
mov dword [ebx + 0xc], eax
cmp byte [0x67b52c], 0
je 0x5a056f
mov eax, dword [ebx + 0xc]
cmp eax, dword [esi + 0x50]
jle 0x5a056f
mov dword [esi + 0x50], eax
mov edx, dword [esi + 0x5c]
test edx, edx
je 0x5a05ba
mov eax, dword [edx + 4]
cmp eax, dword [ebx + 0x7c]
jne 0x5a05ba
mov ecx, dword [edx]
mov eax, dword [ebp + 0x70]
mov dword [eax + 0x5c], ecx
mov ecx, dword [edx + 0xc]
mov dword [eax + 0x48], ecx
mov ecx, dword [edx + 0x14]
mov edi, dword [eax + 8]
mov esi, dword [edx + 0x10]
shl ecx, 2
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x10], eax
mov esi, dword [ebp + 0x70]
jmp 0x59ff9a
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 8]
cmp byte [eax], 0x42
je 0x5a0188
mov ecx, dword [ebx + 4]
cmp ecx, dword [ebx + 0x34]
je 0x5a0188
cmp byte [eax], 0x44
push 0x1d8
jne 0x5a246f
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x110], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a2427
mov ebx, dword [ebp - 0x110]
jmp 0x5a2509
cmp dword [esi + 0x20], edi
je 0x5a0627
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
je 0x5a4052
test byte [ebx + 0x10], 2
je case.0x5a001f.1
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
je 0x5a0485
movzx ax, byte [eax - 1]
push eax
call fcn.0059fe58
pop ecx
test al, al
jmp 0x5a0be4
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
jmp 0x5a0b5c
mov eax, dword [esi + 0x58]
add eax, dword [esi + 0x40]
cmp dword [ebx + 4], eax
jmp 0x5a0b5c
test byte [ebx + 0x10], 2
je 0x5a067b
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jb 0x5a06b1
cmp dword [esi + 0x24], edi
jmp 0x5a0b5c
cmp dword [esi + 0x24], edi
jne 0x5a4052
cmp dword [esi + 0x2c], edi
je case.0x5a001f.16
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jb 0x5a4052
jmp 0x5a0485
mov eax, dword [esi + 0x44]
lea ecx, [eax - 1]
mov eax, dword [ebx + 4]
cmp eax, ecx
jb 0x5a4052
jne 0x5a0485
movzx ax, byte [eax]
jmp 0x5a063e
cmp dword [ebp + 0x38], edi
mov eax, dword [ebx + 4]
je 0x5a07f0
cmp eax, dword [esi + 0x40]
jne 0x5a06d0
mov dword [ebx + 0x5c], edi
jmp 0x5a0766
dec eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
mov dword [ebp + 0x44], eax
jne 0x5a06ec
dec eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x5a06de
mov dword [ebp + 0x44], eax
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5a074a
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
lea ecx, [edi + edi*2]
and edx, eax
shl ecx, 1
shl edx, cl
cmp edi, 1
mov dword [ebp - 8], 1
mov eax, edx
mov dword [ebp + 0x3c], eax
jl 0x5a074a
mov eax, dword [ebp + 0x44]
mov edx, dword [ebp - 8]
movzx edx, byte [edx + eax]
mov eax, dword [ebp + 0x3c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
or eax, edx
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
mov dword [ebp + 0x3c], eax
jle 0x5a0728
cmp eax, 0x100
jge 0x5a075f
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
je 0x5a075f
xor eax, eax
inc eax
jmp 0x5a0761
xor eax, eax
mov dword [ebx + 0x5c], eax
xor edi, edi
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jb 0x5a0776
mov dword [ebx + 0x50], edi
jmp 0x5a0824
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5a07d4
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
lea ecx, [edi + edi*2]
and edx, eax
shl ecx, 1
shl edx, cl
cmp edi, 1
mov dword [ebp - 0x2c], 1
mov eax, edx
mov dword [ebp + 0x3c], eax
jl 0x5a07d4
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x2c]
movzx edx, byte [edx + eax]
mov eax, dword [ebp + 0x3c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
or eax, edx
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
mov dword [ebp + 0x3c], eax
jle 0x5a07b2
cmp eax, 0x100
jge 0x5a07e9
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
je 0x5a07e9
xor eax, eax
inc eax
jmp 0x5a07eb
xor eax, eax
mov dword [ebx + 0x50], eax
jmp 0x5a0824
cmp eax, dword [esi + 0x40]
je 0x5a0806
movzx eax, byte [eax - 1]
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
je 0x5a0806
mov eax, edx
jmp 0x5a0808
xor eax, eax
mov dword [ebx + 0x5c], eax
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a081f
movzx eax, byte [eax]
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
jne 0x5a0821
xor edx, edx
mov dword [ebx + 0x50], edx
mov eax, dword [ebx + 8]
mov cl, byte [eax]
inc eax
cmp cl, 4
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x50]
jne 0x5a083f
sub eax, dword [ebx + 0x5c]
neg eax
sbb eax, eax
inc eax
jmp 0x5a0849
xor ecx, ecx
cmp eax, dword [ebx + 0x5c]
setne cl
mov eax, ecx
test eax, eax
jmp 0x5a1291
test byte [ebx + 0x10], 4
jne 0x5a0871
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a0871
movzx ax, byte [eax]
push eax
call fcn.0059fe58
test al, al
pop ecx
jne 0x5a4052
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x44]
cmp ecx, edx
lea eax, [ecx + 1]
mov dword [ebx + 4], eax
jae 0x5a4052
cmp dword [ebp + 0x38], 0
je 0x5a0485
jmp 0x5a08a3
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
jne 0x5a0485
inc eax
mov dword [ebx + 4], eax
cmp eax, dword [esi + 0x44]
jb 0x5a0891
jmp 0x5a0485
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
cmp eax, ecx
lea edx, [eax + 1]
mov dword [ebx + 4], edx
jae 0x5a4052
jmp 0x5a0485
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x5a4052
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5a0931
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5a0931
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x34], ecx
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x34]
shl eax, cl
test edx, edx
jle 0x5a0931
mov dword [ebp + 0x44], edx
sub dword [ebp - 0x34], 6
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov dl, byte [edi]
and edx, 0x3f
shl edx, cl
or eax, edx
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a0916
cmp eax, 0x100
jge 0x5a0485
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 4
jmp 0x5a0b5c
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x5a4052
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5a09b3
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5a09b3
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x3c], ecx
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x3c]
shl eax, cl
test edx, edx
jle 0x5a09b3
mov dword [ebp + 0x44], edx
sub dword [ebp - 0x3c], 6
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov dl, byte [edi]
and edx, 0x3f
shl edx, cl
or eax, edx
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a0998
cmp eax, 0x100
jge 0x5a4052
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 4
jmp 0x5a0be4
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x5a4052
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5a0a35
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5a0a35
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x44], ecx
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x44]
shl eax, cl
test edx, edx
jle 0x5a0a35
mov dword [ebp + 0x44], edx
sub dword [ebp - 0x44], 6
mov ecx, dword [ebp - 0x44]
xor edx, edx
mov dl, byte [edi]
and edx, 0x3f
shl edx, cl
or eax, edx
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a0a1a
cmp eax, 0x100
jge 0x5a0a48
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 1
jmp 0x5a0b5c
push eax
call fcn.0059fe7c
pop ecx
cmp al, 1
jmp 0x5a0be4
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x5a4052
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5a0ac1
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5a0ac1
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x4c], ecx
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x4c]
shl eax, cl
test edx, edx
jle 0x5a0ac1
mov dword [ebp + 0x44], edx
sub dword [ebp - 0x4c], 6
mov ecx, dword [ebp - 0x4c]
xor edx, edx
mov dl, byte [edi]
and edx, 0x3f
shl edx, cl
or eax, edx
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a0aa6
cmp eax, 0x100
jge 0x5a0ad4
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 1
jmp 0x5a0be4
push eax
call fcn.0059fe7c
jmp 0x5a0644
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x5a4052
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5a0b4a
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5a0b4a
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x54], ecx
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x54]
shl eax, cl
test edx, edx
jle 0x5a0b4a
mov dword [ebp + 0x44], edx
sub dword [ebp - 0x54], 6
mov ecx, dword [ebp - 0x54]
xor edx, edx
mov dl, byte [edi]
and edx, 0x3f
shl edx, cl
or eax, edx
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a0b2f
cmp eax, 0x100
jge 0x5a0485
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
jne 0x5a4052
jmp 0x5a0485
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x5a4052
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5a0bd2
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5a0bd2
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x5c], ecx
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x5c]
shl eax, cl
test edx, edx
jle 0x5a0bd2
mov dword [ebp + 0x44], edx
sub dword [ebp - 0x5c], 6
mov ecx, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [edi]
and edx, 0x3f
shl edx, cl
or eax, edx
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a0bb7
cmp eax, 0x100
jge 0x5a4052
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
je 0x5a4052
jmp 0x5a0485
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
shl ecx, 1
mov dword [ebx + 0x80], ecx
add dword [ebx + 8], 3
cmp byte [0x67b52c], 0
je 0x5a0c22
mov eax, dword [ebx + 0x80]
mov ecx, dword [esi + 8]
cmp dword [ecx + eax*4], edi
jge 0x5a0c22
mov dword [ebx + 0x70], edi
jmp 0x5a0c4a
mov eax, dword [ebx + 0x80]
cmp eax, dword [ebx + 0xc]
jge 0x5a0c40
mov ecx, dword [esi + 8]
lea eax, [ecx + eax*4]
mov edx, dword [eax]
cmp edx, edi
jl 0x5a0c40
mov eax, dword [eax + 4]
sub eax, edx
jmp 0x5a0c47
mov eax, dword [esi + 0x44]
sub eax, dword [ebx + 4]
inc eax
mov dword [ebx + 0x70], eax
mov ecx, dword [ebx + 8]
mov al, byte [ecx]
cmp al, 0x33
jb 0x5a0d4b
cmp al, 0x38
jbe 0x5a0c9d
cmp al, 0x3a
ja 0x5a0d4b
xor ecx, ecx
cmp al, 0x3a
sete cl
mov dword [ebx + 0x58], ecx
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
mov dword [ebx + 0x78], ecx
mov eax, dword [ebx + 8]
movzx edx, byte [eax + 4]
xor ecx, ecx
mov ch, byte [eax + 3]
mov eax, ecx
or eax, edx
mov dword [ebx + 0x74], eax
jne 0x5a0c97
mov dword [ebx + 0x74], 0x7fffffff
add dword [ebx + 8], 5
jmp 0x5a0cce
movzx eax, al
sub eax, 0x33
inc ecx
mov dword [ebx + 8], ecx
mov ecx, eax
and ecx, 1
mov dword [ebx + 0x58], ecx
movsx ecx, byte [eax + 0x62bc74]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x62bc7c]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x5a0cce
mov dword [ebx + 0x74], 0x7fffffff
cmp dword [ebx + 0x70], 0
je 0x59ff9a
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x5a0d19
mov eax, dword [ebx + 4]
push dword [ebx + 0x10]
mov edi, dword [ebx + 0x70]
push eax
mov eax, dword [ebx + 0x80]
mov ecx, esi
mov edx, edi
call fcn.0059fea6
test eax, eax
pop ecx
pop ecx
je 0x5a4052
mov eax, dword [ebx + 4]
add edi, eax
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [ebx + 4], edi
cmp eax, dword [ebx + 0x78]
jle 0x5a0ce3
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x59ff9a
cmp dword [ebx + 0x58], 0
je 0x5a2597
push 0x1d8
mov dword [ebx + 0x6c], eax
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a2580
mov eax, dword [ebx + 4]
push dword [ebx + 0x10]
mov edi, dword [ebx + 0x70]
push eax
mov eax, dword [ebx + 0x80]
mov ecx, esi
mov edx, edi
call fcn.0059fea6
test eax, eax
pop ecx
pop ecx
je 0x5a4052
mov eax, dword [ebx + 4]
add edi, eax
mov dword [ebx + 4], edi
jmp 0x59ff9a
mov eax, dword [ebx + 8]
inc eax
mov dword [ebx + 0x24], eax
add dword [ebx + 8], 0x21
mov ecx, dword [ebx + 8]
mov al, byte [ecx]
cmp al, 0x33
jb 0x5a0e04
cmp al, 0x38
jbe 0x5a0dd1
cmp al, 0x3a
ja 0x5a0e04
xor ecx, ecx
cmp al, 0x3a
sete cl
mov dword [ebx + 0x58], ecx
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
mov dword [ebx + 0x78], ecx
mov eax, dword [ebx + 8]
movzx edx, byte [eax + 4]
xor ecx, ecx
mov ch, byte [eax + 3]
mov eax, ecx
or eax, edx
mov dword [ebx + 0x74], eax
jne 0x5a0dcb
mov dword [ebx + 0x74], 0x7fffffff
add dword [ebx + 8], 5
jmp 0x5a0e0a
movzx eax, al
sub eax, 0x33
inc ecx
mov dword [ebx + 8], ecx
mov ecx, eax
and ecx, 1
mov dword [ebx + 0x58], ecx
movsx ecx, byte [eax + 0x62bc74]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x62bc7c]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x5a0e0a
mov dword [ebx + 0x74], 0x7fffffff
jmp 0x5a0e0a
mov dword [ebx + 0x74], edx
mov dword [ebx + 0x78], edx
cmp dword [ebp + 0x38], 0
je 0x5a0ed6
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x5a0f20
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x5a4052
movzx eax, byte [edi]
mov ecx, eax
inc edi
and cx, 0xc0
cmp cl, 0xc0
mov dword [ebx + 4], edi
jne 0x5a0e88
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x20], ecx
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x20]
shl eax, cl
test edx, edx
jle 0x5a0e88
mov dword [ebp + 0x44], edx
sub dword [ebp - 0x20], 6
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [edi]
and edx, 0x3f
shl edx, cl
or eax, edx
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a0e6d
cmp eax, 0xff
jle 0x5a0e9e
cmp dword [ebx + 0x84], 0x3b
je 0x5a4052
jmp 0x5a0ec5
xor edx, edx
mov ecx, eax
and ecx, 7
inc edx
shl edx, cl
push 8
pop ecx
mov dword [ebp + 0x40], edx
cdq
idiv ecx
mov ecx, dword [ebx + 0x24]
mov al, byte [eax + ecx]
mov ecx, dword [ebp + 0x40]
test al, cl
je 0x5a4162
mov esi, dword [ebp + 0x70]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x5a0e23
jmp 0x5a0f20
xor edi, edi
inc edi
cmp dword [ebx + 0x78], edi
jl 0x5a0f20
mov ecx, dword [ebx + 4]
cmp ecx, dword [esi + 0x44]
jae 0x5a4052
movzx esi, byte [ecx]
inc ecx
mov dword [ebx + 4], ecx
xor eax, eax
inc eax
mov ecx, esi
and ecx, 7
shl eax, cl
push 8
pop ecx
mov dword [ebp + 0x40], eax
mov eax, esi
cdq
idiv ecx
mov ecx, dword [ebx + 0x24]
mov al, byte [eax + ecx]
mov ecx, dword [ebp + 0x40]
test al, cl
je 0x5a4162
mov esi, dword [ebp + 0x70]
inc edi
cmp edi, dword [ebx + 0x78]
jle 0x5a0ede
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x59ff9a
xor eax, eax
cmp dword [ebx + 0x58], eax
je 0x5a27ba
cmp dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x78]
push 0x1d8
mov dword [ebx + 0x6c], eax
je 0x5a2719
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a26fe
mov eax, dword [ebx + 8]
add eax, 3
mov dword [ebx + 0x24], eax
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add ecx, eax
mov dword [ebx + 8], ecx
mov al, byte [ecx]
cmp al, 0x33
jb 0x5a0ff3
cmp al, 0x38
jbe 0x5a0fc0
cmp al, 0x3a
ja 0x5a0ff3
xor ecx, ecx
cmp al, 0x3a
sete cl
mov dword [ebx + 0x58], ecx
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
mov dword [ebx + 0x78], ecx
mov eax, dword [ebx + 8]
movzx edx, byte [eax + 4]
xor ecx, ecx
mov ch, byte [eax + 3]
mov eax, ecx
or eax, edx
mov dword [ebx + 0x74], eax
jne 0x5a0fba
mov dword [ebx + 0x74], 0x7fffffff
add dword [ebx + 8], 5
jmp 0x5a0ff9
movzx eax, al
sub eax, 0x33
inc ecx
mov dword [ebx + 8], ecx
mov ecx, eax
and ecx, 1
mov dword [ebx + 0x58], ecx
movsx ecx, byte [eax + 0x62bc74]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x62bc7c]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x5a0ff9
mov dword [ebx + 0x74], 0x7fffffff
jmp 0x5a0ff9
mov dword [ebx + 0x74], edx
mov dword [ebx + 0x78], edx
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x5a108f
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a4052
movzx edx, byte [eax]
lea edi, [eax + 1]
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x5a106d
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x63fab0]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp + 0x18], ecx
mov ecx, dword [eax*4 + 0x63fa98]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp + 0x18]
shl edx, cl
test eax, eax
jle 0x5a106d
mov dword [ebp + 0x44], eax
sub dword [ebp + 0x18], 6
mov ecx, dword [ebp + 0x18]
xor eax, eax
mov al, byte [edi]
and eax, 0x3f
shl eax, cl
or edx, eax
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a1052
push dword [ebx + 0x24]
push edx
call fcn.005d03c2
test eax, eax
pop ecx
pop ecx
je 0x5a4052
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x5a1008
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x59ff9a
cmp dword [ebx + 0x58], 0
je 0x5a2a8c
push 0x1d8
mov dword [ebx + 0x6c], eax
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a2a71
cmp dword [ebp + 0x38], edi
je 0x5a1171
mov dword [ebx + 0x70], edx
inc dword [ebx + 8]
mov eax, dword [ebx + 8]
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [ebx + 0x68], eax
jne 0x5a1130
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
and edx, eax
lea ecx, [edi + edi*2]
shl ecx, 1
shl edx, cl
xor eax, eax
inc eax
cmp edi, eax
mov dword [ebx + 0x68], edx
mov dword [ebp - 0x40], eax
jl 0x5a112b
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x40]
movzx eax, byte [edx + eax]
sub ecx, 6
and eax, 0x3f
shl eax, cl
or dword [ebx + 0x68], eax
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], edi
jle 0x5a110e
add dword [ebx + 0x70], edi
xor edi, edi
mov ecx, dword [esi + 0x44]
sub ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x70]
cmp eax, ecx
jg 0x5a4052
cmp eax, edi
jle 0x5a1169
dec eax
mov dword [ebx + 0x70], eax
mov edi, dword [ebx + 4]
mov cl, byte [edi]
mov eax, dword [ebx + 8]
mov al, byte [eax]
inc edi
mov dword [ebx + 4], edi
inc dword [ebx + 8]
cmp al, cl
jne 0x5a4052
mov eax, dword [ebx + 0x70]
test eax, eax
jg 0x5a1145
dec dword [ebx + 0x70]
jmp 0x59ff9a
mov edi, dword [ebx + 4]
mov eax, dword [esi + 0x44]
sub eax, edi
cmp eax, edx
jl 0x5a4052
mov eax, dword [ebx + 8]
mov cl, byte [edi]
mov al, byte [eax + 1]
inc edi
cmp al, cl
jmp 0x5a12c2
cmp dword [ebp + 0x38], edi
je 0x5a129c
mov dword [ebx + 0x70], edx
inc dword [ebx + 8]
mov eax, dword [ebx + 8]
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [ebx + 0x68], eax
jne 0x5a11fe
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
and edx, eax
lea ecx, [edi + edi*2]
shl ecx, 1
shl edx, cl
xor eax, eax
inc eax
cmp edi, eax
mov dword [ebx + 0x68], edx
mov dword [ebp + 0x10], eax
jl 0x5a11fb
mov eax, dword [ebx + 8]
mov edx, dword [ebp + 0x10]
movzx eax, byte [edx + eax]
sub ecx, 6
and eax, 0x3f
shl eax, cl
or dword [ebx + 0x68], eax
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], edi
jle 0x5a11de
add dword [ebx + 0x70], edi
mov edi, dword [ebx + 4]
mov eax, dword [esi + 0x44]
sub eax, edi
cmp dword [ebx + 0x70], eax
jg 0x5a4052
movzx edx, byte [edi]
inc edi
cmp dword [ebx + 0x68], 0x80
jge 0x5a1235
mov ecx, dword [ebx + 8]
movzx ecx, byte [ecx]
mov eax, dword [esi + 0x14]
mov cl, byte [ecx + eax]
mov al, byte [edx + eax]
mov dword [ebx + 4], edi
inc dword [ebx + 8]
cmp cl, al
jmp 0x5a1291
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x5a1288
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x63fab0]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax*4 + 0x63fa98]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x28]
shl edx, cl
test eax, eax
jle 0x5a1288
mov dword [ebp + 0x44], eax
sub dword [ebp - 0x28], 6
mov ecx, dword [ebp - 0x28]
xor eax, eax
mov al, byte [edi]
and eax, 0x3f
shl eax, cl
or edx, eax
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a126d
mov eax, dword [ebx + 0x70]
add dword [ebx + 8], eax
cmp dword [ebx + 0x68], edx
je 0x59ff9a
jmp 0x5a4052
mov edi, dword [ebx + 4]
mov eax, dword [esi + 0x44]
sub eax, edi
cmp eax, edx
jl 0x5a4052
mov ecx, dword [ebx + 8]
movzx ecx, byte [ecx + 1]
movzx edx, byte [edi]
mov eax, dword [esi + 0x14]
mov cl, byte [ecx + eax]
mov al, byte [edx + eax]
inc edi
cmp cl, al
mov dword [ebx + 4], edi
jne 0x5a4052
jmp 0x5a007f
mov eax, dword [ebx + 8]
movzx edx, byte [eax + 2]
xor ecx, ecx
mov ch, byte [eax + 1]
mov eax, ecx
or eax, edx
mov dword [ebx + 0x74], eax
mov dword [ebx + 0x78], eax
add dword [ebx + 8], 3
jmp 0x5a1341
mov dword [ebx + 0x78], edi
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
mov dword [ebx + 0x74], ecx
mov eax, dword [ebx + 8]
xor ecx, ecx
cmp byte [eax], 0x1f
sete cl
mov dword [ebx + 0x58], ecx
jmp 0x5a12e6
mov ecx, dword [ebx + 8]
movzx eax, byte [ecx]
sub eax, 0x18
inc ecx
mov dword [ebx + 8], ecx
mov ecx, eax
and ecx, 1
mov dword [ebx + 0x58], ecx
movsx ecx, byte [eax + 0x62bc74]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x62bc7c]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x5a1341
mov dword [ebx + 0x74], 0x7fffffff
cmp dword [ebp + 0x38], 0
je 0x5a1429
xor edi, edi
inc edi
mov dword [ebx + 0x70], edi
mov eax, dword [ebx + 8]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 8]
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [ebx + 0x68], eax
jne 0x5a13b8
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
and edx, eax
lea ecx, [edi + edi*2]
shl ecx, 1
shl edx, cl
xor eax, eax
inc eax
cmp edi, eax
mov dword [ebx + 0x68], edx
mov dword [ebp + 8], eax
jl 0x5a13b2
mov eax, dword [ebx + 8]
mov edx, dword [ebp + 8]
movzx eax, byte [edx + eax]
sub ecx, 6
and eax, 0x3f
shl eax, cl
or dword [ebx + 0x68], eax
inc dword [ebp + 8]
cmp dword [ebp + 8], edi
jle 0x5a1395
add dword [ebx + 0x70], edi
xor edi, edi
inc edi
mov eax, dword [ebx + 0x70]
mov edx, dword [ebx + 0x78]
mov ecx, dword [esi + 0x44]
imul edx, eax
sub ecx, dword [ebx + 4]
cmp edx, ecx
jg 0x5a4052
add dword [ebx + 8], eax
cmp dword [ebx + 0x70], edi
jle 0x5a1447
and dword [ebp + 0x34], 0
cmp dword [ebx + 0x78], edi
mov dword [ebp + 0x48], edi
jl 0x5a140b
mov eax, dword [ebx + 0x70]
mov esi, dword [ebx + 4]
mov edi, dword [ebx + 0x20]
mov ecx, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a4162
mov ecx, dword [ebx + 4]
add eax, ecx
inc dword [ebp + 0x48]
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x5a13e3
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x5a05b2
cmp dword [ebx + 0x58], 0
je 0x5a2c69
mov dword [ebx + 0x6c], eax
jmp 0x5a2c3a
mov eax, dword [esi + 0x44]
sub eax, dword [ebx + 4]
cmp dword [ebx + 0x78], eax
jg 0x5a4052
mov eax, dword [ebx + 8]
movzx eax, byte [eax]
mov dword [ebx + 0x68], eax
inc dword [ebx + 8]
xor edi, edi
inc edi
test byte [ebx + 0x10], 1
je 0x5a14b3
mov eax, dword [ebx + 0x68]
mov ecx, dword [esi + 0x14]
movzx eax, byte [eax + ecx]
mov dword [ebx + 0x68], eax
cmp dword [ebx + 0x78], edi
jl 0x5a1481
mov eax, dword [ebx + 4]
movzx ecx, byte [eax]
mov edx, dword [esi + 0x14]
movzx ecx, byte [ecx + edx]
mov edx, dword [ebx + 0x68]
inc eax
cmp edx, ecx
mov dword [ebx + 4], eax
jne 0x5a4052
inc edi
cmp edi, dword [ebx + 0x78]
jle 0x5a145f
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x59ff9a
cmp dword [ebx + 0x58], 0
je 0x5a2d7e
push 0x1d8
mov dword [ebx + 0x6c], eax
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a2d61
cmp dword [ebx + 0x78], edi
jl 0x5a14d3
mov eax, dword [ebx + 4]
movzx ecx, byte [eax]
mov edx, dword [ebx + 0x68]
inc eax
cmp edx, ecx
mov dword [ebx + 4], eax
jne 0x5a4052
inc edi
cmp edi, dword [ebx + 0x78]
jle 0x5a14b8
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x59ff9a
cmp dword [ebx + 0x58], 0
je 0x5a2e76
push 0x1d8
mov dword [ebx + 0x6c], eax
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a2e59
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a4052
inc dword [ebx + 8]
mov edi, dword [ebx + 4]
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5a1576
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5a1576
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x50], ecx
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x50]
shl eax, cl
test edx, edx
jle 0x5a1576
mov dword [ebp + 0x44], edx
sub dword [ebp - 0x50], 6
mov ecx, dword [ebp - 0x50]
xor edx, edx
mov dl, byte [edi]
and edx, 0x3f
shl edx, cl
or eax, edx
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a155b
test byte [ebx + 0x10], 1
je 0x5a1599
cmp eax, 0x100
jge 0x5a158a
mov ecx, dword [esi + 0x14]
movzx eax, byte [ecx + eax]
mov ecx, dword [ebx + 8]
movzx edx, byte [ecx]
mov edi, dword [esi + 0x14]
movzx edx, byte [edi + edx]
jmp 0x5a159f
mov ecx, dword [ebx + 8]
movzx edx, byte [ecx]
inc ecx
cmp edx, eax
mov dword [ebx + 8], ecx
jne 0x59ff9a
jmp 0x5a4052
mov eax, dword [ebx + 8]
movzx edx, byte [eax + 2]
xor ecx, ecx
mov ch, byte [eax + 1]
mov eax, ecx
or eax, edx
mov dword [ebx + 0x74], eax
mov dword [ebx + 0x78], eax
add dword [ebx + 8], 3
jmp 0x5a1621
mov dword [ebx + 0x78], edi
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
mov dword [ebx + 0x74], ecx
mov eax, dword [ebx + 8]
xor ecx, ecx
cmp byte [eax], 0x28
sete cl
mov dword [ebx + 0x58], ecx
jmp 0x5a15c6
mov ecx, dword [ebx + 8]
movzx eax, byte [ecx]
sub eax, 0x21
inc ecx
mov dword [ebx + 8], ecx
mov ecx, eax
and ecx, 1
mov dword [ebx + 0x58], ecx
movsx ecx, byte [eax + 0x62bc74]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x62bc7c]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x5a1621
mov dword [ebx + 0x74], 0x7fffffff
mov eax, dword [esi + 0x44]
sub eax, dword [ebx + 4]
cmp dword [ebx + 0x78], eax
jg 0x5a4052
mov eax, dword [ebx + 8]
movzx eax, byte [eax]
mov dword [ebx + 0x68], eax
inc dword [ebx + 8]
test byte [ebx + 0x10], 1
je 0x5a1754
cmp dword [ebp + 0x38], 0
mov eax, dword [ebx + 0x68]
mov ecx, dword [esi + 0x14]
movzx eax, byte [eax + ecx]
mov dword [ebx + 0x68], eax
je 0x5a16eb
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x5a1715
mov edi, dword [ebx + 4]
movzx edx, byte [edi]
mov eax, edx
inc edi
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x5a16c6
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x63fab0]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp], ecx
mov ecx, dword [eax*4 + 0x63fa98]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp]
shl edx, cl
test eax, eax
jle 0x5a16c6
mov dword [ebp + 0x44], eax
sub dword [ebp], 6
mov ecx, dword [ebp]
xor eax, eax
mov al, byte [edi]
and eax, 0x3f
shl eax, cl
or edx, eax
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a16ab
cmp edx, 0x100
jge 0x5a16d5
mov eax, dword [esi + 0x14]
movzx edx, byte [eax + edx]
cmp dword [ebx + 0x68], edx
je 0x5a4052
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x5a166c
jmp 0x5a1715
xor ecx, ecx
inc ecx
cmp dword [ebx + 0x78], ecx
jl 0x5a1715
mov eax, dword [ebx + 4]
movzx edx, byte [eax]
mov edi, dword [esi + 0x14]
movzx edx, byte [edx + edi]
mov edi, dword [ebx + 0x68]
inc eax
cmp edi, edx
mov dword [ebx + 4], eax
je 0x5a4052
inc ecx
cmp ecx, dword [ebx + 0x78]
jle 0x5a16f3
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x59ff9a
xor eax, eax
cmp dword [ebx + 0x58], eax
je 0x5a3055
cmp dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x78]
push 0x1d8
mov dword [ebx + 0x6c], eax
je 0x5a2fc9
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a2fa8
cmp dword [ebp + 0x38], 0
je 0x5a17d9
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x5a17fc
mov edi, dword [ebx + 4]
movzx edx, byte [edi]
mov eax, edx
inc edi
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x5a17c3
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x63fab0]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x30], ecx
mov ecx, dword [eax*4 + 0x63fa98]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x30]
shl edx, cl
test eax, eax
jle 0x5a17c3
mov dword [ebp + 0x44], eax
sub dword [ebp - 0x30], 6
mov ecx, dword [ebp - 0x30]
xor eax, eax
mov al, byte [edi]
and eax, 0x3f
shl eax, cl
or edx, eax
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a17a8
cmp dword [ebx + 0x68], edx
je 0x5a4052
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x5a1769
jmp 0x5a17fc
xor ecx, ecx
inc ecx
cmp dword [ebx + 0x78], ecx
jl 0x5a17fc
mov eax, dword [ebx + 4]
movzx edx, byte [eax]
mov edi, dword [ebx + 0x68]
inc eax
cmp edi, edx
mov dword [ebx + 4], eax
je 0x5a4052
inc ecx
cmp ecx, dword [ebx + 0x78]
jle 0x5a17e1
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x59ff9a
xor eax, eax
cmp dword [ebx + 0x58], eax
je 0x5a332e
cmp dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x78]
push 0x1d8
mov dword [ebx + 0x6c], eax
je 0x5a32af
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a3294
mov eax, dword [ebx + 8]
movzx edi, byte [eax + 2]
xor ecx, ecx
mov ch, byte [eax + 1]
mov eax, ecx
or eax, edi
mov dword [ebx + 0x74], eax
mov dword [ebx + 0x78], eax
mov dword [ebx + 0x58], edx
add dword [ebx + 8], 3
jmp 0x5a18af
mov dword [ebx + 0x78], edi
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
mov dword [ebx + 0x74], ecx
mov eax, dword [ebx + 8]
xor ecx, ecx
cmp byte [eax], 0x31
sete cl
mov dword [ebx + 0x58], ecx
jmp 0x5a1854
mov ecx, dword [ebx + 8]
movzx eax, byte [ecx]
sub eax, 0x2a
inc ecx
mov dword [ebx + 8], ecx
mov ecx, eax
and ecx, 1
mov dword [ebx + 0x58], ecx
movsx ecx, byte [eax + 0x62bc74]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x62bc7c]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x5a18af
mov dword [ebx + 0x74], 0x7fffffff
mov eax, dword [ebx + 8]
movzx eax, byte [eax]
mov dword [ebx + 0x64], eax
inc dword [ebx + 8]
mov eax, dword [esi + 0x44]
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 0x78]
mov edi, eax
sub edi, edx
cmp ecx, edi
jg 0x5a4052
test ecx, ecx
jle 0x5a1e64
cmp dword [ebp + 0x38], 0
je 0x5a1cbb
mov edi, dword [ebx + 0x64]
add edi, 0xfffffffb
cmp edi, 7
ja case.default.0x5a3d0b
jmp dword [edi*4 + 0x5a449c]
xor edx, edx
inc edx
cmp ecx, edx
mov dword [ebp + 0x48], edx
jl 0x5a1e64
mov ecx, dword [ebx + 4]
cmp ecx, eax
jae 0x5a4052
movzx edx, byte [ecx]
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
lea edi, [ecx + 1]
mov dword [ebx + 4], edi
jne 0x5a196a
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x63fab0]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp + 0x24], ecx
mov ecx, dword [eax*4 + 0x63fa98]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp + 0x24]
shl edx, cl
test eax, eax
jle 0x5a196a
mov dword [ebp + 0x44], eax
sub dword [ebp + 0x24], 6
mov ecx, dword [ebp + 0x24]
xor eax, eax
mov al, byte [edi]
and eax, 0x3f
shl eax, cl
or edx, eax
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a194f
push edx
call fcn.0059fe58
test al, al
pop ecx
je 0x5a197f
test byte [ebx + 0x10], 4
je 0x5a4052
mov eax, dword [esi + 0x44]
cmp edi, eax
jae 0x5a19a0
mov edi, dword [ebx + 4]
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x5a19a0
lea ecx, [edi + 1]
mov dword [ebx + 4], ecx
mov eax, dword [esi + 0x44]
cmp ecx, eax
jb 0x5a1986
inc dword [ebp + 0x48]
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebx + 0x78]
jle 0x5a1906
jmp 0x5a1e64
add ecx, edx
mov dword [ebx + 4], ecx
jmp 0x5a1e64
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x48], eax
jl 0x5a1e64
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x5a4052
movzx edx, byte [edi]
mov eax, edx
inc edi
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x5a1a2f
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x63fab0]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x48], ecx
mov ecx, dword [eax*4 + 0x63fa98]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x48]
shl edx, cl
test eax, eax
jle 0x5a1a2f
mov dword [ebp + 0x44], eax
sub dword [ebp - 0x48], 6
mov ecx, dword [ebp - 0x48]
xor eax, eax
mov al, byte [edi]
and eax, 0x3f
shl eax, cl
or edx, eax
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a1a14
cmp edx, 0x80
jge 0x5a1a44
mov eax, dword [esi + 0x18]
test byte [edx + eax], 4
jne 0x5a4052
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x5a19cc
jmp 0x5a1e64
xor edx, edx
inc edx
cmp ecx, edx
jl 0x5a1e64
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a4052
mov cl, byte [eax]
cmp cl, 0x80
jae 0x5a4052
mov edi, dword [esi + 0x18]
movzx ecx, cl
test byte [ecx + edi], 4
lea eax, [eax + 1]
mov dword [ebx + 4], eax
je 0x5a4052
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x5a1a63
jmp 0x5a1e64
xor edx, edx
inc edx
cmp ecx, edx
mov dword [ebp + 0x48], edx
jl 0x5a1e64
mov ecx, dword [ebx + 4]
cmp ecx, eax
jae 0x5a4052
mov al, byte [ecx]
cmp al, 0x80
lea edi, [ecx + 1]
jae 0x5a1ad2
mov edx, dword [esi + 0x18]
movzx eax, al
test byte [eax + edx], 1
mov dword [ebx + 4], edi
jne 0x5a4052
jmp 0x5a1b37
movzx edx, al
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x5a1b28
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x63fab0]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax*4 + 0x63fa98]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x10]
shl edx, cl
test eax, eax
jle 0x5a1b28
mov dword [ebp + 0x44], eax
sub dword [ebp - 0x10], 6
mov ecx, dword [ebp - 0x10]
xor eax, eax
mov al, byte [edi]
and eax, 0x3f
shl eax, cl
or edx, eax
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a1b0d
push edx
call fcn.0059fe7c
cmp al, 1
pop ecx
je 0x5a4052
mov eax, dword [esi + 0x44]
cmp edi, eax
jae 0x5a1b58
mov edi, dword [ebx + 4]
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x5a1b58
lea ecx, [edi + 1]
mov dword [ebx + 4], ecx
mov eax, dword [esi + 0x44]
cmp ecx, eax
jb 0x5a1b3e
inc dword [ebp + 0x48]
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebx + 0x78]
jle 0x5a1aa9
jmp 0x5a1e64
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x48], eax
jl 0x5a1e64
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a4052
mov cl, byte [eax]
cmp cl, 0x80
jae 0x5a1b9f
mov edx, dword [esi + 0x18]
movzx ecx, cl
test byte [ecx + edx], 1
lea eax, [eax + 1]
mov dword [ebx + 4], eax
jmp 0x5a1c01
movzx edx, cl
lea edi, [eax + 1]
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x5a1bf8
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x63fab0]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x38], ecx
mov ecx, dword [eax*4 + 0x63fa98]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x38]
shl edx, cl
test eax, eax
jle 0x5a1bf8
mov dword [ebp + 0x44], eax
sub dword [ebp - 0x38], 6
mov ecx, dword [ebp - 0x38]
xor eax, eax
mov al, byte [edi]
and eax, 0x3f
shl eax, cl
or edx, eax
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a1bdd
push edx
call fcn.0059fe7c
pop ecx
test al, al
je 0x5a4052
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x5a1b7a
jmp 0x5a1e64
xor edx, edx
inc edx
cmp ecx, edx
jl 0x5a1e64
mov ecx, dword [ebx + 4]
cmp ecx, eax
jae 0x5a4052
mov al, byte [ecx]
cmp al, 0x80
jae 0x5a1c4d
mov edi, dword [esi + 0x18]
movzx eax, al
test byte [eax + edi], 0x10
lea ecx, [ecx + 1]
mov dword [ebx + 4], ecx
jne 0x5a4052
mov eax, dword [esi + 0x44]
cmp dword [ebx + 4], eax
jae 0x5a1c6d
mov edi, dword [ebx + 4]
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x5a1c6d
inc edi
mov dword [ebx + 4], edi
mov eax, dword [esi + 0x44]
cmp edi, eax
jb 0x5a1c55
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x5a1c26
jmp 0x5a1e64
xor edx, edx
inc edx
cmp ecx, edx
jl 0x5a1e64
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a4052
mov cl, byte [eax]
cmp cl, 0x80
jae 0x5a4052
mov edi, dword [esi + 0x18]
movzx ecx, cl
test byte [ecx + edi], 0x10
lea eax, [eax + 1]
mov dword [ebx + 4], eax
je 0x5a4052
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x5a1c83
jmp 0x5a1e64
mov eax, dword [ebx + 0x64]
add eax, 0xfffffffb
cmp eax, 7
ja case.default.0x5a3d0b
jmp dword [eax*4 + 0x5a44bc]
test byte [ebx + 0x10], 4
jne case.0x5a1cca.12
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x48], eax
jl 0x5a1e64
mov eax, dword [ebx + 4]
movzx edx, byte [eax]
lea edi, [eax + 1]
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x5a1d45
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x63fab0]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax*4 + 0x63fa98]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x18]
shl edx, cl
test eax, eax
jle 0x5a1d45
mov dword [ebp + 0x44], eax
sub dword [ebp - 0x18], 6
mov ecx, dword [ebp - 0x18]
xor eax, eax
mov al, byte [edi]
and eax, 0x3f
shl eax, cl
or edx, eax
inc edi
dec dword [ebp + 0x44]
mov dword [ebx + 4], edi
jne 0x5a1d2a
push edx
call fcn.0059fe58
test al, al
pop ecx
jne 0x5a4052
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x5a1ce9
jmp 0x5a1e64
xor edx, edx
inc edx
cmp ecx, edx
jl 0x5a1e64
mov eax, dword [ebx + 4]
movzx ecx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [ecx + edi], 4
lea eax, [eax + 1]
mov dword [ebx + 4], eax
jne 0x5a4052
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x5a1d6f
jmp 0x5a1e64
xor edx, edx
inc edx
cmp ecx, edx
jl 0x5a1e64
mov eax, dword [ebx + 4]
movzx ecx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [ecx + edi], 4
lea eax, [eax + 1]
mov dword [ebx + 4], eax
je 0x5a4052
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x5a1d9e
jmp 0x5a1e64
xor edx, edx
inc edx
cmp ecx, edx
jl 0x5a1e64
mov eax, dword [ebx + 4]
movzx ecx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [ecx + edi], 1
lea eax, [eax + 1]
mov dword [ebx + 4], eax
jne 0x5a4052
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x5a1dcd
jmp 0x5a1e64
xor edx, edx
inc edx
cmp ecx, edx
jl 0x5a1e64
mov eax, dword [ebx + 4]
movzx ecx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [ecx + edi], 1
lea eax, [eax + 1]
mov dword [ebx + 4], eax
je 0x5a4052
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x5a1df5
jmp 0x5a1e64
xor edx, edx
inc edx
cmp ecx, edx
jl 0x5a1e64
mov eax, dword [ebx + 4]
movzx ecx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [ecx + edi], 0x10
lea eax, [eax + 1]
mov dword [ebx + 4], eax
jne 0x5a4052
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x5a1e1d
jmp 0x5a1e64
xor edx, edx
inc edx
cmp ecx, edx
jl 0x5a1e64
mov eax, dword [ebx + 4]
movzx ecx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [ecx + edi], 0x10
lea eax, [eax + 1]
mov dword [ebx + 4], eax
je 0x5a4052
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x5a1e45
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x59ff9a
xor eax, eax
cmp dword [ebx + 0x58], eax
je 0x5a3742
cmp dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x78]
push 0x1d8
mov dword [ebx + 0x6c], eax
je 0x5a3635
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a3614
mov eax, dword [esi + 0xc]
sub eax, dword [ebx + 0x7c]
cmp byte [0x67b52c], 0
mov ecx, dword [esi + 8]
mov eax, dword [ecx + eax*4]
mov dword [ebx + 0x94], eax
mov eax, dword [esi + 0x54]
mov dword [ebx + 0x88], eax
je 0x5a1f16
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x80]
cmp eax, ecx
jle 0x5a1ed8
sub eax, ecx
jmp 0x5a1edb
push 2
pop eax
mov edx, dword [ebp + 0x70]
mov dword [ebx + 0x188], eax
mov edx, dword [edx + 8]
mov ecx, eax
mov eax, dword [ebx + 0x80]
lea esi, [edx + eax*4]
lea edi, [ebx + 0x110]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x80]
inc eax
inc eax
jmp 0x5a1f0f
mov ecx, dword [ebp + 0x70]
mov ecx, dword [ecx + 8]
or dword [ecx + eax*4], 0xffffffff
inc eax
cmp eax, dword [ebx + 0xc]
jl 0x5a1f04
jmp 0x5a1f3f
mov edx, dword [esi + 8]
lea eax, [ebx + 0x80]
mov ecx, dword [eax]
mov ecx, dword [edx + ecx*4]
mov dword [ebx + 0x114], ecx
mov eax, dword [eax]
mov ecx, dword [esi + 8]
mov eax, dword [ecx + eax*4 + 4]
mov dword [ebx + 0x118], eax
mov dword [ebx + 0x188], edi
mov eax, dword [ebp + 0x70]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 0xc]
sub ecx, dword [eax + 0x40]
sub edx, dword [ebx + 0x7c]
mov eax, dword [eax + 8]
mov dword [eax + edx*4], ecx
jmp 0x5a1f8f
mov edi, dword [ebp + 0x70]
mov ebx, dword [edi + 0x64]
mov esi, dword [ebx + 0x194]
test esi, esi
mov dword [ebp + 0x4c], ebx
jne 0x5a3f1d
mov eax, dword [ebx + 0x88]
mov dword [edi + 0x54], eax
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
mov dword [ebx + 8], eax
cmp byte [eax], 0x41
jne 0x5a3f45
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xa4], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a1f56
mov ebx, dword [ebp - 0xa4]
mov eax, dword [ebp + 0x4c]
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
mov ecx, dword [eax + 8]
add ecx, 3
jmp 0x5a24a2
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a2028
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x5a3fd4
mov eax, dword [esi + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
mov dword [esi + 8], eax
cmp byte [eax], 0x41
jne 0x5a42e1
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xb8], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a1fe5
mov ebx, dword [ebp - 0xb8]
jmp 0x5a1fbb
mov edi, dword [ebx + 8]
cmp byte [edi + 3], 0x4c
jne 0x5a20e5
xor eax, eax
mov ah, byte [edi + 4]
mov al, byte [edi + 5]
add eax, eax
cmp eax, 0x1fffe
mov dword [ebx + 0x80], eax
jne 0x5a2073
xor edx, edx
cmp dword [esi + 0x5c], edx
setne dl
jmp 0x5a2083
cmp eax, dword [ebx + 0xc]
jge 0x5a2081
mov ecx, dword [esi + 8]
cmp dword [ecx + eax*4], 0
jge 0x5a2083
xor edx, edx
push 0x1d8
mov dword [ebx + 0x54], edx
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xf0], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a4005
mov eax, dword [ebp + 0x4c]
mov ecx, dword [eax + 4]
mov ebx, dword [ebp - 0xf0]
mov dword [ebx + 4], ecx
cmp dword [eax + 0x54], 0
je 0x5a20ca
push 6
pop ecx
jmp 0x5a20d8
mov esi, dword [eax + 8]
xor ecx, ecx
mov ch, byte [esi + 1]
mov cl, byte [esi + 2]
add ecx, 3
mov edx, dword [eax + 8]
add edx, ecx
mov dword [ebx + 8], edx
jmp 0x5a24a5
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x114], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a213d
mov eax, dword [ebp + 0x4c]
mov ecx, dword [eax + 4]
mov ebx, dword [ebp - 0x114]
mov dword [ebx + 4], ecx
mov edx, dword [eax + 8]
push 3
pop ecx
add edx, ecx
mov dword [ebx + 8], edx
mov edx, dword [eax + 0xc]
mov dword [ebx + 0xc], edx
mov edx, dword [eax + 0x10]
mov dword [ebx + 0x10], edx
and dword [ebx + 0x14], 0
mov dword [ebx + 0x18], ecx
jmp 0x5a3edf
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
cmp ebx, 1
mov dword [ebp + 0x4c], esi
jne 0x5a2179
mov eax, dword [esi + 8]
xor ecx, ecx
mov ch, byte [eax + 4]
mov cl, byte [eax + 5]
lea eax, [ecx + eax + 3]
jmp 0x5a216f
mov eax, dword [esi + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
mov dword [esi + 8], eax
cmp byte [eax], 0x41
je 0x5a2162
jmp 0x5a2191
test ebx, ebx
jne 0x5a3fd4
mov eax, dword [esi + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add ecx, eax
mov dword [esi + 8], ecx
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0xbc], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a4034
mov ebx, dword [ebp - 0xbc]
jmp 0x5a1fbb
mov ebx, dword [ebp - 0xc8]
mov eax, dword [ebp + 0x4c]
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
mov ecx, dword [eax + 8]
add ecx, 3
mov dword [ebx + 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebx + 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x10], ecx
and dword [ebx + 0x14], 0
jmp 0x5a24b7
mov ebx, dword [ebp - 0x108]
jmp 0x5a21cc
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
mov eax, dword [esi + 0x3c]
add eax, ecx
mov dword [ebx + 0x1c], eax
movzx eax, byte [eax]
add eax, 0xffffffb0
cmp eax, 0x64
mov dword [ebx + 0x3c], eax
jle 0x5a222a
mov eax, dword [ebx + 0x1c]
xor ecx, ecx
mov ch, byte [eax + 4]
mov cl, byte [eax + 5]
mov dword [ebx + 0x3c], ecx
mov ecx, dword [esi + 0x5c]
lea eax, [ebx + 0x38]
mov dword [eax], ecx
mov dword [esi + 0x5c], eax
add dword [ebx + 8], 3
mov eax, dword [ebx + 8]
mov dword [ebx + 0x40], eax
mov eax, dword [esi + 0xc]
cmp eax, 0x1e
mov dword [ebx + 0x4c], eax
jg 0x5a2255
lea eax, [ebx + 0x98]
mov dword [ebx + 0x48], eax
jmp 0x5a226b
shl eax, 2
push eax
call dword [0x67b51c]
test eax, eax
pop ecx
mov dword [ebx + 0x48], eax
je 0x5a40b3
mov ecx, dword [ebx + 0x4c]
mov eax, dword [ebp + 0x70]
mov esi, dword [eax + 8]
mov edi, dword [ebx + 0x48]
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 0x48]
mov dword [ebx + 0x44], ecx
mov ecx, dword [ebx + 4]
mov dword [eax + 0x48], ecx
jmp 0x5a22ef
mov edx, dword [ebp + 0x70]
mov ebx, dword [edx + 0x64]
mov esi, dword [ebx + 0x194]
cmp esi, 1
mov dword [ebp + 0x4c], ebx
je 0x5a40dc
test esi, esi
jne 0x5a411f
lea eax, [ebx + 0x38]
mov dword [edx + 0x5c], eax
mov ecx, dword [ebx + 0x4c]
mov esi, dword [ebx + 0x48]
mov edi, dword [edx + 8]
shl ecx, 2
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x1c]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
mov dword [ebx + 0x1c], eax
cmp byte [eax], 0x41
jne 0x5a4147
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xb4], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a2296
mov eax, dword [ebp + 0x4c]
mov ecx, dword [eax + 4]
mov ebx, dword [ebp - 0xb4]
mov dword [ebx + 4], ecx
mov ecx, dword [eax + 0x1c]
jmp 0x5a1fc7
mov ebx, dword [ebp - 0xd0]
jmp 0x5a1fbb
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x5a3fd4
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xd8], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a4182
mov ebx, dword [ebp - 0xd8]
jmp 0x5a2496
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x118], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a23ae
mov ebx, dword [ebp - 0x118]
jmp 0x5a2496
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x5a3fd4
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xe0], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a4182
mov ebx, dword [ebp - 0xe0]
jmp 0x5a2509
mov eax, dword [ebp + 0x4c]
mov ecx, dword [eax + 4]
mov ebx, dword [ebp - 0x100]
mov dword [ebx + 4], ecx
mov ecx, dword [eax + 0x28]
jmp 0x5a24a2
mov eax, dword [ebp + 0x4c]
mov ecx, dword [eax + 4]
mov ebx, dword [ebp - 0xe8]
mov dword [ebx + 4], ecx
mov ecx, dword [eax + 0x28]
jmp 0x5a1fc7
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x5a3fd4
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xc0], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a41d4
mov ebx, dword [ebp - 0xc0]
jmp 0x5a2496
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xc4], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a24c3
mov ebx, dword [ebp - 0xc4]
mov eax, dword [ebp + 0x4c]
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
mov ecx, dword [eax + 0x30]
mov dword [ebx + 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebx + 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x10], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x18], 2
jmp 0x5a3edf
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x5a3fd4
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xcc], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a4211
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebp + 0x4c]
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
mov ecx, dword [eax + 8]
add ecx, 3
jmp 0x5a3ec6
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x5a3fd4
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x5a42e1
push dword [esi + 0x10]
mov ebx, dword [esi + 0x70]
mov edi, dword [esi + 4]
mov ecx, dword [ebp + 0x70]
mov eax, dword [esi + 0x80]
push edi
mov edx, ebx
call fcn.0059fea6
test eax, eax
pop ecx
pop ecx
je 0x5a42de
add ebx, edi
mov dword [esi + 4], ebx
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x64], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a251d
mov ebx, dword [ebp - 0x64]
jmp 0x5a3eba
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp + 0x48], eax
jmp 0x5a25d2
mov eax, dword [ebx + 4]
push dword [ebx + 0x10]
mov edi, dword [ebx + 0x70]
push eax
mov eax, dword [ebx + 0x80]
mov ecx, esi
mov edx, edi
call fcn.0059fea6
test eax, eax
pop ecx
pop ecx
je 0x5a25d7
mov eax, dword [ebx + 4]
add edi, eax
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [ebx + 4], edi
cmp eax, dword [ebx + 0x74]
jl 0x5a25a5
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x5a4052
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xd4], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a2628
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x5a2995
mov eax, dword [ebx + 0x70]
sub dword [ebx + 4], eax
jmp 0x5a25d7
mov ebx, dword [ebp - 0xd4]
jmp 0x5a3eba
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x5a3fd4
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x5a42e1
mov eax, dword [esi + 4]
cmp eax, dword [edi + 0x44]
jae 0x5a42e1
movzx ebx, byte [eax]
mov ecx, ebx
inc eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [esi + 4], eax
jne 0x5a26b8
mov ecx, ebx
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, ebx
lea edi, [edx + edx*2]
shl edi, 1
mov ebx, ecx
mov ecx, edi
shl ebx, cl
test edx, edx
jle 0x5a26b5
mov dword [ebp + 0x44], edx
xor edx, edx
mov dl, byte [eax]
sub edi, 6
mov ecx, edi
and edx, 0x3f
shl edx, cl
or ebx, edx
inc eax
dec dword [ebp + 0x44]
mov dword [esi + 4], eax
jne 0x5a269c
mov edi, dword [ebp + 0x70]
cmp ebx, 0xff
jle 0x5a26c9
cmp dword [esi + 0x84], 0x3b
jmp 0x5a26e1
mov eax, ebx
push 8
cdq
pop ecx
idiv ecx
mov edx, dword [esi + 0x24]
mov ecx, ebx
xor ebx, ebx
and ecx, 7
inc ebx
shl ebx, cl
test byte [eax + edx], bl
je 0x5a42e1
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x80], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a2633
mov ebx, dword [ebp - 0x80]
jmp 0x5a3eba
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a2799
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x5a4345
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x5a2b74
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x5a2b74
movzx ecx, byte [eax]
inc eax
mov dword [esi + 4], eax
mov eax, ecx
push 8
cdq
pop edi
idiv edi
mov edx, dword [esi + 0x24]
mov dword [ebp + 0x40], ebx
xor ebx, ebx
inc ebx
and ecx, 7
shl ebx, cl
test byte [eax + edx], bl
mov ebx, dword [ebp + 0x40]
je 0x5a2b74
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0xa8], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a272a
mov ebx, dword [ebp - 0xa8]
jmp 0x5a3eba
cmp dword [ebp + 0x38], eax
mov ecx, dword [ebx + 4]
mov dword [ebx + 0x2c], ecx
je 0x5a28fe
mov edi, dword [ebx + 0x78]
jmp 0x5a288a
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
mov dword [ebp + 0x2c], 1
jae 0x5a28d3
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5a2849
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
lea ecx, [edi + edi*2]
and edx, eax
shl ecx, 1
shl edx, cl
cmp edi, 1
mov dword [ebp - 0x58], 1
mov eax, edx
mov dword [ebp + 0x3c], eax
jl 0x5a2842
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x58]
movzx edx, byte [edx + eax]
mov eax, dword [ebp + 0x3c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
or eax, edx
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], edi
mov dword [ebp + 0x3c], eax
jle 0x5a2820
inc edi
mov dword [ebp + 0x2c], edi
mov edi, dword [ebp + 0x48]
cmp eax, 0xff
jle 0x5a285b
cmp dword [ebx + 0x84], 0x3b
je 0x5a28d3
jmp 0x5a287e
xor edx, edx
mov ecx, eax
and ecx, 7
inc edx
shl edx, cl
push 8
pop ecx
mov dword [ebp + 0x40], edx
cdq
idiv ecx
mov ecx, dword [ebx + 0x24]
mov al, byte [eax + ecx]
mov ecx, dword [ebp + 0x40]
test al, cl
je 0x5a28d3
mov esi, dword [ebp + 0x70]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x2c]
add ecx, eax
mov dword [ebx + 4], ecx
inc edi
cmp edi, dword [ebx + 0x74]
mov dword [ebp + 0x48], edi
jl 0x5a27d1
jmp 0x5a28d3
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x5a2995
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [ebx + 4], eax
je 0x5a4052
jmp 0x5a28c9
dec eax
mov dword [ebx + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x5a28c5
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x60], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a2898
mov ebx, dword [ebp - 0x60]
jmp 0x5a3eba
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
mov dword [ebp + 0x48], eax
jge 0x5a294d
jmp 0x5a290e
mov esi, dword [ebp + 0x70]
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x5a294d
movzx esi, byte [edi]
xor eax, eax
inc eax
mov ecx, esi
and ecx, 7
shl eax, cl
push 8
pop ecx
mov dword [ebp + 0x40], eax
mov eax, esi
cdq
idiv ecx
mov ecx, dword [ebx + 0x24]
mov al, byte [eax + ecx]
mov ecx, dword [ebp + 0x40]
test al, cl
je 0x5a294a
inc edi
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [ebx + 4], edi
cmp eax, dword [ebx + 0x74]
jl 0x5a290b
mov esi, dword [ebp + 0x70]
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x5a4052
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xdc], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a29b7
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
dec dword [ebx + 4]
test edi, edi
mov dword [ebp + 0x4c], ebx
je 0x5a294d
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
test ebx, ebx
pop ecx
je 0x5a402d
mov dword [ebx + 0x194], edi
jmp 0x5a436f
mov ebx, dword [ebp - 0xdc]
jmp 0x5a3eba
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x5a3fd4
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x5a42e1
mov eax, dword [esi + 4]
cmp eax, dword [edi + 0x44]
jae 0x5a42e1
movzx ebx, byte [eax]
mov ecx, ebx
inc eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [esi + 4], eax
jne 0x5a2a47
mov ecx, ebx
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, ebx
lea edi, [edx + edx*2]
shl edi, 1
mov ebx, ecx
mov ecx, edi
shl ebx, cl
test edx, edx
jle 0x5a2a44
mov dword [ebp + 0x2c], edx
xor edx, edx
mov dl, byte [eax]
sub edi, 6
mov ecx, edi
and edx, 0x3f
shl edx, cl
or ebx, edx
inc eax
dec dword [ebp + 0x2c]
mov dword [esi + 4], eax
jne 0x5a2a2b
mov edi, dword [ebp + 0x70]
push dword [esi + 0x24]
push ebx
call fcn.005d03c2
test eax, eax
pop ecx
pop ecx
je 0x5a42e1
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x6c], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a29c2
mov ebx, dword [ebp - 0x6c]
jmp 0x5a3eba
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov edi, dword [ebx + 0x78]
jmp 0x5a2b2b
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
mov dword [ebp - 0x94], 1
jae 0x5a2b37
movzx eax, byte [eax]
mov dword [ebp + 0x3c], eax
and ax, 0xc0
cmp al, 0xc0
jne 0x5a2b10
mov eax, dword [ebp + 0x3c]
and eax, 0x3f
movzx edi, byte [eax + 0x63fab0]
mov eax, dword [edi*4 + 0x63fa98]
and eax, dword [ebp + 0x3c]
lea ecx, [edi + edi*2]
shl ecx, 1
shl eax, cl
mov dword [ebp + 0x3c], eax
xor eax, eax
inc eax
cmp edi, eax
mov dword [ebp + 0x20], eax
jl 0x5a2b06
mov edx, dword [ebp + 0x20]
mov eax, dword [ebx + 4]
movzx eax, byte [edx + eax]
sub ecx, 6
and eax, 0x3f
shl eax, cl
or dword [ebp + 0x3c], eax
inc dword [ebp + 0x20]
cmp dword [ebp + 0x20], edi
jle 0x5a2ae9
inc edi
mov dword [ebp - 0x94], edi
mov edi, dword [ebp + 0x48]
push dword [ebx + 0x24]
push dword [ebp + 0x3c]
call fcn.005d03c2
test eax, eax
pop ecx
pop ecx
je 0x5a2b37
mov eax, dword [ebp - 0x94]
add dword [ebx + 4], eax
inc edi
cmp edi, dword [ebx + 0x74]
mov dword [ebp + 0x48], edi
jl 0x5a2a9a
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a2bbc
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x5a4345
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [esi + 4], eax
jne 0x5a2b9e
mov eax, esi
mov esi, dword [esi]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x67b528]
test esi, esi
pop ecx
je 0x5a3fcd
and dword [esi + 0x194], 0
mov dword [ebx + 0x64], esi
jmp 0x5a3ff0
dec eax
mov dword [esi + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x5a2b9a
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x74], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a2b4d
mov ebx, dword [ebp - 0x74]
jmp 0x5a3eba
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x5a2995
mov eax, dword [ebx + 0x6c]
cmp eax, dword [ebx + 0x74]
jge 0x5a4052
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a4052
mov ecx, dword [ebx + 0x70]
mov edi, dword [ebx + 0x20]
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a2c15
mov ecx, dword [ebx + 0x70]
jmp 0x5a2c32
mov ecx, dword [ebp + 0x34]
test ecx, ecx
je 0x5a4162
lea edi, [ebp + 0x50]
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a4162
mov ecx, dword [ebp + 0x34]
add ecx, eax
mov dword [ebx + 4], ecx
inc dword [ebx + 0x6c]
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x7c], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a2bd3
mov ebx, dword [ebp - 0x7c]
jmp 0x5a3eba
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp + 0x48], eax
jmp 0x5a2ca2
mov ecx, dword [ebp + 0x70]
mov eax, dword [ebx + 0x70]
mov ecx, dword [ecx + 0x44]
mov esi, dword [ebx + 4]
sub ecx, eax
cmp esi, ecx
ja 0x5a2ca7
mov edi, dword [ebx + 0x20]
mov ecx, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a2ca7
mov ecx, dword [ebx + 4]
add eax, ecx
inc dword [ebp + 0x48]
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x74]
jl 0x5a2c77
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x5a4162
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xe4], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a2cf8
mov edi, dword [ebp + 0x70]
mov ebx, dword [edi + 0x64]
mov esi, dword [ebx + 0x194]
test esi, esi
mov dword [ebp + 0x4c], ebx
jne 0x5a3f1d
mov eax, dword [ebx + 0x70]
sub dword [ebx + 4], eax
jmp 0x5a2ca7
mov ebx, dword [ebp - 0xe4]
jmp 0x5a3eba
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x5a4345
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x5a2b74
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x5a2b74
movzx ecx, byte [eax]
mov edx, dword [ebx + 0x14]
movzx ecx, byte [edx + ecx]
mov edx, dword [esi + 0x68]
inc eax
cmp edx, ecx
mov dword [esi + 4], eax
jne 0x5a2b74
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push edi
push esi
mov dword [ebp - 0x9c], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a2d03
mov ebx, dword [ebp - 0x9c]
jmp 0x5a3eba
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov ecx, dword [ebx + 0x78]
jmp 0x5a2da5
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a2daa
movzx edx, byte [eax]
mov edi, dword [esi + 0x14]
movzx edx, byte [edx + edi]
cmp dword [ebx + 0x68], edx
jne 0x5a2daa
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x5a2d89
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x5a4052
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xec], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a2df7
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
dec dword [ebx + 4]
test edi, edi
mov dword [ebp + 0x4c], ebx
je 0x5a2daa
jmp 0x5a2995
mov ebx, dword [ebp - 0xec]
jmp 0x5a3eba
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x5a4345
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x5a2b74
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x5a2b74
movzx ecx, byte [eax]
mov edx, dword [esi + 0x68]
inc eax
cmp edx, ecx
mov dword [esi + 4], eax
jne 0x5a2b74
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push edi
push esi
mov dword [ebp - 0x84], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a2e02
mov ebx, dword [ebp - 0x84]
jmp 0x5a3eba
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov ecx, dword [ebx + 0x78]
jmp 0x5a2e96
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a2e9b
movzx edx, byte [eax]
cmp dword [ebx + 0x68], edx
jne 0x5a2e9b
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x5a2e81
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x5a4052
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xf4], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a2ee8
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
dec dword [ebx + 4]
test edi, edi
mov dword [ebp + 0x4c], ebx
je 0x5a2e9b
jmp 0x5a2995
mov ebx, dword [ebp - 0xf4]
jmp 0x5a3eba
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x5a3fd4
mov eax, dword [esi + 4]
movzx ebx, byte [eax]
mov ecx, ebx
inc eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [esi + 4], eax
jne 0x5a2f63
mov ecx, ebx
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, ebx
lea edi, [edx + edx*2]
shl edi, 1
mov ebx, ecx
mov ecx, edi
shl ebx, cl
test edx, edx
jle 0x5a2f60
mov dword [ebp + 0x34], edx
xor edx, edx
mov dl, byte [eax]
sub edi, 6
mov ecx, edi
and edx, 0x3f
shl edx, cl
or ebx, edx
inc eax
dec dword [ebp + 0x34]
mov dword [esi + 4], eax
jne 0x5a2f47
mov edi, dword [ebp + 0x70]
cmp ebx, 0x100
jge 0x5a2f72
mov ecx, dword [edi + 0x14]
movzx ebx, byte [ecx + ebx]
mov ecx, dword [esi + 0x6c]
cmp ecx, dword [esi + 0x74]
jge 0x5a42e1
cmp eax, dword [edi + 0x44]
jae 0x5a42e1
cmp dword [esi + 0x68], ebx
je 0x5a42e1
inc ecx
push 0x1d8
mov dword [esi + 0x6c], ecx
call dword [0x67b524]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0xac], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a2ef3
mov ebx, dword [ebp - 0xac]
jmp 0x5a3eba
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a3038
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x5a4345
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x5a2b74
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x5a2b74
movzx ecx, byte [eax]
mov edx, dword [ebx + 0x14]
movzx ecx, byte [edx + ecx]
mov edx, dword [esi + 0x68]
inc eax
cmp edx, ecx
mov dword [esi + 4], eax
je 0x5a2b74
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push edi
push esi
mov dword [ebp - 0x8c], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a2fda
mov ebx, dword [ebp - 0x8c]
jmp 0x5a3eba
cmp dword [ebp + 0x38], eax
mov ecx, dword [ebx + 4]
mov dword [ebx + 0x2c], ecx
je 0x5a316f
mov edi, dword [ebx + 0x78]
jmp 0x5a30fb
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x5a3144
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x5a30df
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
lea ecx, [edi + edi*2]
and edx, eax
shl ecx, 1
shl edx, cl
cmp edi, 1
mov dword [ebp + 0x1c], 1
mov eax, edx
mov dword [ebp + 0x30], eax
jl 0x5a30d9
mov eax, dword [ebx + 4]
mov edx, dword [ebp + 0x1c]
movzx edx, byte [eax + edx]
mov eax, dword [ebp + 0x30]
sub ecx, 6
and edx, 0x3f
shl edx, cl
or eax, edx
inc dword [ebp + 0x1c]
cmp dword [ebp + 0x1c], edi
mov dword [ebp + 0x30], eax
jle 0x5a30b7
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x5a30ed
mov edx, dword [esi + 0x14]
movzx eax, byte [edx + eax]
cmp dword [ebx + 0x68], eax
je 0x5a3144
mov eax, dword [ebx + 4]
add eax, ecx
mov dword [ebx + 4], eax
inc edi
cmp edi, dword [ebx + 0x74]
mov dword [ebp + 0x48], edi
jl 0x5a306c
jmp 0x5a3144
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x5a2995
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [ebx + 4], eax
je 0x5a4052
jmp 0x5a313a
dec eax
mov dword [ebx + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x5a3136
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x68], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a3109
mov ebx, dword [ebp - 0x68]
jmp 0x5a3eba
mov ecx, dword [ebx + 0x78]
jmp 0x5a3190
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a3195
movzx edx, byte [eax]
mov edi, dword [esi + 0x14]
movzx edx, byte [edx + edi]
cmp dword [ebx + 0x68], edx
je 0x5a3195
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x5a3174
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x5a4052
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xfc], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a31e3
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x5a2995
dec dword [ebx + 4]
jmp 0x5a3195
mov ebx, dword [ebp - 0xfc]
jmp 0x5a3eba
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x5a3fd4
mov eax, dword [esi + 4]
movzx ebx, byte [eax]
mov ecx, ebx
inc eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [esi + 4], eax
jne 0x5a325e
mov ecx, ebx
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, ebx
lea edi, [edx + edx*2]
shl edi, 1
mov ebx, ecx
mov ecx, edi
shl ebx, cl
test edx, edx
jle 0x5a325b
mov dword [ebp + 0x30], edx
xor edx, edx
mov dl, byte [eax]
sub edi, 6
mov ecx, edi
and edx, 0x3f
shl edx, cl
or ebx, edx
inc eax
dec dword [ebp + 0x30]
mov dword [esi + 4], eax
jne 0x5a3242
mov edi, dword [ebp + 0x70]
mov ecx, dword [esi + 0x6c]
cmp ecx, dword [esi + 0x74]
jge 0x5a42e1
cmp eax, dword [edi + 0x44]
jae 0x5a42e1
cmp dword [esi + 0x68], ebx
je 0x5a42e1
inc ecx
push 0x1d8
mov dword [esi + 0x6c], ecx
call dword [0x67b524]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x70], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a31ee
mov ebx, dword [ebp - 0x70]
jmp 0x5a3eba
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a3317
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x5a4345
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x5a2b74
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x5a2b74
movzx ecx, byte [eax]
mov edx, dword [esi + 0x68]
inc eax
cmp edx, ecx
mov dword [esi + 4], eax
je 0x5a2b74
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push edi
push esi
mov dword [ebp - 0x78], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a32c0
mov ebx, dword [ebp - 0x78]
jmp 0x5a3eba
cmp dword [ebp + 0x38], eax
mov ecx, dword [ebx + 4]
mov dword [ebx + 0x2c], ecx
je 0x5a3440
mov edi, dword [ebx + 0x78]
jmp 0x5a33c6
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x5a340f
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x5a33b8
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
lea ecx, [edi + edi*2]
and edx, eax
shl ecx, 1
shl edx, cl
cmp edi, 1
mov dword [ebp + 0x14], 1
mov eax, edx
mov dword [ebp + 0x28], eax
jl 0x5a33b2
mov eax, dword [ebx + 4]
mov edx, dword [ebp + 0x14]
movzx edx, byte [edx + eax]
mov eax, dword [ebp + 0x28]
sub ecx, 6
and edx, 0x3f
shl edx, cl
or eax, edx
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], edi
mov dword [ebp + 0x28], eax
jle 0x5a3390
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp dword [ebx + 0x68], eax
je 0x5a340f
mov eax, dword [ebx + 4]
add ecx, eax
mov dword [ebx + 4], ecx
inc edi
cmp edi, dword [ebx + 0x74]
mov dword [ebp + 0x48], edi
jl 0x5a3345
jmp 0x5a340f
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x5a2995
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [ebx + 4], eax
je 0x5a4052
jmp 0x5a3405
dec eax
mov dword [ebx + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x5a3401
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x88], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a33d4
mov ebx, dword [ebp - 0x88]
jmp 0x5a3eba
mov ecx, dword [ebx + 0x78]
jmp 0x5a345a
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a345f
movzx edx, byte [eax]
cmp dword [ebx + 0x68], edx
je 0x5a345f
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x5a3445
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x5a4052
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x104], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a34ad
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x5a2995
dec dword [ebx + 4]
jmp 0x5a345f
mov ebx, dword [ebp - 0x104]
jmp 0x5a3eba
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x5a4345
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x5a2b74
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x5a2b74
movzx edi, byte [eax]
mov ecx, edi
inc eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [esi + 4], eax
jne 0x5a3540
mov ecx, edi
and ecx, 0x3f
movzx edx, byte [ecx + 0x63fab0]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp + 0xc], ecx
mov ecx, dword [edx*4 + 0x63fa98]
and ecx, edi
mov edi, ecx
mov ecx, dword [ebp + 0xc]
shl edi, cl
test edx, edx
jle 0x5a3540
mov dword [ebp + 0x28], edx
sub dword [ebp + 0xc], 6
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [eax]
and edx, 0x3f
shl edx, cl
or edi, edx
inc eax
dec dword [ebp + 0x28]
mov dword [esi + 4], eax
jne 0x5a3525
mov eax, dword [esi + 0x64]
add eax, 0xfffffffb
cmp eax, 7
ja case.default.0x5a368e
jmp dword [eax*4 + 0x5a44dc]
test byte [esi + 0x10], 4
jne case.0x5a354f.12
push edi
call fcn.0059fe58
pop ecx
test al, al
jmp 0x5a35a4
cmp edi, 0x100
jge case.0x5a354f.12
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 4
jmp 0x5a35a4
cmp edi, 0x100
jge 0x5a2b74
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 4
jmp 0x5a35f7
cmp edi, 0x100
jge 0x5a35ac
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 1
jne 0x5a2b74
jmp case.0x5a354f.12
push edi
call fcn.0059fe7c
pop ecx
cmp al, 1
jmp 0x5a35f7
cmp edi, 0x100
jge 0x5a35c8
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 1
jmp 0x5a35f7
push edi
call fcn.0059fe7c
pop ecx
test al, al
jmp 0x5a35f7
cmp edi, 0x100
jge case.0x5a354f.12
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 0x10
jmp 0x5a35a4
cmp edi, 0x100
jge 0x5a2b74
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 0x10
je 0x5a2b74
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x90], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a34b8
mov ebx, dword [ebp - 0x90]
jmp 0x5a3eba
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
jmp 0x5a3721
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x5a4345
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x5a2b74
mov ecx, dword [esi + 4]
cmp ecx, dword [ebx + 0x44]
jae 0x5a2b74
movzx eax, byte [ecx]
inc ecx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x64]
add ecx, 0xfffffffb
cmp ecx, 7
ja case.default.0x5a368e
jmp dword [ecx*4 + 0x5a44fc]
test byte [esi + 0x10], 4
jne case.0x5a368e.12
push eax
call fcn.0059fe58
pop ecx
test al, al
jmp 0x5a36c6
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 4
jmp 0x5a36c6
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 4
jmp 0x5a3704
cmp eax, 0x100
jge 0x5a36ce
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 1
jne 0x5a2b74
jmp case.0x5a368e.12
push eax
call fcn.0059fe7c
pop ecx
cmp al, 1
jmp 0x5a3704
cmp eax, 0x100
jge 0x5a36e9
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 1
jmp 0x5a3704
push eax
call fcn.0059fe7c
pop ecx
test al, al
jmp 0x5a3704
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 0x10
jmp 0x5a36c6
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 0x10
je 0x5a2b74
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x67b524]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x98], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a3649
mov ebx, dword [ebp - 0x98]
jmp 0x5a3eba
mov ecx, dword [ebx + 4]
cmp dword [ebp + 0x38], eax
mov dword [ebx + 0x2c], ecx
mov eax, dword [ebx + 0x64]
je 0x5a3cff
add eax, 0xfffffffb
cmp eax, 7
ja case.default.0x5a3d0b
jmp dword [eax*4 + 0x5a451c]
mov eax, dword [ebx + 0x74]
cmp eax, 0x7fffffff
jge 0x5a3806
test byte [ebx + 0x10], 4
jne 0x5a37d5
mov ecx, dword [ebx + 0x78]
cmp ecx, eax
mov dword [ebp + 0x48], ecx
jge 0x5a3cce
mov edi, dword [esi + 0x44]
cmp dword [ebx + 4], edi
jae 0x5a3cce
mov eax, dword [ebx + 4]
movzx ax, byte [eax]
push eax
call fcn.0059fe58
test al, al
pop ecx
jne 0x5a3cce
mov eax, dword [ebx + 4]
jmp 0x5a37ba
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
jne 0x5a37c5
inc eax
mov dword [ebx + 4], eax
mov edi, dword [esi + 0x44]
cmp eax, edi
jb 0x5a37b0
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x74]
jl 0x5a378c
jmp 0x5a3cce
mov edi, dword [ebx + 0x78]
cmp edi, eax
jge 0x5a3cce
inc dword [ebx + 4]
mov eax, dword [ebx + 4]
jmp 0x5a37f6
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
jne 0x5a37fb
inc eax
mov dword [ebx + 4], eax
cmp eax, dword [esi + 0x44]
jb 0x5a37e8
inc edi
cmp edi, dword [ebx + 0x74]
jl 0x5a37e0
jmp 0x5a3cce
test byte [ebx + 0x10], 4
jne 0x5a3850
mov ecx, dword [ebx + 0x78]
cmp ecx, eax
mov dword [ebp + 0x48], ecx
jge 0x5a3cce
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x5a3cce
movzx ax, byte [edi]
push eax
call fcn.0059fe58
test al, al
pop ecx
jne 0x5a3cce
inc edi
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [ebx + 4], edi
cmp eax, dword [ebx + 0x74]
jl 0x5a381a
jmp 0x5a3cce
mov eax, dword [ebx + 0x74]
mov ecx, dword [ebx + 4]
mov esi, dword [esi + 0x44]
sub eax, dword [ebx + 0x78]
sub esi, ecx
cmp eax, esi
jle 0x5a3861
mov eax, esi
add ecx, eax
mov dword [ebx + 4], ecx
jmp 0x5a3cce
mov edi, dword [ebx + 0x78]
jmp 0x5a3903
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x5a3cce
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x5a38e6
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
lea ecx, [edi + edi*2]
and edx, eax
shl ecx, 1
shl edx, cl
cmp edi, 1
mov dword [ebp + 4], 1
mov eax, edx
mov dword [ebp + 0x3c], eax
jl 0x5a38e0
mov eax, dword [ebx + 4]
mov edx, dword [ebp + 4]
movzx edx, byte [eax + edx]
mov eax, dword [ebp + 0x3c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
or eax, edx
inc dword [ebp + 4]
cmp dword [ebp + 4], edi
mov dword [ebp + 0x3c], eax
jle 0x5a38be
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x5a38fa
mov edx, dword [esi + 0x18]
test byte [eax + edx], 4
jne 0x5a3cce
mov eax, dword [ebx + 4]
add eax, ecx
mov dword [ebx + 4], eax
inc edi
cmp edi, dword [ebx + 0x74]
mov dword [ebp + 0x48], edi
jl 0x5a3873
jmp 0x5a3cce
mov edi, dword [ebx + 0x78]
jmp 0x5a39b0
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x5a3cce
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x5a398f
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
lea ecx, [edi + edi*2]
and edx, eax
shl ecx, 1
shl edx, cl
cmp edi, 1
mov dword [ebp - 4], 1
mov eax, edx
mov dword [ebp + 0x3c], eax
jl 0x5a3989
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 4]
movzx edx, byte [eax + edx]
mov eax, dword [ebp + 0x3c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
or eax, edx
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
mov dword [ebp + 0x3c], eax
jle 0x5a3967
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x5a3cce
mov edx, dword [esi + 0x18]
test byte [eax + edx], 4
je 0x5a3cce
mov eax, dword [ebx + 4]
add eax, ecx
mov dword [ebx + 4], eax
inc edi
cmp edi, dword [ebx + 0x74]
mov dword [ebp + 0x48], edi
jl 0x5a391c
jmp 0x5a3cce
mov edi, dword [ebx + 0x78]
jmp 0x5a3a7b
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
mov dword [ebp - 0xa0], 1
jae 0x5a3cce
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5a3a47
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
lea ecx, [edi + edi*2]
and edx, eax
shl ecx, 1
shl edx, cl
cmp edi, 1
mov dword [ebp - 0xc], 1
mov eax, edx
mov dword [ebp + 0x3c], eax
jl 0x5a3a3d
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xc]
movzx edx, byte [eax + edx]
mov eax, dword [ebp + 0x3c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
or eax, edx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
mov dword [ebp + 0x3c], eax
jle 0x5a3a1b
inc edi
mov dword [ebp - 0xa0], edi
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x5a3a5d
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 1
jne 0x5a3cce
jmp 0x5a3a6c
push eax
call fcn.0059fe7c
cmp al, 1
pop ecx
je 0x5a3cce
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xa0]
add eax, ecx
mov dword [ebx + 4], eax
inc edi
cmp edi, dword [ebx + 0x74]
mov dword [ebp + 0x48], edi
jl 0x5a39c9
jmp 0x5a3cce
mov edi, dword [ebx + 0x78]
jmp 0x5a3b37
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
mov dword [ebp + 0x40], 1
jae 0x5a3cce
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5a3b0c
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
lea ecx, [edi + edi*2]
and edx, eax
shl ecx, 1
shl edx, cl
cmp edi, 1
mov dword [ebp - 0x14], 1
mov eax, edx
mov dword [ebp + 0x3c], eax
jl 0x5a3b05
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x14]
movzx edx, byte [eax + edx]
mov eax, dword [ebp + 0x3c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
or eax, edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
mov dword [ebp + 0x3c], eax
jle 0x5a3ae3
inc edi
mov dword [ebp + 0x40], edi
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x5a3b1c
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 1
jmp 0x5a3b25
push eax
call fcn.0059fe7c
pop ecx
test al, al
je 0x5a3cce
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x40]
add eax, ecx
mov dword [ebx + 4], eax
inc edi
cmp edi, dword [ebx + 0x74]
mov dword [ebp + 0x48], edi
jl 0x5a3a94
jmp 0x5a3cce
mov edi, dword [ebx + 0x78]
jmp 0x5a3be0
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x5a3cce
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x5a3bc3
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
lea ecx, [edi + edi*2]
and edx, eax
shl ecx, 1
shl edx, cl
cmp edi, 1
mov dword [ebp - 0x1c], 1
mov eax, edx
mov dword [ebp + 0x3c], eax
jl 0x5a3bbd
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x1c]
movzx edx, byte [eax + edx]
mov eax, dword [ebp + 0x3c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
or eax, edx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
mov dword [ebp + 0x3c], eax
jle 0x5a3b9b
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x5a3bd7
mov edx, dword [esi + 0x18]
test byte [eax + edx], 0x10
jne 0x5a3cce
mov eax, dword [ebx + 4]
add eax, ecx
mov dword [ebx + 4], eax
inc edi
cmp edi, dword [ebx + 0x74]
mov dword [ebp + 0x48], edi
jl 0x5a3b50
jmp 0x5a3cce
mov edi, dword [ebx + 0x78]
jmp 0x5a3c85
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x5a3cce
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x5a3c6c
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x63fab0]
mov edx, dword [edi*4 + 0x63fa98]
lea ecx, [edi + edi*2]
and edx, eax
shl ecx, 1
shl edx, cl
cmp edi, 1
mov dword [ebp - 0x24], 1
mov eax, edx
mov dword [ebp + 0x3c], eax
jl 0x5a3c66
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
movzx edx, byte [eax + edx]
mov eax, dword [ebp + 0x3c]
sub ecx, 6
and edx, 0x3f
shl edx, cl
or eax, edx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
mov dword [ebp + 0x3c], eax
jle 0x5a3c44
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x5a3cce
mov edx, dword [esi + 0x18]
test byte [eax + edx], 0x10
je 0x5a3cce
mov eax, dword [ebx + 4]
add eax, ecx
mov dword [ebx + 4], eax
inc edi
cmp edi, dword [ebx + 0x74]
mov dword [ebp + 0x48], edi
jl 0x5a3bf9
jmp 0x5a3cce
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x5a2995
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [ebx + 4], eax
je 0x5a4052
jmp 0x5a3cc4
dec eax
mov dword [ebx + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x5a3cc0
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xb0], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
jne 0x5a3c93
mov ebx, dword [ebp - 0xb0]
jmp 0x5a3eba
add eax, 0xfffffffb
cmp eax, 7
ja case.default.0x5a3d0b
jmp dword [eax*4 + 0x5a453c]
test byte [ebx + 0x10], 4
jne case.0x5a3d0b.12
mov eax, dword [ebx + 0x78]
mov dword [ebp + 0x48], eax
jmp 0x5a3d49
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x5a3e67
movzx ax, byte [edi]
push eax
call fcn.0059fe58
test al, al
pop ecx
jne 0x5a3e67
inc edi
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [ebx + 4], edi
cmp eax, dword [ebx + 0x74]
jl 0x5a3d20
jmp 0x5a3e67
mov eax, dword [ebx + 0x74]
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x44]
sub eax, dword [ebx + 0x78]
sub edx, ecx
cmp eax, edx
jle 0x5a3d67
mov eax, edx
add ecx, eax
mov dword [ebx + 4], ecx
jmp 0x5a3e67
mov ecx, dword [ebx + 0x78]
jmp 0x5a3d97
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a3e67
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 4
jne 0x5a3e67
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x5a3d76
jmp 0x5a3e67
mov ecx, dword [ebx + 0x78]
jmp 0x5a3dc7
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a3e67
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 4
je 0x5a3e67
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x5a3da6
jmp 0x5a3e67
mov ecx, dword [ebx + 0x78]
jmp 0x5a3df3
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a3e67
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 1
jne 0x5a3e67
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x5a3dd6
jmp 0x5a3e67
mov ecx, dword [ebx + 0x78]
jmp 0x5a3e18
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a3e67
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 1
je 0x5a3e67
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x5a3dff
jmp 0x5a3e67
mov ecx, dword [ebx + 0x78]
jmp 0x5a3e3d
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a3e67
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 0x10
jne 0x5a3e67
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x5a3e24
jmp 0x5a3e67
mov ecx, dword [ebx + 0x78]
jmp 0x5a3e62
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5a3e67
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 0x10
je 0x5a3e67
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x5a3e49
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x5a4052
push 0x1d8
call dword [0x67b524]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x10c], eax
call fcn.0059f78e
add esp, 0xc
test eax, eax
je 0x5a3eb4
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
dec dword [ebx + 4]
test edi, edi
mov dword [ebp + 0x4c], ebx
je 0x5a3e67
jmp 0x5a2995
mov ebx, dword [ebp - 0x10c]
mov eax, dword [ebp + 0x4c]
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [ebx + 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebx + 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x10], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebx + 0x14], ecx
and dword [ebx + 0x18], 0
mov esi, dword [ebp + 0x70]
mov dword [ebx], eax
mov eax, dword [esi]
cmp eax, dword [esi + 4]
mov dword [ebp + 0x4c], ebx
jb 0x59ff6e
inc dword [esi]
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
test ebx, ebx
pop ecx
je 0x5a3f16
mov dword [ebx + 0x194], 0xfffffff8
jmp 0x5a436f
push 0xfffffffffffffff8
jmp 0x5a4382
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
test ebx, ebx
pop ecx
je 0x5a3f3e
mov dword [ebx + 0x194], esi
mov dword [edi + 0x64], ebx
jmp 0x5a4372
mov eax, esi
jmp 0x5a4383
cmp byte [0x67b52c], 0
mov edx, dword [edi + 8]
je 0x5a3f7c
mov ecx, dword [ebx + 0x188]
mov eax, dword [ebx + 0x80]
shl ecx, 2
lea edi, [edx + eax*4]
mov eax, ecx
shr ecx, 2
lea esi, [ebx + 0x110]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp + 0x70]
jmp 0x5a3f9c
mov esi, dword [ebx + 0x9c]
lea eax, [ebx + 0x80]
mov ecx, dword [eax]
mov dword [edx + ecx*4], esi
mov eax, dword [eax]
mov ecx, dword [edi + 8]
mov edx, dword [ebx + 0xa0]
mov dword [ecx + eax*4 + 4], edx
mov eax, dword [edi + 0xc]
sub eax, dword [ebx + 0x7c]
mov edx, dword [ebx + 0x94]
mov ecx, dword [edi + 8]
mov dword [ecx + eax*4], edx
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
test ebx, ebx
pop ecx
je 0x5a3fcd
and dword [ebx + 0x194], 0
jmp 0x5a3f36
xor eax, eax
jmp 0x5a4383
mov eax, esi
mov esi, dword [esi]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x67b528]
test esi, esi
pop ecx
je 0x5a3ffe
mov dword [esi + 0x194], ebx
mov dword [edi + 0x64], esi
push 1
add esi, 0x198
push esi
jmp 0x5a437b
mov eax, ebx
jmp 0x5a4383
mov ebx, dword [ebp + 0x70]
mov eax, dword [ebx + 0x64]
mov edi, dword [eax + 0x194]
mov esi, dword [eax]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x67b528]
test esi, esi
pop ecx
je 0x5a402d
mov dword [esi + 0x194], edi
jmp 0x5a2b92
mov eax, edi
jmp 0x5a4383
mov edi, dword [ebp + 0x70]
mov eax, dword [edi + 0x64]
mov ebx, dword [eax + 0x194]
mov esi, dword [eax]
jmp 0x5a3fd8
cmp dword [esi + 0x30], 0
je 0x5a4075
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x48]
jne 0x5a4075
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
test ebx, ebx
pop ecx
je 0x5a3fcd
and dword [ebx + 0x194], 0
jmp 0x5a436f
cmp byte [0x67b52c], 0
mov eax, dword [ebx + 4]
mov dword [esi + 0x4c], eax
jne 0x5a408a
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x50], eax
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
xor eax, eax
inc eax
test ebx, ebx
pop ecx
je 0x5a4383
mov dword [ebx + 0x194], eax
mov dword [esi + 0x64], ebx
push eax
jmp 0x5a4374
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
test ebx, ebx
pop ecx
je 0x5a40d5
mov dword [ebx + 0x194], 0xfffffffa
jmp 0x5a436f
push 0xfffffffffffffffa
jmp 0x5a4382
mov eax, dword [ebx + 0x38]
mov dword [edx + 0x5c], eax
mov eax, dword [ebx + 0x48]
lea ecx, [ebx + 0x98]
cmp eax, ecx
je 0x5a40f7
push eax
call dword [0x67b520]
pop ecx
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
xor eax, eax
inc eax
test ebx, ebx
pop ecx
je 0x5a4383
mov ecx, dword [ebp + 0x70]
mov dword [ebx + 0x194], eax
mov dword [ecx + 0x64], ebx
jmp 0x5a40ad
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
test ebx, ebx
pop ecx
je 0x5a3f3e
mov dword [ebx + 0x194], esi
mov eax, dword [ebp + 0x70]
mov dword [eax + 0x64], ebx
jmp 0x5a4372
mov eax, dword [ebx + 0x38]
mov dword [edx + 0x5c], eax
mov eax, dword [ebx + 0x48]
lea ecx, [ebx + 0x98]
cmp eax, ecx
je 0x5a4162
push eax
call dword [0x67b520]
pop ecx
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
test ebx, ebx
pop ecx
je 0x5a3fcd
and dword [ebx + 0x194], 0
jmp 0x5a413c
mov esi, dword [ebp + 0x70]
add esi, 0x64
mov eax, dword [esi]
mov edi, dword [eax + 0x194]
test edi, edi
je 0x5a41b6
mov ebx, dword [eax]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
test ebx, ebx
pop ecx
je 0x5a402d
mov dword [ebx + 0x194], edi
mov dword [esi], ebx
jmp 0x5a4372
mov ebx, dword [eax]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
test ebx, ebx
pop ecx
je 0x5a3fcd
and dword [ebx + 0x194], 0
jmp 0x5a41af
mov esi, dword [ebp + 0x70]
add esi, 0x64
mov eax, dword [esi]
mov ebx, dword [eax + 0x194]
test ebx, ebx
je 0x5a4227
mov edi, dword [eax]
push eax
mov dword [ebp + 0x4c], edi
call dword [0x67b528]
test edi, edi
pop ecx
je 0x5a3ffe
mov dword [edi + 0x194], ebx
mov dword [esi], edi
push 1
add edi, 0x198
push edi
jmp 0x5a437b
mov esi, dword [ebp + 0x70]
add esi, 0x64
mov eax, dword [esi]
mov edi, dword [eax + 0x194]
test edi, edi
jne 0x5a4194
mov edi, dword [eax]
push eax
mov dword [ebp + 0x4c], edi
call dword [0x67b528]
test edi, edi
pop ecx
je 0x5a3fcd
and dword [edi + 0x194], 0
jmp 0x5a4201
cmp byte [0x67b52c], 0
mov eax, dword [ebx + 4]
mov dword [esi + 0x4c], eax
je 0x5a4084
mov eax, dword [ebx + 0x30]
mov cl, byte [eax]
cmp cl, 0x4a
je 0x5a408a
cmp cl, 0x46
je 0x5a4274
cmp cl, 0x48
je 0x5a4274
xor dl, dl
jmp 0x5a42c4
mov dl, 1
jmp 0x5a42c4
mov cl, byte [eax]
cmp cl, 0x50
jb 0x5a42b2
test dl, dl
movzx eax, cl
lea eax, [eax + eax - 0xa0]
lea edi, [ebx + 0x80]
mov dword [edi], eax
je 0x5a42a6
mov ecx, dword [esi + 8]
or dword [ecx + eax*4], 0xffffffff
mov eax, dword [edi]
mov ecx, dword [esi + 8]
or dword [ecx + eax*4 + 4], 0xffffffff
movzx eax, byte [0x63fa60]
add dword [ebx + 0x30], eax
jmp 0x5a42c1
movzx ecx, cl
movzx ecx, byte [ecx + 0x63fa10]
add ecx, eax
mov dword [ebx + 0x30], ecx
mov eax, dword [ebx + 0x30]
cmp eax, dword [ebx + 8]
jb 0x5a4278
mov eax, dword [ebx + 8]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
sub eax, ecx
mov dword [ebx + 0x30], eax
jmp 0x5a408a
mov edi, dword [ebp + 0x70]
mov eax, esi
mov esi, dword [esi]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x67b528]
test esi, esi
pop ecx
je 0x5a3fcd
and dword [esi + 0x194], 0
jmp 0x5a3fed
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
test ebx, ebx
pop ecx
je 0x5a434e
mov dword [ebx + 0x194], 0xfffffff2
jmp 0x5a436f
mov eax, esi
mov esi, dword [esi]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x67b528]
test esi, esi
pop ecx
je 0x5a434e
mov dword [esi + 0x194], 0xfffffff2
jmp 0x5a2b92
mov eax, esi
mov esi, dword [esi]
jmp 0x5a4013
push 0xfffffffffffffff2
jmp 0x5a4382
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x67b528]
test ebx, ebx
pop ecx
je 0x5a4380
mov dword [ebx + 0x194], 0xfffffffb
mov dword [esi + 0x64], ebx
push 1
add ebx, 0x198
push ebx
call fcn.0059f7c5
push 0xfffffffffffffffb
pop eax
mov ecx, dword [ebp + 0x58]
call fcn.005f0dbf
pop edi
pop esi
pop ebx
add ebp, 0x5c
leave
ret