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

Disassembly:
push ebp
lea ebp, [esp - 0x5c]
sub esp, 0x1a4
mov eax, dword [0x633260]
push ebx
push esi
mov esi, dword [ebp + 0x70]
push edi
push 0x1d8
mov dword [ebp + 0x58], eax
call dword [0x630d7c]
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 0x58cd73
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 0x588e29
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 0x588e54
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jb 0x588e54
cmp eax, dword [esi + 0x48]
jbe 0x588e54
xor edx, edx
inc edx
mov dword [esi + 0x38], edx
jmp 0x588e57
xor edx, edx
inc edx
mov eax, dword [ebx + 0x84]
push 0x50
pop ecx
cmp eax, ecx
jle 0x588e99
add eax, 0xffffffb0
cmp eax, 0x64
mov dword [ebx + 0x7c], eax
jle 0x588e7f
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 0x58ad32
mov dword [ebx + 0x84], ecx
mov eax, dword [ebx + 0x84]
cmp eax, ecx
ja case.0x588eae.13
movzx eax, byte [eax + 0x58d2da]
jmp dword [eax*4 + 0x58d222]
add dword [ebx + 8], 3
jmp 0x588e29
mov edi, dword [esi + 0x5c]
test edi, edi
je 0x58ced3
cmp dword [edi + 4], 0
jne 0x58ced3
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.005d2b70
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 0x588e29
mov eax, dword [ebx + 8]
movzx eax, byte [eax + 1]
mov dword [ebx + 0x10], eax
add dword [ebx + 8], 2
jmp 0x588e29
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xc8], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58b055
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
cmp edi, 1
mov dword [ebp + 0x4c], ebx
je 0x588f72
test edi, edi
jne 0x58b824
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.0x588eae.69
mov eax, dword [ebx + 8]
cmp byte [eax], 0x42
je 0x58cee1
test byte [ebx + 0x18], 1
jne 0x58cf19
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 0x588f88
add eax, 3
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x50]
mov dword [ebx + 0xc], eax
jmp 0x588e29
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x108], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58b082
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
cmp edi, 1
mov dword [ebp + 0x4c], ebx
je 0x58cee1
test edi, edi
jne 0x58b824
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.0x588eae.70
test byte [ebx + 0x18], 1
jne 0x58cf19
add eax, 3
jmp 0x588efc
mov eax, dword [ebx + 8]
xor ecx, ecx
cmp dword [ebp + 0x38], edi
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
je 0x589064
mov edi, ecx
xor ecx, ecx
test edi, edi
jle case.0x588eae.76
dec dword [ebx + 4]
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
jb 0x58cee1
jmp 0x589050
dec eax
mov dword [ebx + 4], eax
mov dl, byte [eax]
and dl, 0xc0
cmp dl, 0x80
je 0x58904c
inc ecx
cmp ecx, edi
jl 0x58903b
jmp case.0x588eae.76
sub dword [ebx + 4], ecx
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
jb 0x58cee1
jmp case.0x588eae.76
mov edi, dword [0x6f8b60]
test edi, edi
je 0x58912e
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 0x58cee1
jl 0x58b824
add dword [ebx + 8], 6
jmp 0x588e29
mov eax, dword [ebx + 8]
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 0x34], eax
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xd0], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58b1bb
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
cmp edi, 1
mov dword [ebp + 0x4c], ebx
je 0x58919e
test edi, edi
jne 0x58b824
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 0x589143
mov eax, dword [ebx + 8]
mov al, byte [eax]
cmp al, 0x4a
je 0x5891af
cmp al, 0x41
jne 0x58cee1
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 0x5891af
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 0x589017
cmp ecx, dword [ebx + 0x34]
je 0x589017
cmp byte [eax + 3], 0x12
jne 0x5891fa
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 0x58b211
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xf8], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58b1c6
mov ebx, dword [ebp - 0xf8]
jmp 0x58b398
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.0x588eae.65
jmp 0x588e29
mov eax, dword [ebx + 8]
inc eax
push 0x1d8
mov dword [ebx + 0x28], eax
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x100], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58b288
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b824
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 0x58929d
jmp 0x589017
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 0x5892be
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xe8], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58b29f
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b824
inc dword [ebx + 8]
jmp 0x588e29
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 0x58d0d4
cmp al, 0x46
je 0x58d0d4
cmp al, 0x47
je 0x58d0d4
cmp al, 0x48
je 0x58d0d4
cmp al, 0x4a
je 0x58d0d4
cmp al, 0x4b
je 0x589449
movzx eax, al
add eax, 0xffffffb0
cmp eax, 0x64
mov dword [ebx + 0x7c], eax
jle 0x58938e
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 0x589449
mov dword [esi + 0x54], eax
mov edi, dword [ebx + 0x80]
cmp edi, dword [esi + 0x10]
jl 0x5893b7
mov dword [esi + 0x1c], edx
jmp 0x5893fe
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 0x5893ea
add eax, 2
mov dword [ebx + 0xc], eax
cmp byte [0x630d84], 0
je 0x5893fe
mov eax, dword [ebx + 0xc]
cmp eax, dword [esi + 0x50]
jle 0x5893fe
mov dword [esi + 0x50], eax
mov edx, dword [esi + 0x5c]
test edx, edx
je 0x589449
mov eax, dword [edx + 4]
cmp eax, dword [ebx + 0x7c]
jne 0x589449
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 0x588e29
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 8]
cmp byte [eax], 0x42
je 0x589017
mov ecx, dword [ebx + 4]
cmp ecx, dword [ebx + 0x34]
je 0x589017
cmp byte [eax], 0x44
push 0x1d8
jne 0x58b2fe
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x110], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58b2b6
mov ebx, dword [ebp - 0x110]
jmp 0x58b398
cmp dword [esi + 0x20], edi
je 0x5894b6
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
je 0x58cee1
test byte [ebx + 0x10], 2
je case.0x588eae.1
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
je 0x589314
movzx ax, byte [eax - 1]
push eax
call fcn.00588ce7
pop ecx
test al, al
jmp 0x589a73
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
jmp 0x5899eb
mov eax, dword [esi + 0x58]
add eax, dword [esi + 0x40]
cmp dword [ebx + 4], eax
jmp 0x5899eb
test byte [ebx + 0x10], 2
je 0x58950a
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jb 0x589540
cmp dword [esi + 0x24], edi
jmp 0x5899eb
cmp dword [esi + 0x24], edi
jne 0x58cee1
cmp dword [esi + 0x2c], edi
je case.0x588eae.16
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jb 0x58cee1
jmp 0x589314
mov eax, dword [esi + 0x44]
lea ecx, [eax - 1]
mov eax, dword [ebx + 4]
cmp eax, ecx
jb 0x58cee1
jne 0x589314
movzx ax, byte [eax]
jmp 0x5894cd
cmp dword [ebp + 0x38], edi
mov eax, dword [ebx + 4]
je 0x58967f
cmp eax, dword [esi + 0x40]
jne 0x58955f
mov dword [ebx + 0x5c], edi
jmp 0x5895f5
dec eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
mov dword [ebp + 0x44], eax
jne 0x58957b
dec eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x58956d
mov dword [ebp + 0x44], eax
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5895d9
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x5895d9
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 0x5895b7
cmp eax, 0x100
jge 0x5895ee
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
je 0x5895ee
xor eax, eax
inc eax
jmp 0x5895f0
xor eax, eax
mov dword [ebx + 0x5c], eax
xor edi, edi
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jb 0x589605
mov dword [ebx + 0x50], edi
jmp 0x5896b3
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x589663
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x589663
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 0x589641
cmp eax, 0x100
jge 0x589678
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
je 0x589678
xor eax, eax
inc eax
jmp 0x58967a
xor eax, eax
mov dword [ebx + 0x50], eax
jmp 0x5896b3
cmp eax, dword [esi + 0x40]
je 0x589695
movzx eax, byte [eax - 1]
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
je 0x589695
mov eax, edx
jmp 0x589697
xor eax, eax
mov dword [ebx + 0x5c], eax
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x5896ae
movzx eax, byte [eax]
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
jne 0x5896b0
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 0x5896ce
sub eax, dword [ebx + 0x5c]
neg eax
sbb eax, eax
inc eax
jmp 0x5896d8
xor ecx, ecx
cmp eax, dword [ebx + 0x5c]
setne cl
mov eax, ecx
test eax, eax
jmp 0x58a120
test byte [ebx + 0x10], 4
jne 0x589700
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x589700
movzx ax, byte [eax]
push eax
call fcn.00588ce7
test al, al
pop ecx
jne 0x58cee1
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x44]
cmp ecx, edx
lea eax, [ecx + 1]
mov dword [ebx + 4], eax
jae 0x58cee1
cmp dword [ebp + 0x38], 0
je 0x589314
jmp 0x589732
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
jne 0x589314
inc eax
mov dword [ebx + 4], eax
cmp eax, dword [esi + 0x44]
jb 0x589720
jmp 0x589314
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
cmp eax, ecx
lea edx, [eax + 1]
mov dword [ebx + 4], edx
jae 0x58cee1
jmp 0x589314
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58cee1
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5897c0
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5897c0
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x34], ecx
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x34]
shl eax, cl
test edx, edx
jle 0x5897c0
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 0x5897a5
cmp eax, 0x100
jge 0x589314
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 4
jmp 0x5899eb
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58cee1
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x589842
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x589842
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x3c], ecx
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x3c]
shl eax, cl
test edx, edx
jle 0x589842
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 0x589827
cmp eax, 0x100
jge 0x58cee1
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 4
jmp 0x589a73
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58cee1
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5898c4
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5898c4
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x44], ecx
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x44]
shl eax, cl
test edx, edx
jle 0x5898c4
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 0x5898a9
cmp eax, 0x100
jge 0x5898d7
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 1
jmp 0x5899eb
push eax
call fcn.00588d0b
pop ecx
cmp al, 1
jmp 0x589a73
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58cee1
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x589950
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x589950
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x4c], ecx
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x4c]
shl eax, cl
test edx, edx
jle 0x589950
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 0x589935
cmp eax, 0x100
jge 0x589963
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 1
jmp 0x589a73
push eax
call fcn.00588d0b
jmp 0x5894d3
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58cee1
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5899d9
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5899d9
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x54], ecx
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x54]
shl eax, cl
test edx, edx
jle 0x5899d9
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 0x5899be
cmp eax, 0x100
jge 0x589314
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
jne 0x58cee1
jmp 0x589314
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58cee1
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x589a61
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x589a61
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x5c], ecx
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x5c]
shl eax, cl
test edx, edx
jle 0x589a61
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 0x589a46
cmp eax, 0x100
jge 0x58cee1
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
je 0x58cee1
jmp 0x589314
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 [0x630d84], 0
je 0x589ab1
mov eax, dword [ebx + 0x80]
mov ecx, dword [esi + 8]
cmp dword [ecx + eax*4], edi
jge 0x589ab1
mov dword [ebx + 0x70], edi
jmp 0x589ad9
mov eax, dword [ebx + 0x80]
cmp eax, dword [ebx + 0xc]
jge 0x589acf
mov ecx, dword [esi + 8]
lea eax, [ecx + eax*4]
mov edx, dword [eax]
cmp edx, edi
jl 0x589acf
mov eax, dword [eax + 4]
sub eax, edx
jmp 0x589ad6
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 0x589bda
cmp al, 0x38
jbe 0x589b2c
cmp al, 0x3a
ja 0x589bda
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 0x589b26
mov dword [ebx + 0x74], closesocket
add dword [ebx + 8], 5
jmp 0x589b5d
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 + 0x5f53cc]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x5f53d4]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x589b5d
mov dword [ebx + 0x74], closesocket
cmp dword [ebx + 0x70], 0
je 0x588e29
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x589ba8
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.00588d35
test eax, eax
pop ecx
pop ecx
je 0x58cee1
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 0x589b72
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x588e29
cmp dword [ebx + 0x58], 0
je 0x58b426
push 0x1d8
mov dword [ebx + 0x6c], eax
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58b40f
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.00588d35
test eax, eax
pop ecx
pop ecx
je 0x58cee1
mov eax, dword [ebx + 4]
add edi, eax
mov dword [ebx + 4], edi
jmp 0x588e29
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 0x589c93
cmp al, 0x38
jbe 0x589c60
cmp al, 0x3a
ja 0x589c93
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 0x589c5a
mov dword [ebx + 0x74], closesocket
add dword [ebx + 8], 5
jmp 0x589c99
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 + 0x5f53cc]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x5f53d4]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x589c99
mov dword [ebx + 0x74], closesocket
jmp 0x589c99
mov dword [ebx + 0x74], edx
mov dword [ebx + 0x78], edx
cmp dword [ebp + 0x38], 0
je 0x589d65
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x589daf
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58cee1
movzx eax, byte [edi]
mov ecx, eax
inc edi
and cx, 0xc0
cmp cl, 0xc0
mov dword [ebx + 4], edi
jne 0x589d17
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x20], ecx
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x20]
shl eax, cl
test edx, edx
jle 0x589d17
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 0x589cfc
cmp eax, 0xff
jle 0x589d2d
cmp dword [ebx + 0x84], 0x3b
je 0x58cee1
jmp 0x589d54
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 0x58cff1
mov esi, dword [ebp + 0x70]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x589cb2
jmp 0x589daf
xor edi, edi
inc edi
cmp dword [ebx + 0x78], edi
jl 0x589daf
mov ecx, dword [ebx + 4]
cmp ecx, dword [esi + 0x44]
jae 0x58cee1
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 0x58cff1
mov esi, dword [ebp + 0x70]
inc edi
cmp edi, dword [ebx + 0x78]
jle 0x589d6d
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x588e29
xor eax, eax
cmp dword [ebx + 0x58], eax
je 0x58b649
cmp dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x78]
push 0x1d8
mov dword [ebx + 0x6c], eax
je 0x58b5a8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58b58d
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 0x589e82
cmp al, 0x38
jbe 0x589e4f
cmp al, 0x3a
ja 0x589e82
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 0x589e49
mov dword [ebx + 0x74], closesocket
add dword [ebx + 8], 5
jmp 0x589e88
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 + 0x5f53cc]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x5f53d4]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x589e88
mov dword [ebx + 0x74], closesocket
jmp 0x589e88
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 0x589f1e
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58cee1
movzx edx, byte [eax]
lea edi, [eax + 1]
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x589efc
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7328]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp + 0x18], ecx
mov ecx, dword [eax*4 + 0x5f7310]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp + 0x18]
shl edx, cl
test eax, eax
jle 0x589efc
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 0x589ee1
push dword [ebx + 0x24]
push edx
call fcn.005acc7d
test eax, eax
pop ecx
pop ecx
je 0x58cee1
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x589e97
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x588e29
cmp dword [ebx + 0x58], 0
je 0x58b91b
push 0x1d8
mov dword [ebx + 0x6c], eax
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58b900
cmp dword [ebp + 0x38], edi
je 0x58a000
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 0x589fbf
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x589fba
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 0x589f9d
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 0x58cee1
cmp eax, edi
jle 0x589ff8
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 0x58cee1
mov eax, dword [ebx + 0x70]
test eax, eax
jg 0x589fd4
dec dword [ebx + 0x70]
jmp 0x588e29
mov edi, dword [ebx + 4]
mov eax, dword [esi + 0x44]
sub eax, edi
cmp eax, edx
jl 0x58cee1
mov eax, dword [ebx + 8]
mov cl, byte [edi]
mov al, byte [eax + 1]
inc edi
cmp al, cl
jmp 0x58a151
cmp dword [ebp + 0x38], edi
je 0x58a12b
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 0x58a08d
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x58a08a
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 0x58a06d
add dword [ebx + 0x70], edi
mov edi, dword [ebx + 4]
mov eax, dword [esi + 0x44]
sub eax, edi
cmp dword [ebx + 0x70], eax
jg 0x58cee1
movzx edx, byte [edi]
inc edi
cmp dword [ebx + 0x68], 0x80
jge 0x58a0c4
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 0x58a120
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x58a117
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7328]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax*4 + 0x5f7310]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x28]
shl edx, cl
test eax, eax
jle 0x58a117
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 0x58a0fc
mov eax, dword [ebx + 0x70]
add dword [ebx + 8], eax
cmp dword [ebx + 0x68], edx
je 0x588e29
jmp 0x58cee1
mov edi, dword [ebx + 4]
mov eax, dword [esi + 0x44]
sub eax, edi
cmp eax, edx
jl 0x58cee1
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 0x58cee1
jmp 0x588f0e
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 0x58a1d0
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 0x58a175
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 + 0x5f53cc]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x5f53d4]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x58a1d0
mov dword [ebx + 0x74], closesocket
cmp dword [ebp + 0x38], 0
je 0x58a2b8
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 0x58a247
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x58a241
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 0x58a224
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 0x58cee1
add dword [ebx + 8], eax
cmp dword [ebx + 0x70], edi
jle 0x58a2d6
and dword [ebp + 0x34], 0
cmp dword [ebx + 0x78], edi
mov dword [ebp + 0x48], edi
jl 0x58a29a
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 0x58cff1
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 0x58a272
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x589441
cmp dword [ebx + 0x58], 0
je 0x58baf8
mov dword [ebx + 0x6c], eax
jmp 0x58bac9
mov eax, dword [esi + 0x44]
sub eax, dword [ebx + 4]
cmp dword [ebx + 0x78], eax
jg 0x58cee1
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 0x58a342
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 0x58a310
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 0x58cee1
inc edi
cmp edi, dword [ebx + 0x78]
jle 0x58a2ee
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x588e29
cmp dword [ebx + 0x58], 0
je 0x58bc0d
push 0x1d8
mov dword [ebx + 0x6c], eax
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58bbf0
cmp dword [ebx + 0x78], edi
jl 0x58a362
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 0x58cee1
inc edi
cmp edi, dword [ebx + 0x78]
jle 0x58a347
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x588e29
cmp dword [ebx + 0x58], 0
je 0x58bd05
push 0x1d8
mov dword [ebx + 0x6c], eax
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58bce8
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58cee1
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 0x58a405
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x58a405
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x50], ecx
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x50]
shl eax, cl
test edx, edx
jle 0x58a405
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 0x58a3ea
test byte [ebx + 0x10], 1
je 0x58a428
cmp eax, 0x100
jge 0x58a419
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 0x58a42e
mov ecx, dword [ebx + 8]
movzx edx, byte [ecx]
inc ecx
cmp edx, eax
mov dword [ebx + 8], ecx
jne 0x588e29
jmp 0x58cee1
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 0x58a4b0
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 0x58a455
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 + 0x5f53cc]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x5f53d4]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x58a4b0
mov dword [ebx + 0x74], closesocket
mov eax, dword [esi + 0x44]
sub eax, dword [ebx + 4]
cmp dword [ebx + 0x78], eax
jg 0x58cee1
mov eax, dword [ebx + 8]
movzx eax, byte [eax]
mov dword [ebx + 0x68], eax
inc dword [ebx + 8]
test byte [ebx + 0x10], 1
je 0x58a5e3
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 0x58a57a
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x58a5a4
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 0x58a555
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7328]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp], ecx
mov ecx, dword [eax*4 + 0x5f7310]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp]
shl edx, cl
test eax, eax
jle 0x58a555
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 0x58a53a
cmp edx, 0x100
jge 0x58a564
mov eax, dword [esi + 0x14]
movzx edx, byte [eax + edx]
cmp dword [ebx + 0x68], edx
je 0x58cee1
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x58a4fb
jmp 0x58a5a4
xor ecx, ecx
inc ecx
cmp dword [ebx + 0x78], ecx
jl 0x58a5a4
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 0x58cee1
inc ecx
cmp ecx, dword [ebx + 0x78]
jle 0x58a582
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x588e29
xor eax, eax
cmp dword [ebx + 0x58], eax
je 0x58bee4
cmp dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x78]
push 0x1d8
mov dword [ebx + 0x6c], eax
je 0x58be58
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58be37
cmp dword [ebp + 0x38], 0
je 0x58a668
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x58a68b
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 0x58a652
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7328]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x30], ecx
mov ecx, dword [eax*4 + 0x5f7310]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x30]
shl edx, cl
test eax, eax
jle 0x58a652
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 0x58a637
cmp dword [ebx + 0x68], edx
je 0x58cee1
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x58a5f8
jmp 0x58a68b
xor ecx, ecx
inc ecx
cmp dword [ebx + 0x78], ecx
jl 0x58a68b
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 0x58cee1
inc ecx
cmp ecx, dword [ebx + 0x78]
jle 0x58a670
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x588e29
xor eax, eax
cmp dword [ebx + 0x58], eax
je 0x58c1bd
cmp dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x78]
push 0x1d8
mov dword [ebx + 0x6c], eax
je 0x58c13e
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58c123
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 0x58a73e
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 0x58a6e3
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 + 0x5f53cc]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x5f53d4]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x58a73e
mov dword [ebx + 0x74], closesocket
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 0x58cee1
test ecx, ecx
jle 0x58acf3
cmp dword [ebp + 0x38], 0
je 0x58ab4a
mov edi, dword [ebx + 0x64]
add edi, 0xfffffffb
cmp edi, 7
ja case.default.0x58cb9a
jmp dword [edi*4 + 0x58d32b]
xor edx, edx
inc edx
cmp ecx, edx
mov dword [ebp + 0x48], edx
jl 0x58acf3
mov ecx, dword [ebx + 4]
cmp ecx, eax
jae 0x58cee1
movzx edx, byte [ecx]
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
lea edi, [ecx + 1]
mov dword [ebx + 4], edi
jne 0x58a7f9
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7328]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp + 0x24], ecx
mov ecx, dword [eax*4 + 0x5f7310]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp + 0x24]
shl edx, cl
test eax, eax
jle 0x58a7f9
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 0x58a7de
push edx
call fcn.00588ce7
test al, al
pop ecx
je 0x58a80e
test byte [ebx + 0x10], 4
je 0x58cee1
mov eax, dword [esi + 0x44]
cmp edi, eax
jae 0x58a82f
mov edi, dword [ebx + 4]
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x58a82f
lea ecx, [edi + 1]
mov dword [ebx + 4], ecx
mov eax, dword [esi + 0x44]
cmp ecx, eax
jb 0x58a815
inc dword [ebp + 0x48]
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebx + 0x78]
jle 0x58a795
jmp 0x58acf3
add ecx, edx
mov dword [ebx + 4], ecx
jmp 0x58acf3
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x48], eax
jl 0x58acf3
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58cee1
movzx edx, byte [edi]
mov eax, edx
inc edi
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x58a8be
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7328]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x48], ecx
mov ecx, dword [eax*4 + 0x5f7310]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x48]
shl edx, cl
test eax, eax
jle 0x58a8be
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 0x58a8a3
cmp edx, 0x80
jge 0x58a8d3
mov eax, dword [esi + 0x18]
test byte [edx + eax], 4
jne 0x58cee1
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x58a85b
jmp 0x58acf3
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58acf3
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58cee1
mov cl, byte [eax]
cmp cl, 0x80
jae 0x58cee1
mov edi, dword [esi + 0x18]
movzx ecx, cl
test byte [ecx + edi], 4
lea eax, [eax + 1]
mov dword [ebx + 4], eax
je 0x58cee1
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58a8f2
jmp 0x58acf3
xor edx, edx
inc edx
cmp ecx, edx
mov dword [ebp + 0x48], edx
jl 0x58acf3
mov ecx, dword [ebx + 4]
cmp ecx, eax
jae 0x58cee1
mov al, byte [ecx]
cmp al, 0x80
lea edi, [ecx + 1]
jae 0x58a961
mov edx, dword [esi + 0x18]
movzx eax, al
test byte [eax + edx], 1
mov dword [ebx + 4], edi
jne 0x58cee1
jmp 0x58a9c6
movzx edx, al
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x58a9b7
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7328]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax*4 + 0x5f7310]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x10]
shl edx, cl
test eax, eax
jle 0x58a9b7
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 0x58a99c
push edx
call fcn.00588d0b
cmp al, 1
pop ecx
je 0x58cee1
mov eax, dword [esi + 0x44]
cmp edi, eax
jae 0x58a9e7
mov edi, dword [ebx + 4]
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x58a9e7
lea ecx, [edi + 1]
mov dword [ebx + 4], ecx
mov eax, dword [esi + 0x44]
cmp ecx, eax
jb 0x58a9cd
inc dword [ebp + 0x48]
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebx + 0x78]
jle 0x58a938
jmp 0x58acf3
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x48], eax
jl 0x58acf3
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58cee1
mov cl, byte [eax]
cmp cl, 0x80
jae 0x58aa2e
mov edx, dword [esi + 0x18]
movzx ecx, cl
test byte [ecx + edx], 1
lea eax, [eax + 1]
mov dword [ebx + 4], eax
jmp 0x58aa90
movzx edx, cl
lea edi, [eax + 1]
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x58aa87
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7328]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x38], ecx
mov ecx, dword [eax*4 + 0x5f7310]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x38]
shl edx, cl
test eax, eax
jle 0x58aa87
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 0x58aa6c
push edx
call fcn.00588d0b
pop ecx
test al, al
je 0x58cee1
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x58aa09
jmp 0x58acf3
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58acf3
mov ecx, dword [ebx + 4]
cmp ecx, eax
jae 0x58cee1
mov al, byte [ecx]
cmp al, 0x80
jae 0x58aadc
mov edi, dword [esi + 0x18]
movzx eax, al
test byte [eax + edi], 0x10
lea ecx, [ecx + 1]
mov dword [ebx + 4], ecx
jne 0x58cee1
mov eax, dword [esi + 0x44]
cmp dword [ebx + 4], eax
jae 0x58aafc
mov edi, dword [ebx + 4]
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x58aafc
inc edi
mov dword [ebx + 4], edi
mov eax, dword [esi + 0x44]
cmp edi, eax
jb 0x58aae4
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58aab5
jmp 0x58acf3
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58acf3
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58cee1
mov cl, byte [eax]
cmp cl, 0x80
jae 0x58cee1
mov edi, dword [esi + 0x18]
movzx ecx, cl
test byte [ecx + edi], 0x10
lea eax, [eax + 1]
mov dword [ebx + 4], eax
je 0x58cee1
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58ab12
jmp 0x58acf3
mov eax, dword [ebx + 0x64]
add eax, 0xfffffffb
cmp eax, 7
ja case.default.0x58cb9a
jmp dword [eax*4 + 0x58d34b]
test byte [ebx + 0x10], 4
jne case.0x58ab59.12
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x48], eax
jl 0x58acf3
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 0x58abd4
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7328]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax*4 + 0x5f7310]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x18]
shl edx, cl
test eax, eax
jle 0x58abd4
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 0x58abb9
push edx
call fcn.00588ce7
test al, al
pop ecx
jne 0x58cee1
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x58ab78
jmp 0x58acf3
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58acf3
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 0x58cee1
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58abfe
jmp 0x58acf3
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58acf3
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 0x58cee1
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58ac2d
jmp 0x58acf3
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58acf3
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 0x58cee1
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58ac5c
jmp 0x58acf3
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58acf3
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 0x58cee1
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58ac84
jmp 0x58acf3
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58acf3
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 0x58cee1
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58acac
jmp 0x58acf3
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58acf3
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 0x58cee1
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58acd4
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x588e29
xor eax, eax
cmp dword [ebx + 0x58], eax
je 0x58c5d1
cmp dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x78]
push 0x1d8
mov dword [ebx + 0x6c], eax
je 0x58c4c4
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58c4a3
mov eax, dword [esi + 0xc]
sub eax, dword [ebx + 0x7c]
cmp byte [0x630d84], 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 0x58ada5
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x80]
cmp eax, ecx
jle 0x58ad67
sub eax, ecx
jmp 0x58ad6a
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 0x58ad9e
mov ecx, dword [ebp + 0x70]
mov ecx, dword [ecx + 8]
or dword [ecx + eax*4], 0xffffffff
inc eax
cmp eax, dword [ebx + 0xc]
jl 0x58ad93
jmp 0x58adce
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 0x58ae1e
mov edi, dword [ebp + 0x70]
mov ebx, dword [edi + 0x64]
mov esi, dword [ebx + 0x194]
test esi, esi
mov dword [ebp + 0x4c], ebx
jne 0x58cdac
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 0x58cdd4
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xa4], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58ade5
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 0x58b331
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58aeb7
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58ce63
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 0x58d170
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xb8], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58ae74
mov ebx, dword [ebp - 0xb8]
jmp 0x58ae4a
mov edi, dword [ebx + 8]
cmp byte [edi + 3], 0x4c
jne 0x58af74
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 0x58af02
xor edx, edx
cmp dword [esi + 0x5c], edx
setne dl
jmp 0x58af12
cmp eax, dword [ebx + 0xc]
jge 0x58af10
mov ecx, dword [esi + 8]
cmp dword [ecx + eax*4], 0
jge 0x58af12
xor edx, edx
push 0x1d8
mov dword [ebx + 0x54], edx
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xf0], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58ce94
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 0x58af59
push 6
pop ecx
jmp 0x58af67
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 0x58b334
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x114], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58afcc
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 0x58cd6e
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
cmp ebx, 1
mov dword [ebp + 0x4c], esi
jne 0x58b008
mov eax, dword [esi + 8]
xor ecx, ecx
mov ch, byte [eax + 4]
mov cl, byte [eax + 5]
lea eax, [ecx + eax + 3]
jmp 0x58affe
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 0x58aff1
jmp 0x58b020
test ebx, ebx
jne 0x58ce63
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 [0x630d7c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0xbc], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58cec3
mov ebx, dword [ebp - 0xbc]
jmp 0x58ae4a
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 0x58b346
mov ebx, dword [ebp - 0x108]
jmp 0x58b05b
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 0x58b0b9
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 0x58b0e4
lea eax, [ebx + 0x98]
mov dword [ebx + 0x48], eax
jmp 0x58b0fa
shl eax, 2
push eax
call dword [0x630d74]
test eax, eax
pop ecx
mov dword [ebx + 0x48], eax
je 0x58cf42
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 0x58b17e
mov edx, dword [ebp + 0x70]
mov ebx, dword [edx + 0x64]
mov esi, dword [ebx + 0x194]
cmp esi, 1
mov dword [ebp + 0x4c], ebx
je 0x58cf6b
test esi, esi
jne 0x58cfae
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 0x58cfd6
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xb4], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58b125
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 0x58ae56
mov ebx, dword [ebp - 0xd0]
jmp 0x58ae4a
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58ce63
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xd8], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58d011
mov ebx, dword [ebp - 0xd8]
jmp 0x58b325
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x118], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58b23d
mov ebx, dword [ebp - 0x118]
jmp 0x58b325
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58ce63
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xe0], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58d011
mov ebx, dword [ebp - 0xe0]
jmp 0x58b398
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 0x58b331
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 0x58ae56
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58ce63
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xc0], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58d063
mov ebx, dword [ebp - 0xc0]
jmp 0x58b325
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xc4], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58b352
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 0x58cd6e
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58ce63
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xcc], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58d0a0
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 0x58cd55
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58ce63
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58d170
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.00588d35
test eax, eax
pop ecx
pop ecx
je 0x58d16d
add ebx, edi
mov dword [esi + 4], ebx
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x64], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58b3ac
mov ebx, dword [ebp - 0x64]
jmp 0x58cd49
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp + 0x48], eax
jmp 0x58b461
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.00588d35
test eax, eax
pop ecx
pop ecx
je 0x58b466
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 0x58b434
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58cee1
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xd4], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58b4b7
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b824
mov eax, dword [ebx + 0x70]
sub dword [ebx + 4], eax
jmp 0x58b466
mov ebx, dword [ebp - 0xd4]
jmp 0x58cd49
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58ce63
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58d170
mov eax, dword [esi + 4]
cmp eax, dword [edi + 0x44]
jae 0x58d170
movzx ebx, byte [eax]
mov ecx, ebx
inc eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [esi + 4], eax
jne 0x58b547
mov ecx, ebx
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, ebx
lea edi, [edx + edx*2]
shl edi, 1
mov ebx, ecx
mov ecx, edi
shl ebx, cl
test edx, edx
jle 0x58b544
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 0x58b52b
mov edi, dword [ebp + 0x70]
cmp ebx, 0xff
jle 0x58b558
cmp dword [esi + 0x84], 0x3b
jmp 0x58b570
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 0x58d170
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x80], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58b4c2
mov ebx, dword [ebp - 0x80]
jmp 0x58cd49
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58b628
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58d1d4
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58ba03
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x58ba03
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 0x58ba03
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0xa8], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58b5b9
mov ebx, dword [ebp - 0xa8]
jmp 0x58cd49
cmp dword [ebp + 0x38], eax
mov ecx, dword [ebx + 4]
mov dword [ebx + 0x2c], ecx
je 0x58b78d
mov edi, dword [ebx + 0x78]
jmp 0x58b719
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
mov dword [ebp + 0x2c], 1
jae 0x58b762
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x58b6d8
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x58b6d1
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 0x58b6af
inc edi
mov dword [ebp + 0x2c], edi
mov edi, dword [ebp + 0x48]
cmp eax, 0xff
jle 0x58b6ea
cmp dword [ebx + 0x84], 0x3b
je 0x58b762
jmp 0x58b70d
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 0x58b762
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 0x58b660
jmp 0x58b762
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b824
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [ebx + 4], eax
je 0x58cee1
jmp 0x58b758
dec eax
mov dword [ebx + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x58b754
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x60], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58b727
mov ebx, dword [ebp - 0x60]
jmp 0x58cd49
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
mov dword [ebp + 0x48], eax
jge 0x58b7dc
jmp 0x58b79d
mov esi, dword [ebp + 0x70]
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58b7dc
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 0x58b7d9
inc edi
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [ebx + 4], edi
cmp eax, dword [ebx + 0x74]
jl 0x58b79a
mov esi, dword [ebp + 0x70]
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58cee1
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xdc], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58b846
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 0x58b7dc
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630d80]
test ebx, ebx
pop ecx
je 0x58cebc
mov dword [ebx + 0x194], edi
jmp 0x58d1fe
mov ebx, dword [ebp - 0xdc]
jmp 0x58cd49
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58ce63
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58d170
mov eax, dword [esi + 4]
cmp eax, dword [edi + 0x44]
jae 0x58d170
movzx ebx, byte [eax]
mov ecx, ebx
inc eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [esi + 4], eax
jne 0x58b8d6
mov ecx, ebx
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, ebx
lea edi, [edx + edx*2]
shl edi, 1
mov ebx, ecx
mov ecx, edi
shl ebx, cl
test edx, edx
jle 0x58b8d3
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 0x58b8ba
mov edi, dword [ebp + 0x70]
push dword [esi + 0x24]
push ebx
call fcn.005acc7d
test eax, eax
pop ecx
pop ecx
je 0x58d170
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x6c], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58b851
mov ebx, dword [ebp - 0x6c]
jmp 0x58cd49
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov edi, dword [ebx + 0x78]
jmp 0x58b9ba
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
mov dword [ebp - 0x94], 1
jae 0x58b9c6
movzx eax, byte [eax]
mov dword [ebp + 0x3c], eax
and ax, 0xc0
cmp al, 0xc0
jne 0x58b99f
mov eax, dword [ebp + 0x3c]
and eax, 0x3f
movzx edi, byte [eax + 0x5f7328]
mov eax, dword [edi*4 + 0x5f7310]
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 0x58b995
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 0x58b978
inc edi
mov dword [ebp - 0x94], edi
mov edi, dword [ebp + 0x48]
push dword [ebx + 0x24]
push dword [ebp + 0x3c]
call fcn.005acc7d
test eax, eax
pop ecx
pop ecx
je 0x58b9c6
mov eax, dword [ebp - 0x94]
add dword [ebx + 4], eax
inc edi
cmp edi, dword [ebx + 0x74]
mov dword [ebp + 0x48], edi
jl 0x58b929
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58ba4b
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58d1d4
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [esi + 4], eax
jne 0x58ba2d
mov eax, esi
mov esi, dword [esi]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x630d80]
test esi, esi
pop ecx
je 0x58ce5c
and dword [esi + 0x194], 0
mov dword [ebx + 0x64], esi
jmp 0x58ce7f
dec eax
mov dword [esi + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x58ba29
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x74], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58b9dc
mov ebx, dword [ebp - 0x74]
jmp 0x58cd49
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b824
mov eax, dword [ebx + 0x6c]
cmp eax, dword [ebx + 0x74]
jge 0x58cee1
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58cee1
mov ecx, dword [ebx + 0x70]
mov edi, dword [ebx + 0x20]
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x58baa4
mov ecx, dword [ebx + 0x70]
jmp 0x58bac1
mov ecx, dword [ebp + 0x34]
test ecx, ecx
je 0x58cff1
lea edi, [ebp + 0x50]
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x58cff1
mov ecx, dword [ebp + 0x34]
add ecx, eax
mov dword [ebx + 4], ecx
inc dword [ebx + 0x6c]
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x7c], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58ba62
mov ebx, dword [ebp - 0x7c]
jmp 0x58cd49
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp + 0x48], eax
jmp 0x58bb31
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 0x58bb36
mov edi, dword [ebx + 0x20]
mov ecx, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x58bb36
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 0x58bb06
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58cff1
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xe4], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58bb87
mov edi, dword [ebp + 0x70]
mov ebx, dword [edi + 0x64]
mov esi, dword [ebx + 0x194]
test esi, esi
mov dword [ebp + 0x4c], ebx
jne 0x58cdac
mov eax, dword [ebx + 0x70]
sub dword [ebx + 4], eax
jmp 0x58bb36
mov ebx, dword [ebp - 0xe4]
jmp 0x58cd49
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58d1d4
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58ba03
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x58ba03
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 0x58ba03
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push edi
push esi
mov dword [ebp - 0x9c], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58bb92
mov ebx, dword [ebp - 0x9c]
jmp 0x58cd49
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov ecx, dword [ebx + 0x78]
jmp 0x58bc34
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58bc39
movzx edx, byte [eax]
mov edi, dword [esi + 0x14]
movzx edx, byte [edx + edi]
cmp dword [ebx + 0x68], edx
jne 0x58bc39
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58bc18
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58cee1
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xec], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58bc86
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 0x58bc39
jmp 0x58b824
mov ebx, dword [ebp - 0xec]
jmp 0x58cd49
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58d1d4
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58ba03
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x58ba03
movzx ecx, byte [eax]
mov edx, dword [esi + 0x68]
inc eax
cmp edx, ecx
mov dword [esi + 4], eax
jne 0x58ba03
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push edi
push esi
mov dword [ebp - 0x84], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58bc91
mov ebx, dword [ebp - 0x84]
jmp 0x58cd49
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov ecx, dword [ebx + 0x78]
jmp 0x58bd25
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58bd2a
movzx edx, byte [eax]
cmp dword [ebx + 0x68], edx
jne 0x58bd2a
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58bd10
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58cee1
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xf4], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58bd77
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 0x58bd2a
jmp 0x58b824
mov ebx, dword [ebp - 0xf4]
jmp 0x58cd49
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58ce63
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 0x58bdf2
mov ecx, ebx
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, ebx
lea edi, [edx + edx*2]
shl edi, 1
mov ebx, ecx
mov ecx, edi
shl ebx, cl
test edx, edx
jle 0x58bdef
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 0x58bdd6
mov edi, dword [ebp + 0x70]
cmp ebx, 0x100
jge 0x58be01
mov ecx, dword [edi + 0x14]
movzx ebx, byte [ecx + ebx]
mov ecx, dword [esi + 0x6c]
cmp ecx, dword [esi + 0x74]
jge 0x58d170
cmp eax, dword [edi + 0x44]
jae 0x58d170
cmp dword [esi + 0x68], ebx
je 0x58d170
inc ecx
push 0x1d8
mov dword [esi + 0x6c], ecx
call dword [0x630d7c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0xac], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58bd82
mov ebx, dword [ebp - 0xac]
jmp 0x58cd49
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58bec7
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58d1d4
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58ba03
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x58ba03
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 0x58ba03
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push edi
push esi
mov dword [ebp - 0x8c], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58be69
mov ebx, dword [ebp - 0x8c]
jmp 0x58cd49
cmp dword [ebp + 0x38], eax
mov ecx, dword [ebx + 4]
mov dword [ebx + 0x2c], ecx
je 0x58bffe
mov edi, dword [ebx + 0x78]
jmp 0x58bf8a
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x58bfd3
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x58bf6e
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x58bf68
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 0x58bf46
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58bf7c
mov edx, dword [esi + 0x14]
movzx eax, byte [edx + eax]
cmp dword [ebx + 0x68], eax
je 0x58bfd3
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 0x58befb
jmp 0x58bfd3
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b824
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [ebx + 4], eax
je 0x58cee1
jmp 0x58bfc9
dec eax
mov dword [ebx + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x58bfc5
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x68], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58bf98
mov ebx, dword [ebp - 0x68]
jmp 0x58cd49
mov ecx, dword [ebx + 0x78]
jmp 0x58c01f
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c024
movzx edx, byte [eax]
mov edi, dword [esi + 0x14]
movzx edx, byte [edx + edi]
cmp dword [ebx + 0x68], edx
je 0x58c024
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58c003
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58cee1
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xfc], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58c072
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b824
dec dword [ebx + 4]
jmp 0x58c024
mov ebx, dword [ebp - 0xfc]
jmp 0x58cd49
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58ce63
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 0x58c0ed
mov ecx, ebx
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, ebx
lea edi, [edx + edx*2]
shl edi, 1
mov ebx, ecx
mov ecx, edi
shl ebx, cl
test edx, edx
jle 0x58c0ea
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 0x58c0d1
mov edi, dword [ebp + 0x70]
mov ecx, dword [esi + 0x6c]
cmp ecx, dword [esi + 0x74]
jge 0x58d170
cmp eax, dword [edi + 0x44]
jae 0x58d170
cmp dword [esi + 0x68], ebx
je 0x58d170
inc ecx
push 0x1d8
mov dword [esi + 0x6c], ecx
call dword [0x630d7c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x70], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58c07d
mov ebx, dword [ebp - 0x70]
jmp 0x58cd49
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58c1a6
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58d1d4
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58ba03
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x58ba03
movzx ecx, byte [eax]
mov edx, dword [esi + 0x68]
inc eax
cmp edx, ecx
mov dword [esi + 4], eax
je 0x58ba03
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push edi
push esi
mov dword [ebp - 0x78], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58c14f
mov ebx, dword [ebp - 0x78]
jmp 0x58cd49
cmp dword [ebp + 0x38], eax
mov ecx, dword [ebx + 4]
mov dword [ebx + 0x2c], ecx
je 0x58c2cf
mov edi, dword [ebx + 0x78]
jmp 0x58c255
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x58c29e
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x58c247
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x58c241
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 0x58c21f
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp dword [ebx + 0x68], eax
je 0x58c29e
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 0x58c1d4
jmp 0x58c29e
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b824
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [ebx + 4], eax
je 0x58cee1
jmp 0x58c294
dec eax
mov dword [ebx + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x58c290
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x88], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58c263
mov ebx, dword [ebp - 0x88]
jmp 0x58cd49
mov ecx, dword [ebx + 0x78]
jmp 0x58c2e9
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c2ee
movzx edx, byte [eax]
cmp dword [ebx + 0x68], edx
je 0x58c2ee
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58c2d4
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58cee1
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x104], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58c33c
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b824
dec dword [ebx + 4]
jmp 0x58c2ee
mov ebx, dword [ebp - 0x104]
jmp 0x58cd49
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58d1d4
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58ba03
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x58ba03
movzx edi, byte [eax]
mov ecx, edi
inc eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [esi + 4], eax
jne 0x58c3cf
mov ecx, edi
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7328]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp + 0xc], ecx
mov ecx, dword [edx*4 + 0x5f7310]
and ecx, edi
mov edi, ecx
mov ecx, dword [ebp + 0xc]
shl edi, cl
test edx, edx
jle 0x58c3cf
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 0x58c3b4
mov eax, dword [esi + 0x64]
add eax, 0xfffffffb
cmp eax, 7
ja case.default.0x58c51d
jmp dword [eax*4 + 0x58d36b]
test byte [esi + 0x10], 4
jne case.0x58c3de.12
push edi
call fcn.00588ce7
pop ecx
test al, al
jmp 0x58c433
cmp edi, 0x100
jge case.0x58c3de.12
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 4
jmp 0x58c433
cmp edi, 0x100
jge 0x58ba03
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 4
jmp 0x58c486
cmp edi, 0x100
jge 0x58c43b
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 1
jne 0x58ba03
jmp case.0x58c3de.12
push edi
call fcn.00588d0b
pop ecx
cmp al, 1
jmp 0x58c486
cmp edi, 0x100
jge 0x58c457
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 1
jmp 0x58c486
push edi
call fcn.00588d0b
pop ecx
test al, al
jmp 0x58c486
cmp edi, 0x100
jge case.0x58c3de.12
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 0x10
jmp 0x58c433
cmp edi, 0x100
jge 0x58ba03
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 0x10
je 0x58ba03
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x90], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58c347
mov ebx, dword [ebp - 0x90]
jmp 0x58cd49
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
jmp 0x58c5b0
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58d1d4
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58ba03
mov ecx, dword [esi + 4]
cmp ecx, dword [ebx + 0x44]
jae 0x58ba03
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.0x58c51d
jmp dword [ecx*4 + 0x58d38b]
test byte [esi + 0x10], 4
jne case.0x58c51d.12
push eax
call fcn.00588ce7
pop ecx
test al, al
jmp 0x58c555
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 4
jmp 0x58c555
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 4
jmp 0x58c593
cmp eax, 0x100
jge 0x58c55d
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 1
jne 0x58ba03
jmp case.0x58c51d.12
push eax
call fcn.00588d0b
pop ecx
cmp al, 1
jmp 0x58c593
cmp eax, 0x100
jge 0x58c578
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 1
jmp 0x58c593
push eax
call fcn.00588d0b
pop ecx
test al, al
jmp 0x58c593
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 0x10
jmp 0x58c555
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 0x10
je 0x58ba03
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630d7c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x98], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58c4d8
mov ebx, dword [ebp - 0x98]
jmp 0x58cd49
mov ecx, dword [ebx + 4]
cmp dword [ebp + 0x38], eax
mov dword [ebx + 0x2c], ecx
mov eax, dword [ebx + 0x64]
je 0x58cb8e
add eax, 0xfffffffb
cmp eax, 7
ja case.default.0x58cb9a
jmp dword [eax*4 + 0x58d3ab]
mov eax, dword [ebx + 0x74]
cmp eax, 0x7fffffff
jge 0x58c695
test byte [ebx + 0x10], 4
jne 0x58c664
mov ecx, dword [ebx + 0x78]
cmp ecx, eax
mov dword [ebp + 0x48], ecx
jge 0x58cb5d
mov edi, dword [esi + 0x44]
cmp dword [ebx + 4], edi
jae 0x58cb5d
mov eax, dword [ebx + 4]
movzx ax, byte [eax]
push eax
call fcn.00588ce7
test al, al
pop ecx
jne 0x58cb5d
mov eax, dword [ebx + 4]
jmp 0x58c649
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
jne 0x58c654
inc eax
mov dword [ebx + 4], eax
mov edi, dword [esi + 0x44]
cmp eax, edi
jb 0x58c63f
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x74]
jl 0x58c61b
jmp 0x58cb5d
mov edi, dword [ebx + 0x78]
cmp edi, eax
jge 0x58cb5d
inc dword [ebx + 4]
mov eax, dword [ebx + 4]
jmp 0x58c685
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
jne 0x58c68a
inc eax
mov dword [ebx + 4], eax
cmp eax, dword [esi + 0x44]
jb 0x58c677
inc edi
cmp edi, dword [ebx + 0x74]
jl 0x58c66f
jmp 0x58cb5d
test byte [ebx + 0x10], 4
jne 0x58c6df
mov ecx, dword [ebx + 0x78]
cmp ecx, eax
mov dword [ebp + 0x48], ecx
jge 0x58cb5d
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58cb5d
movzx ax, byte [edi]
push eax
call fcn.00588ce7
test al, al
pop ecx
jne 0x58cb5d
inc edi
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [ebx + 4], edi
cmp eax, dword [ebx + 0x74]
jl 0x58c6a9
jmp 0x58cb5d
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 0x58c6f0
mov eax, esi
add ecx, eax
mov dword [ebx + 4], ecx
jmp 0x58cb5d
mov edi, dword [ebx + 0x78]
jmp 0x58c792
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x58cb5d
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x58c775
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x58c76f
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 0x58c74d
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58c789
mov edx, dword [esi + 0x18]
test byte [eax + edx], 4
jne 0x58cb5d
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 0x58c702
jmp 0x58cb5d
mov edi, dword [ebx + 0x78]
jmp 0x58c83f
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x58cb5d
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x58c81e
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x58c818
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 0x58c7f6
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58cb5d
mov edx, dword [esi + 0x18]
test byte [eax + edx], 4
je 0x58cb5d
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 0x58c7ab
jmp 0x58cb5d
mov edi, dword [ebx + 0x78]
jmp 0x58c90a
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
mov dword [ebp - 0xa0], 1
jae 0x58cb5d
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x58c8d6
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x58c8cc
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 0x58c8aa
inc edi
mov dword [ebp - 0xa0], edi
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58c8ec
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 1
jne 0x58cb5d
jmp 0x58c8fb
push eax
call fcn.00588d0b
cmp al, 1
pop ecx
je 0x58cb5d
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 0x58c858
jmp 0x58cb5d
mov edi, dword [ebx + 0x78]
jmp 0x58c9c6
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
mov dword [ebp + 0x40], 1
jae 0x58cb5d
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x58c99b
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x58c994
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 0x58c972
inc edi
mov dword [ebp + 0x40], edi
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58c9ab
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 1
jmp 0x58c9b4
push eax
call fcn.00588d0b
pop ecx
test al, al
je 0x58cb5d
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 0x58c923
jmp 0x58cb5d
mov edi, dword [ebx + 0x78]
jmp 0x58ca6f
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x58cb5d
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x58ca52
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x58ca4c
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 0x58ca2a
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58ca66
mov edx, dword [esi + 0x18]
test byte [eax + edx], 0x10
jne 0x58cb5d
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 0x58c9df
jmp 0x58cb5d
mov edi, dword [ebx + 0x78]
jmp 0x58cb14
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x58cb5d
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x58cafb
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7328]
mov edx, dword [edi*4 + 0x5f7310]
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 0x58caf5
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 0x58cad3
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58cb5d
mov edx, dword [esi + 0x18]
test byte [eax + edx], 0x10
je 0x58cb5d
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 0x58ca88
jmp 0x58cb5d
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b824
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [ebx + 4], eax
je 0x58cee1
jmp 0x58cb53
dec eax
mov dword [ebx + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x58cb4f
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xb0], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
jne 0x58cb22
mov ebx, dword [ebp - 0xb0]
jmp 0x58cd49
add eax, 0xfffffffb
cmp eax, 7
ja case.default.0x58cb9a
jmp dword [eax*4 + 0x58d3cb]
test byte [ebx + 0x10], 4
jne case.0x58cb9a.12
mov eax, dword [ebx + 0x78]
mov dword [ebp + 0x48], eax
jmp 0x58cbd8
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58ccf6
movzx ax, byte [edi]
push eax
call fcn.00588ce7
test al, al
pop ecx
jne 0x58ccf6
inc edi
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [ebx + 4], edi
cmp eax, dword [ebx + 0x74]
jl 0x58cbaf
jmp 0x58ccf6
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 0x58cbf6
mov eax, edx
add ecx, eax
mov dword [ebx + 4], ecx
jmp 0x58ccf6
mov ecx, dword [ebx + 0x78]
jmp 0x58cc26
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58ccf6
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 4
jne 0x58ccf6
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58cc05
jmp 0x58ccf6
mov ecx, dword [ebx + 0x78]
jmp 0x58cc56
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58ccf6
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 4
je 0x58ccf6
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58cc35
jmp 0x58ccf6
mov ecx, dword [ebx + 0x78]
jmp 0x58cc82
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58ccf6
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 1
jne 0x58ccf6
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58cc65
jmp 0x58ccf6
mov ecx, dword [ebx + 0x78]
jmp 0x58cca7
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58ccf6
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 1
je 0x58ccf6
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58cc8e
jmp 0x58ccf6
mov ecx, dword [ebx + 0x78]
jmp 0x58cccc
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58ccf6
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 0x10
jne 0x58ccf6
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58ccb3
jmp 0x58ccf6
mov ecx, dword [ebx + 0x78]
jmp 0x58ccf1
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58ccf6
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 0x10
je 0x58ccf6
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58ccd8
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58cee1
push 0x1d8
call dword [0x630d7c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x10c], eax
call fcn.00588c81
add esp, 0xc
test eax, eax
je 0x58cd43
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 0x58ccf6
jmp 0x58b824
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 0x588dfd
inc dword [esi]
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630d80]
test ebx, ebx
pop ecx
je 0x58cda5
mov dword [ebx + 0x194], 0xfffffff8
jmp 0x58d1fe
push 0xfffffffffffffff8
jmp 0x58d211
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630d80]
test ebx, ebx
pop ecx
je 0x58cdcd
mov dword [ebx + 0x194], esi
mov dword [edi + 0x64], ebx
jmp 0x58d201
mov eax, esi
jmp 0x58d212
cmp byte [0x630d84], 0
mov edx, dword [edi + 8]
je 0x58ce0b
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 0x58ce2b
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 [0x630d80]
test ebx, ebx
pop ecx
je 0x58ce5c
and dword [ebx + 0x194], 0
jmp 0x58cdc5
xor eax, eax
jmp 0x58d212
mov eax, esi
mov esi, dword [esi]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x630d80]
test esi, esi
pop ecx
je 0x58ce8d
mov dword [esi + 0x194], ebx
mov dword [edi + 0x64], esi
push 1
add esi, 0x198
push esi
jmp 0x58d20a
mov eax, ebx
jmp 0x58d212
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 [0x630d80]
test esi, esi
pop ecx
je 0x58cebc
mov dword [esi + 0x194], edi
jmp 0x58ba21
mov eax, edi
jmp 0x58d212
mov edi, dword [ebp + 0x70]
mov eax, dword [edi + 0x64]
mov ebx, dword [eax + 0x194]
mov esi, dword [eax]
jmp 0x58ce67
cmp dword [esi + 0x30], 0
je 0x58cf04
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x48]
jne 0x58cf04
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630d80]
test ebx, ebx
pop ecx
je 0x58ce5c
and dword [ebx + 0x194], 0
jmp 0x58d1fe
cmp byte [0x630d84], 0
mov eax, dword [ebx + 4]
mov dword [esi + 0x4c], eax
jne 0x58cf19
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 [0x630d80]
xor eax, eax
inc eax
test ebx, ebx
pop ecx
je 0x58d212
mov dword [ebx + 0x194], eax
mov dword [esi + 0x64], ebx
push eax
jmp 0x58d203
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630d80]
test ebx, ebx
pop ecx
je 0x58cf64
mov dword [ebx + 0x194], 0xfffffffa
jmp 0x58d1fe
push 0xfffffffffffffffa
jmp 0x58d211
mov eax, dword [ebx + 0x38]
mov dword [edx + 0x5c], eax
mov eax, dword [ebx + 0x48]
lea ecx, [ebx + 0x98]
cmp eax, ecx
je 0x58cf86
push eax
call dword [0x630d78]
pop ecx
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630d80]
xor eax, eax
inc eax
test ebx, ebx
pop ecx
je 0x58d212
mov ecx, dword [ebp + 0x70]
mov dword [ebx + 0x194], eax
mov dword [ecx + 0x64], ebx
jmp 0x58cf3c
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630d80]
test ebx, ebx
pop ecx
je 0x58cdcd
mov dword [ebx + 0x194], esi
mov eax, dword [ebp + 0x70]
mov dword [eax + 0x64], ebx
jmp 0x58d201
mov eax, dword [ebx + 0x38]
mov dword [edx + 0x5c], eax
mov eax, dword [ebx + 0x48]
lea ecx, [ebx + 0x98]
cmp eax, ecx
je 0x58cff1
push eax
call dword [0x630d78]
pop ecx
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630d80]
test ebx, ebx
pop ecx
je 0x58ce5c
and dword [ebx + 0x194], 0
jmp 0x58cfcb
mov esi, dword [ebp + 0x70]
add esi, 0x64
mov eax, dword [esi]
mov edi, dword [eax + 0x194]
test edi, edi
je 0x58d045
mov ebx, dword [eax]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630d80]
test ebx, ebx
pop ecx
je 0x58cebc
mov dword [ebx + 0x194], edi
mov dword [esi], ebx
jmp 0x58d201
mov ebx, dword [eax]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630d80]
test ebx, ebx
pop ecx
je 0x58ce5c
and dword [ebx + 0x194], 0
jmp 0x58d03e
mov esi, dword [ebp + 0x70]
add esi, 0x64
mov eax, dword [esi]
mov ebx, dword [eax + 0x194]
test ebx, ebx
je 0x58d0b6
mov edi, dword [eax]
push eax
mov dword [ebp + 0x4c], edi
call dword [0x630d80]
test edi, edi
pop ecx
je 0x58ce8d
mov dword [edi + 0x194], ebx
mov dword [esi], edi
push 1
add edi, 0x198
push edi
jmp 0x58d20a
mov esi, dword [ebp + 0x70]
add esi, 0x64
mov eax, dword [esi]
mov edi, dword [eax + 0x194]
test edi, edi
jne 0x58d023
mov edi, dword [eax]
push eax
mov dword [ebp + 0x4c], edi
call dword [0x630d80]
test edi, edi
pop ecx
je 0x58ce5c
and dword [edi + 0x194], 0
jmp 0x58d090
cmp byte [0x630d84], 0
mov eax, dword [ebx + 4]
mov dword [esi + 0x4c], eax
je 0x58cf13
mov eax, dword [ebx + 0x30]
mov cl, byte [eax]
cmp cl, 0x4a
je 0x58cf19
cmp cl, 0x46
je 0x58d103
cmp cl, 0x48
je 0x58d103
xor dl, dl
jmp 0x58d153
mov dl, 1
jmp 0x58d153
mov cl, byte [eax]
cmp cl, 0x50
jb 0x58d141
test dl, dl
movzx eax, cl
lea eax, [eax + eax - 0xa0]
lea edi, [ebx + 0x80]
mov dword [edi], eax
je 0x58d135
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 [0x5f72d8]
add dword [ebx + 0x30], eax
jmp 0x58d150
movzx ecx, cl
movzx ecx, byte [ecx + 0x5f7288]
add ecx, eax
mov dword [ebx + 0x30], ecx
mov eax, dword [ebx + 0x30]
cmp eax, dword [ebx + 8]
jb 0x58d107
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 0x58cf19
mov edi, dword [ebp + 0x70]
mov eax, esi
mov esi, dword [esi]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x630d80]
test esi, esi
pop ecx
je 0x58ce5c
and dword [esi + 0x194], 0
jmp 0x58ce7c
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630d80]
test ebx, ebx
pop ecx
je 0x58d1dd
mov dword [ebx + 0x194], 0xfffffff2
jmp 0x58d1fe
mov eax, esi
mov esi, dword [esi]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x630d80]
test esi, esi
pop ecx
je 0x58d1dd
mov dword [esi + 0x194], 0xfffffff2
jmp 0x58ba21
mov eax, esi
mov esi, dword [esi]
jmp 0x58cea2
push 0xfffffffffffffff2
jmp 0x58d211
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630d80]
test ebx, ebx
pop ecx
je 0x58d20f
mov dword [ebx + 0x194], 0xfffffffb
mov dword [esi + 0x64], ebx
push 1
add ebx, 0x198
push ebx
call fcn.00588cb8
push 0xfffffffffffffffb
pop eax
mov ecx, dword [ebp + 0x58]
call fcn.005d3189
pop edi
pop esi
pop ebx
add ebp, 0x5c
leave
ret