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

Disassembly:
push ebp
lea ebp, [esp - 0x5c]
sub esp, 0x1a4
mov eax, dword [0x633400]
push ebx
push esi
mov esi, dword [ebp + 0x70]
push edi
push 0x1d8
mov dword [ebp + 0x58], eax
call dword [0x630f1c]
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 0x58c6d7
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 0x58878d
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 0x5887b8
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jb 0x5887b8
cmp eax, dword [esi + 0x48]
jbe 0x5887b8
xor edx, edx
inc edx
mov dword [esi + 0x38], edx
jmp 0x5887bb
xor edx, edx
inc edx
mov eax, dword [ebx + 0x84]
push 0x50
pop ecx
cmp eax, ecx
jle 0x5887fd
add eax, 0xffffffb0
cmp eax, 0x64
mov dword [ebx + 0x7c], eax
jle 0x5887e3
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 0x58a696
mov dword [ebx + 0x84], ecx
mov eax, dword [ebx + 0x84]
cmp eax, ecx
ja case.0x588812.13
movzx eax, byte [eax + 0x58cc3e]
jmp dword [eax*4 + 0x58cb86]
add dword [ebx + 8], 3
jmp 0x58878d
mov edi, dword [esi + 0x5c]
test edi, edi
je 0x58c837
cmp dword [edi + 4], 0
jne 0x58c837
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.005d27d0
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 0x58878d
mov eax, dword [ebx + 8]
movzx eax, byte [eax + 1]
mov dword [ebx + 0x10], eax
add dword [ebx + 8], 2
jmp 0x58878d
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xc8], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58a9b9
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
cmp edi, 1
mov dword [ebp + 0x4c], ebx
je 0x5888d6
test edi, edi
jne 0x58b188
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.0x588812.69
mov eax, dword [ebx + 8]
cmp byte [eax], 0x42
je 0x58c845
test byte [ebx + 0x18], 1
jne 0x58c87d
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 0x5888ec
add eax, 3
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x50]
mov dword [ebx + 0xc], eax
jmp 0x58878d
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x108], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58a9e6
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
cmp edi, 1
mov dword [ebp + 0x4c], ebx
je 0x58c845
test edi, edi
jne 0x58b188
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.0x588812.70
test byte [ebx + 0x18], 1
jne 0x58c87d
add eax, 3
jmp 0x588860
mov eax, dword [ebx + 8]
xor ecx, ecx
cmp dword [ebp + 0x38], edi
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
je 0x5889c8
mov edi, ecx
xor ecx, ecx
test edi, edi
jle case.0x588812.76
dec dword [ebx + 4]
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
jb 0x58c845
jmp 0x5889b4
dec eax
mov dword [ebx + 4], eax
mov dl, byte [eax]
and dl, 0xc0
cmp dl, 0x80
je 0x5889b0
inc ecx
cmp ecx, edi
jl 0x58899f
jmp case.0x588812.76
sub dword [ebx + 4], ecx
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
jb 0x58c845
jmp case.0x588812.76
mov edi, dword [0x6f8d3c]
test edi, edi
je 0x588a92
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 0x58c845
jl 0x58b188
add dword [ebx + 8], 6
jmp 0x58878d
mov eax, dword [ebx + 8]
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 0x34], eax
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xd0], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58ab1f
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
cmp edi, 1
mov dword [ebp + 0x4c], ebx
je 0x588b02
test edi, edi
jne 0x58b188
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 0x588aa7
mov eax, dword [ebx + 8]
mov al, byte [eax]
cmp al, 0x4a
je 0x588b13
cmp al, 0x41
jne 0x58c845
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 0x588b13
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 0x58897b
cmp ecx, dword [ebx + 0x34]
je 0x58897b
cmp byte [eax + 3], 0x12
jne 0x588b5e
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 0x58ab75
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xf8], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58ab2a
mov ebx, dword [ebp - 0xf8]
jmp 0x58acfc
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.0x588812.65
jmp 0x58878d
mov eax, dword [ebx + 8]
inc eax
push 0x1d8
mov dword [ebx + 0x28], eax
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x100], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58abec
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b188
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 0x588c01
jmp 0x58897b
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 0x588c22
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xe8], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58ac03
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b188
inc dword [ebx + 8]
jmp 0x58878d
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 0x58ca38
cmp al, 0x46
je 0x58ca38
cmp al, 0x47
je 0x58ca38
cmp al, 0x48
je 0x58ca38
cmp al, 0x4a
je 0x58ca38
cmp al, 0x4b
je 0x588dad
movzx eax, al
add eax, 0xffffffb0
cmp eax, 0x64
mov dword [ebx + 0x7c], eax
jle 0x588cf2
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 0x588dad
mov dword [esi + 0x54], eax
mov edi, dword [ebx + 0x80]
cmp edi, dword [esi + 0x10]
jl 0x588d1b
mov dword [esi + 0x1c], edx
jmp 0x588d62
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 0x588d4e
add eax, 2
mov dword [ebx + 0xc], eax
cmp byte [0x630f24], 0
je 0x588d62
mov eax, dword [ebx + 0xc]
cmp eax, dword [esi + 0x50]
jle 0x588d62
mov dword [esi + 0x50], eax
mov edx, dword [esi + 0x5c]
test edx, edx
je 0x588dad
mov eax, dword [edx + 4]
cmp eax, dword [ebx + 0x7c]
jne 0x588dad
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 0x58878d
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 8]
cmp byte [eax], 0x42
je 0x58897b
mov ecx, dword [ebx + 4]
cmp ecx, dword [ebx + 0x34]
je 0x58897b
cmp byte [eax], 0x44
push 0x1d8
jne 0x58ac62
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x110], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58ac1a
mov ebx, dword [ebp - 0x110]
jmp 0x58acfc
cmp dword [esi + 0x20], edi
je 0x588e1a
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
je 0x58c845
test byte [ebx + 0x10], 2
je case.0x588812.1
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
je 0x588c78
movzx ax, byte [eax - 1]
push eax
call fcn.0058864b
pop ecx
test al, al
jmp 0x5893d7
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x40]
jmp 0x58934f
mov eax, dword [esi + 0x58]
add eax, dword [esi + 0x40]
cmp dword [ebx + 4], eax
jmp 0x58934f
test byte [ebx + 0x10], 2
je 0x588e6e
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jb 0x588ea4
cmp dword [esi + 0x24], edi
jmp 0x58934f
cmp dword [esi + 0x24], edi
jne 0x58c845
cmp dword [esi + 0x2c], edi
je case.0x588812.16
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jb 0x58c845
jmp 0x588c78
mov eax, dword [esi + 0x44]
lea ecx, [eax - 1]
mov eax, dword [ebx + 4]
cmp eax, ecx
jb 0x58c845
jne 0x588c78
movzx ax, byte [eax]
jmp 0x588e31
cmp dword [ebp + 0x38], edi
mov eax, dword [ebx + 4]
je 0x588fe3
cmp eax, dword [esi + 0x40]
jne 0x588ec3
mov dword [ebx + 0x5c], edi
jmp 0x588f59
dec eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
mov dword [ebp + 0x44], eax
jne 0x588edf
dec eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x588ed1
mov dword [ebp + 0x44], eax
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x588f3d
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x588f3d
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 0x588f1b
cmp eax, 0x100
jge 0x588f52
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
je 0x588f52
xor eax, eax
inc eax
jmp 0x588f54
xor eax, eax
mov dword [ebx + 0x5c], eax
xor edi, edi
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jb 0x588f69
mov dword [ebx + 0x50], edi
jmp 0x589017
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x588fc7
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x588fc7
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 0x588fa5
cmp eax, 0x100
jge 0x588fdc
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
je 0x588fdc
xor eax, eax
inc eax
jmp 0x588fde
xor eax, eax
mov dword [ebx + 0x50], eax
jmp 0x589017
cmp eax, dword [esi + 0x40]
je 0x588ff9
movzx eax, byte [eax - 1]
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
je 0x588ff9
mov eax, edx
jmp 0x588ffb
xor eax, eax
mov dword [ebx + 0x5c], eax
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x589012
movzx eax, byte [eax]
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
jne 0x589014
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 0x589032
sub eax, dword [ebx + 0x5c]
neg eax
sbb eax, eax
inc eax
jmp 0x58903c
xor ecx, ecx
cmp eax, dword [ebx + 0x5c]
setne cl
mov eax, ecx
test eax, eax
jmp 0x589a84
test byte [ebx + 0x10], 4
jne 0x589064
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x589064
movzx ax, byte [eax]
push eax
call fcn.0058864b
test al, al
pop ecx
jne 0x58c845
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x44]
cmp ecx, edx
lea eax, [ecx + 1]
mov dword [ebx + 4], eax
jae 0x58c845
cmp dword [ebp + 0x38], 0
je 0x588c78
jmp 0x589096
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
jne 0x588c78
inc eax
mov dword [ebx + 4], eax
cmp eax, dword [esi + 0x44]
jb 0x589084
jmp 0x588c78
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x44]
cmp eax, ecx
lea edx, [eax + 1]
mov dword [ebx + 4], edx
jae 0x58c845
jmp 0x588c78
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58c845
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x589124
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x589124
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x34], ecx
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x34]
shl eax, cl
test edx, edx
jle 0x589124
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 0x589109
cmp eax, 0x100
jge 0x588c78
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 4
jmp 0x58934f
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58c845
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5891a6
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5891a6
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x3c], ecx
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x3c]
shl eax, cl
test edx, edx
jle 0x5891a6
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 0x58918b
cmp eax, 0x100
jge 0x58c845
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 4
jmp 0x5893d7
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58c845
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x589228
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x589228
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x44], ecx
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x44]
shl eax, cl
test edx, edx
jle 0x589228
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 0x58920d
cmp eax, 0x100
jge 0x58923b
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 1
jmp 0x58934f
push eax
call fcn.0058866f
pop ecx
cmp al, 1
jmp 0x5893d7
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58c845
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5892b4
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5892b4
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x4c], ecx
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x4c]
shl eax, cl
test edx, edx
jle 0x5892b4
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 0x589299
cmp eax, 0x100
jge 0x5892c7
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 1
jmp 0x5893d7
push eax
call fcn.0058866f
jmp 0x588e37
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58c845
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x58933d
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x58933d
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x54], ecx
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x54]
shl eax, cl
test edx, edx
jle 0x58933d
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 0x589322
cmp eax, 0x100
jge 0x588c78
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
jne 0x58c845
jmp 0x588c78
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58c845
movzx eax, byte [edi]
inc edi
cmp dword [ebp + 0x38], 0
mov dword [ebx + 4], edi
je 0x5893c5
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x5893c5
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x5c], ecx
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x5c]
shl eax, cl
test edx, edx
jle 0x5893c5
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 0x5893aa
cmp eax, 0x100
jge 0x58c845
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 0x10
je 0x58c845
jmp 0x588c78
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 [0x630f24], 0
je 0x589415
mov eax, dword [ebx + 0x80]
mov ecx, dword [esi + 8]
cmp dword [ecx + eax*4], edi
jge 0x589415
mov dword [ebx + 0x70], edi
jmp 0x58943d
mov eax, dword [ebx + 0x80]
cmp eax, dword [ebx + 0xc]
jge 0x589433
mov ecx, dword [esi + 8]
lea eax, [ecx + eax*4]
mov edx, dword [eax]
cmp edx, edi
jl 0x589433
mov eax, dword [eax + 4]
sub eax, edx
jmp 0x58943a
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 0x58953e
cmp al, 0x38
jbe 0x589490
cmp al, 0x3a
ja 0x58953e
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 0x58948a
mov dword [ebx + 0x74], closesocket
add dword [ebx + 8], 5
jmp 0x5894c1
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 + 0x5f5304]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x5f530c]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x5894c1
mov dword [ebx + 0x74], closesocket
cmp dword [ebx + 0x70], 0
je 0x58878d
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x58950c
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.00588699
test eax, eax
pop ecx
pop ecx
je 0x58c845
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 0x5894d6
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x58878d
cmp dword [ebx + 0x58], 0
je 0x58ad8a
push 0x1d8
mov dword [ebx + 0x6c], eax
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58ad73
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.00588699
test eax, eax
pop ecx
pop ecx
je 0x58c845
mov eax, dword [ebx + 4]
add edi, eax
mov dword [ebx + 4], edi
jmp 0x58878d
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 0x5895f7
cmp al, 0x38
jbe 0x5895c4
cmp al, 0x3a
ja 0x5895f7
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 0x5895be
mov dword [ebx + 0x74], closesocket
add dword [ebx + 8], 5
jmp 0x5895fd
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 + 0x5f5304]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x5f530c]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x5895fd
mov dword [ebx + 0x74], closesocket
jmp 0x5895fd
mov dword [ebx + 0x74], edx
mov dword [ebx + 0x78], edx
cmp dword [ebp + 0x38], 0
je 0x5896c9
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x589713
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58c845
movzx eax, byte [edi]
mov ecx, eax
inc edi
and cx, 0xc0
cmp cl, 0xc0
mov dword [ebx + 4], edi
jne 0x58967b
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x20], ecx
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x20]
shl eax, cl
test edx, edx
jle 0x58967b
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 0x589660
cmp eax, 0xff
jle 0x589691
cmp dword [ebx + 0x84], 0x3b
je 0x58c845
jmp 0x5896b8
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 0x58c955
mov esi, dword [ebp + 0x70]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x589616
jmp 0x589713
xor edi, edi
inc edi
cmp dword [ebx + 0x78], edi
jl 0x589713
mov ecx, dword [ebx + 4]
cmp ecx, dword [esi + 0x44]
jae 0x58c845
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 0x58c955
mov esi, dword [ebp + 0x70]
inc edi
cmp edi, dword [ebx + 0x78]
jle 0x5896d1
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x58878d
xor eax, eax
cmp dword [ebx + 0x58], eax
je 0x58afad
cmp dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x78]
push 0x1d8
mov dword [ebx + 0x6c], eax
je 0x58af0c
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58aef1
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 0x5897e6
cmp al, 0x38
jbe 0x5897b3
cmp al, 0x3a
ja 0x5897e6
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 0x5897ad
mov dword [ebx + 0x74], closesocket
add dword [ebx + 8], 5
jmp 0x5897ec
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 + 0x5f5304]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x5f530c]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x5897ec
mov dword [ebx + 0x74], closesocket
jmp 0x5897ec
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 0x589882
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c845
movzx edx, byte [eax]
lea edi, [eax + 1]
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x589860
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7260]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp + 0x18], ecx
mov ecx, dword [eax*4 + 0x5f7248]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp + 0x18]
shl edx, cl
test eax, eax
jle 0x589860
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 0x589845
push dword [ebx + 0x24]
push edx
call fcn.005ac5c8
test eax, eax
pop ecx
pop ecx
je 0x58c845
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x5897fb
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x58878d
cmp dword [ebx + 0x58], 0
je 0x58b27f
push 0x1d8
mov dword [ebx + 0x6c], eax
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58b264
cmp dword [ebp + 0x38], edi
je 0x589964
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 0x589923
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x58991e
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 0x589901
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 0x58c845
cmp eax, edi
jle 0x58995c
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 0x58c845
mov eax, dword [ebx + 0x70]
test eax, eax
jg 0x589938
dec dword [ebx + 0x70]
jmp 0x58878d
mov edi, dword [ebx + 4]
mov eax, dword [esi + 0x44]
sub eax, edi
cmp eax, edx
jl 0x58c845
mov eax, dword [ebx + 8]
mov cl, byte [edi]
mov al, byte [eax + 1]
inc edi
cmp al, cl
jmp 0x589ab5
cmp dword [ebp + 0x38], edi
je 0x589a8f
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 0x5899f1
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x5899ee
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 0x5899d1
add dword [ebx + 0x70], edi
mov edi, dword [ebx + 4]
mov eax, dword [esi + 0x44]
sub eax, edi
cmp dword [ebx + 0x70], eax
jg 0x58c845
movzx edx, byte [edi]
inc edi
cmp dword [ebx + 0x68], 0x80
jge 0x589a28
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 0x589a84
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x589a7b
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7260]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax*4 + 0x5f7248]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x28]
shl edx, cl
test eax, eax
jle 0x589a7b
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 0x589a60
mov eax, dword [ebx + 0x70]
add dword [ebx + 8], eax
cmp dword [ebx + 0x68], edx
je 0x58878d
jmp 0x58c845
mov edi, dword [ebx + 4]
mov eax, dword [esi + 0x44]
sub eax, edi
cmp eax, edx
jl 0x58c845
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 0x58c845
jmp 0x588872
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 0x589b34
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 0x589ad9
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 + 0x5f5304]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x5f530c]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x589b34
mov dword [ebx + 0x74], closesocket
cmp dword [ebp + 0x38], 0
je 0x589c1c
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 0x589bab
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x589ba5
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 0x589b88
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 0x58c845
add dword [ebx + 8], eax
cmp dword [ebx + 0x70], edi
jle 0x589c3a
and dword [ebp + 0x34], 0
cmp dword [ebx + 0x78], edi
mov dword [ebp + 0x48], edi
jl 0x589bfe
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 0x58c955
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 0x589bd6
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x588da5
cmp dword [ebx + 0x58], 0
je 0x58b45c
mov dword [ebx + 0x6c], eax
jmp 0x58b42d
mov eax, dword [esi + 0x44]
sub eax, dword [ebx + 4]
cmp dword [ebx + 0x78], eax
jg 0x58c845
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 0x589ca6
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 0x589c74
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 0x58c845
inc edi
cmp edi, dword [ebx + 0x78]
jle 0x589c52
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x58878d
cmp dword [ebx + 0x58], 0
je 0x58b571
push 0x1d8
mov dword [ebx + 0x6c], eax
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58b554
cmp dword [ebx + 0x78], edi
jl 0x589cc6
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 0x58c845
inc edi
cmp edi, dword [ebx + 0x78]
jle 0x589cab
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x58878d
cmp dword [ebx + 0x58], 0
je 0x58b669
push 0x1d8
mov dword [ebx + 0x6c], eax
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58b64c
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c845
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 0x589d69
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x589d69
mov ecx, eax
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp - 0x50], ecx
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x50]
shl eax, cl
test edx, edx
jle 0x589d69
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 0x589d4e
test byte [ebx + 0x10], 1
je 0x589d8c
cmp eax, 0x100
jge 0x589d7d
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 0x589d92
mov ecx, dword [ebx + 8]
movzx edx, byte [ecx]
inc ecx
cmp edx, eax
mov dword [ebx + 8], ecx
jne 0x58878d
jmp 0x58c845
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 0x589e14
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 0x589db9
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 + 0x5f5304]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x5f530c]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x589e14
mov dword [ebx + 0x74], closesocket
mov eax, dword [esi + 0x44]
sub eax, dword [ebx + 4]
cmp dword [ebx + 0x78], eax
jg 0x58c845
mov eax, dword [ebx + 8]
movzx eax, byte [eax]
mov dword [ebx + 0x68], eax
inc dword [ebx + 8]
test byte [ebx + 0x10], 1
je 0x589f47
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 0x589ede
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x589f08
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 0x589eb9
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7260]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp], ecx
mov ecx, dword [eax*4 + 0x5f7248]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp]
shl edx, cl
test eax, eax
jle 0x589eb9
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 0x589e9e
cmp edx, 0x100
jge 0x589ec8
mov eax, dword [esi + 0x14]
movzx edx, byte [eax + edx]
cmp dword [ebx + 0x68], edx
je 0x58c845
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x589e5f
jmp 0x589f08
xor ecx, ecx
inc ecx
cmp dword [ebx + 0x78], ecx
jl 0x589f08
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 0x58c845
inc ecx
cmp ecx, dword [ebx + 0x78]
jle 0x589ee6
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x58878d
xor eax, eax
cmp dword [ebx + 0x58], eax
je 0x58b848
cmp dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x78]
push 0x1d8
mov dword [ebx + 0x6c], eax
je 0x58b7bc
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58b79b
cmp dword [ebp + 0x38], 0
je 0x589fcc
xor eax, eax
inc eax
cmp dword [ebx + 0x78], eax
mov dword [ebp + 0x48], eax
jl 0x589fef
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 0x589fb6
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7260]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x30], ecx
mov ecx, dword [eax*4 + 0x5f7248]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x30]
shl edx, cl
test eax, eax
jle 0x589fb6
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 0x589f9b
cmp dword [ebx + 0x68], edx
je 0x58c845
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x589f5c
jmp 0x589fef
xor ecx, ecx
inc ecx
cmp dword [ebx + 0x78], ecx
jl 0x589fef
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 0x58c845
inc ecx
cmp ecx, dword [ebx + 0x78]
jle 0x589fd4
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x58878d
xor eax, eax
cmp dword [ebx + 0x58], eax
je 0x58bb21
cmp dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x78]
push 0x1d8
mov dword [ebx + 0x6c], eax
je 0x58baa2
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58ba87
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 0x58a0a2
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 0x58a047
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 + 0x5f5304]
mov dword [ebx + 0x78], ecx
movsx eax, byte [eax + 0x5f530c]
test eax, eax
mov dword [ebx + 0x74], eax
jne 0x58a0a2
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 0x58c845
test ecx, ecx
jle 0x58a657
cmp dword [ebp + 0x38], 0
je 0x58a4ae
mov edi, dword [ebx + 0x64]
add edi, 0xfffffffb
cmp edi, 7
ja case.default.0x58c4fe
jmp dword [edi*4 + 0x58cc8f]
xor edx, edx
inc edx
cmp ecx, edx
mov dword [ebp + 0x48], edx
jl 0x58a657
mov ecx, dword [ebx + 4]
cmp ecx, eax
jae 0x58c845
movzx edx, byte [ecx]
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
lea edi, [ecx + 1]
mov dword [ebx + 4], edi
jne 0x58a15d
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7260]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp + 0x24], ecx
mov ecx, dword [eax*4 + 0x5f7248]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp + 0x24]
shl edx, cl
test eax, eax
jle 0x58a15d
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 0x58a142
push edx
call fcn.0058864b
test al, al
pop ecx
je 0x58a172
test byte [ebx + 0x10], 4
je 0x58c845
mov eax, dword [esi + 0x44]
cmp edi, eax
jae 0x58a193
mov edi, dword [ebx + 4]
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x58a193
lea ecx, [edi + 1]
mov dword [ebx + 4], ecx
mov eax, dword [esi + 0x44]
cmp ecx, eax
jb 0x58a179
inc dword [ebp + 0x48]
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebx + 0x78]
jle 0x58a0f9
jmp 0x58a657
add ecx, edx
mov dword [ebx + 4], ecx
jmp 0x58a657
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x48], eax
jl 0x58a657
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58c845
movzx edx, byte [edi]
mov eax, edx
inc edi
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x58a222
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7260]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x48], ecx
mov ecx, dword [eax*4 + 0x5f7248]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x48]
shl edx, cl
test eax, eax
jle 0x58a222
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 0x58a207
cmp edx, 0x80
jge 0x58a237
mov eax, dword [esi + 0x18]
test byte [edx + eax], 4
jne 0x58c845
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x58a1bf
jmp 0x58a657
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58a657
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c845
mov cl, byte [eax]
cmp cl, 0x80
jae 0x58c845
mov edi, dword [esi + 0x18]
movzx ecx, cl
test byte [ecx + edi], 4
lea eax, [eax + 1]
mov dword [ebx + 4], eax
je 0x58c845
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58a256
jmp 0x58a657
xor edx, edx
inc edx
cmp ecx, edx
mov dword [ebp + 0x48], edx
jl 0x58a657
mov ecx, dword [ebx + 4]
cmp ecx, eax
jae 0x58c845
mov al, byte [ecx]
cmp al, 0x80
lea edi, [ecx + 1]
jae 0x58a2c5
mov edx, dword [esi + 0x18]
movzx eax, al
test byte [eax + edx], 1
mov dword [ebx + 4], edi
jne 0x58c845
jmp 0x58a32a
movzx edx, al
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x58a31b
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7260]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax*4 + 0x5f7248]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x10]
shl edx, cl
test eax, eax
jle 0x58a31b
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 0x58a300
push edx
call fcn.0058866f
cmp al, 1
pop ecx
je 0x58c845
mov eax, dword [esi + 0x44]
cmp edi, eax
jae 0x58a34b
mov edi, dword [ebx + 4]
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x58a34b
lea ecx, [edi + 1]
mov dword [ebx + 4], ecx
mov eax, dword [esi + 0x44]
cmp ecx, eax
jb 0x58a331
inc dword [ebp + 0x48]
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebx + 0x78]
jle 0x58a29c
jmp 0x58a657
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x48], eax
jl 0x58a657
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c845
mov cl, byte [eax]
cmp cl, 0x80
jae 0x58a392
mov edx, dword [esi + 0x18]
movzx ecx, cl
test byte [ecx + edx], 1
lea eax, [eax + 1]
mov dword [ebx + 4], eax
jmp 0x58a3f4
movzx edx, cl
lea edi, [eax + 1]
mov eax, edx
and ax, 0xc0
cmp al, 0xc0
mov dword [ebx + 4], edi
jne 0x58a3eb
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7260]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x38], ecx
mov ecx, dword [eax*4 + 0x5f7248]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x38]
shl edx, cl
test eax, eax
jle 0x58a3eb
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 0x58a3d0
push edx
call fcn.0058866f
pop ecx
test al, al
je 0x58c845
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x58a36d
jmp 0x58a657
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58a657
mov ecx, dword [ebx + 4]
cmp ecx, eax
jae 0x58c845
mov al, byte [ecx]
cmp al, 0x80
jae 0x58a440
mov edi, dword [esi + 0x18]
movzx eax, al
test byte [eax + edi], 0x10
lea ecx, [ecx + 1]
mov dword [ebx + 4], ecx
jne 0x58c845
mov eax, dword [esi + 0x44]
cmp dword [ebx + 4], eax
jae 0x58a460
mov edi, dword [ebx + 4]
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x58a460
inc edi
mov dword [ebx + 4], edi
mov eax, dword [esi + 0x44]
cmp edi, eax
jb 0x58a448
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58a419
jmp 0x58a657
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58a657
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c845
mov cl, byte [eax]
cmp cl, 0x80
jae 0x58c845
mov edi, dword [esi + 0x18]
movzx ecx, cl
test byte [ecx + edi], 0x10
lea eax, [eax + 1]
mov dword [ebx + 4], eax
je 0x58c845
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58a476
jmp 0x58a657
mov eax, dword [ebx + 0x64]
add eax, 0xfffffffb
cmp eax, 7
ja case.default.0x58c4fe
jmp dword [eax*4 + 0x58ccaf]
test byte [ebx + 0x10], 4
jne case.0x58a4bd.12
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x48], eax
jl 0x58a657
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 0x58a538
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x5f7260]
lea ecx, [eax + eax*2]
shl ecx, 1
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax*4 + 0x5f7248]
and ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x18]
shl edx, cl
test eax, eax
jle 0x58a538
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 0x58a51d
push edx
call fcn.0058864b
test al, al
pop ecx
jne 0x58c845
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x78]
jle 0x58a4dc
jmp 0x58a657
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58a657
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 0x58c845
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58a562
jmp 0x58a657
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58a657
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 0x58c845
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58a591
jmp 0x58a657
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58a657
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 0x58c845
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58a5c0
jmp 0x58a657
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58a657
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 0x58c845
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58a5e8
jmp 0x58a657
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58a657
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 0x58c845
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58a610
jmp 0x58a657
xor edx, edx
inc edx
cmp ecx, edx
jl 0x58a657
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 0x58c845
inc edx
cmp edx, dword [ebx + 0x78]
jle 0x58a638
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
je 0x58878d
xor eax, eax
cmp dword [ebx + 0x58], eax
je 0x58bf35
cmp dword [ebp + 0x38], eax
mov eax, dword [ebx + 0x78]
push 0x1d8
mov dword [ebx + 0x6c], eax
je 0x58be28
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58be07
mov eax, dword [esi + 0xc]
sub eax, dword [ebx + 0x7c]
cmp byte [0x630f24], 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 0x58a709
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x80]
cmp eax, ecx
jle 0x58a6cb
sub eax, ecx
jmp 0x58a6ce
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 0x58a702
mov ecx, dword [ebp + 0x70]
mov ecx, dword [ecx + 8]
or dword [ecx + eax*4], 0xffffffff
inc eax
cmp eax, dword [ebx + 0xc]
jl 0x58a6f7
jmp 0x58a732
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 0x58a782
mov edi, dword [ebp + 0x70]
mov ebx, dword [edi + 0x64]
mov esi, dword [ebx + 0x194]
test esi, esi
mov dword [ebp + 0x4c], ebx
jne 0x58c710
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 0x58c738
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xa4], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58a749
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 0x58ac95
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58a81b
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58c7c7
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 0x58cad4
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xb8], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58a7d8
mov ebx, dword [ebp - 0xb8]
jmp 0x58a7ae
mov edi, dword [ebx + 8]
cmp byte [edi + 3], 0x4c
jne 0x58a8d8
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 0x58a866
xor edx, edx
cmp dword [esi + 0x5c], edx
setne dl
jmp 0x58a876
cmp eax, dword [ebx + 0xc]
jge 0x58a874
mov ecx, dword [esi + 8]
cmp dword [ecx + eax*4], 0
jge 0x58a876
xor edx, edx
push 0x1d8
mov dword [ebx + 0x54], edx
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xf0], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58c7f8
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 0x58a8bd
push 6
pop ecx
jmp 0x58a8cb
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 0x58ac98
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x114], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58a930
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 0x58c6d2
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
cmp ebx, 1
mov dword [ebp + 0x4c], esi
jne 0x58a96c
mov eax, dword [esi + 8]
xor ecx, ecx
mov ch, byte [eax + 4]
mov cl, byte [eax + 5]
lea eax, [ecx + eax + 3]
jmp 0x58a962
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 0x58a955
jmp 0x58a984
test ebx, ebx
jne 0x58c7c7
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 [0x630f1c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0xbc], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58c827
mov ebx, dword [ebp - 0xbc]
jmp 0x58a7ae
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 0x58acaa
mov ebx, dword [ebp - 0x108]
jmp 0x58a9bf
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 0x58aa1d
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 0x58aa48
lea eax, [ebx + 0x98]
mov dword [ebx + 0x48], eax
jmp 0x58aa5e
shl eax, 2
push eax
call dword [0x630f14]
test eax, eax
pop ecx
mov dword [ebx + 0x48], eax
je 0x58c8a6
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 0x58aae2
mov edx, dword [ebp + 0x70]
mov ebx, dword [edx + 0x64]
mov esi, dword [ebx + 0x194]
cmp esi, 1
mov dword [ebp + 0x4c], ebx
je 0x58c8cf
test esi, esi
jne 0x58c912
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 0x58c93a
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xb4], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58aa89
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 0x58a7ba
mov ebx, dword [ebp - 0xd0]
jmp 0x58a7ae
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58c7c7
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xd8], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58c975
mov ebx, dword [ebp - 0xd8]
jmp 0x58ac89
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x118], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58aba1
mov ebx, dword [ebp - 0x118]
jmp 0x58ac89
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58c7c7
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xe0], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58c975
mov ebx, dword [ebp - 0xe0]
jmp 0x58acfc
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 0x58ac95
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 0x58a7ba
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58c7c7
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xc0], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58c9c7
mov ebx, dword [ebp - 0xc0]
jmp 0x58ac89
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xc4], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58acb6
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 0x58c6d2
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58c7c7
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push ebx
push esi
mov dword [ebp - 0xcc], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58ca04
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 0x58c6b9
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58c7c7
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58cad4
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.00588699
test eax, eax
pop ecx
pop ecx
je 0x58cad1
add ebx, edi
mov dword [esi + 4], ebx
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x64], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58ad10
mov ebx, dword [ebp - 0x64]
jmp 0x58c6ad
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp + 0x48], eax
jmp 0x58adc5
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.00588699
test eax, eax
pop ecx
pop ecx
je 0x58adca
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 0x58ad98
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58c845
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xd4], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58ae1b
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b188
mov eax, dword [ebx + 0x70]
sub dword [ebx + 4], eax
jmp 0x58adca
mov ebx, dword [ebp - 0xd4]
jmp 0x58c6ad
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58c7c7
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58cad4
mov eax, dword [esi + 4]
cmp eax, dword [edi + 0x44]
jae 0x58cad4
movzx ebx, byte [eax]
mov ecx, ebx
inc eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [esi + 4], eax
jne 0x58aeab
mov ecx, ebx
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, ebx
lea edi, [edx + edx*2]
shl edi, 1
mov ebx, ecx
mov ecx, edi
shl ebx, cl
test edx, edx
jle 0x58aea8
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 0x58ae8f
mov edi, dword [ebp + 0x70]
cmp ebx, 0xff
jle 0x58aebc
cmp dword [esi + 0x84], 0x3b
jmp 0x58aed4
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 0x58cad4
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x80], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58ae26
mov ebx, dword [ebp - 0x80]
jmp 0x58c6ad
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58af8c
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58cb38
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58b367
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x58b367
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 0x58b367
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0xa8], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58af1d
mov ebx, dword [ebp - 0xa8]
jmp 0x58c6ad
cmp dword [ebp + 0x38], eax
mov ecx, dword [ebx + 4]
mov dword [ebx + 0x2c], ecx
je 0x58b0f1
mov edi, dword [ebx + 0x78]
jmp 0x58b07d
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
mov dword [ebp + 0x2c], 1
jae 0x58b0c6
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x58b03c
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x58b035
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 0x58b013
inc edi
mov dword [ebp + 0x2c], edi
mov edi, dword [ebp + 0x48]
cmp eax, 0xff
jle 0x58b04e
cmp dword [ebx + 0x84], 0x3b
je 0x58b0c6
jmp 0x58b071
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 0x58b0c6
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 0x58afc4
jmp 0x58b0c6
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b188
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [ebx + 4], eax
je 0x58c845
jmp 0x58b0bc
dec eax
mov dword [ebx + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x58b0b8
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x60], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58b08b
mov ebx, dword [ebp - 0x60]
jmp 0x58c6ad
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x74]
mov dword [ebp + 0x48], eax
jge 0x58b140
jmp 0x58b101
mov esi, dword [ebp + 0x70]
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58b140
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 0x58b13d
inc edi
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [ebx + 4], edi
cmp eax, dword [ebx + 0x74]
jl 0x58b0fe
mov esi, dword [ebp + 0x70]
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58c845
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xdc], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58b1aa
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 0x58b140
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630f20]
test ebx, ebx
pop ecx
je 0x58c820
mov dword [ebx + 0x194], edi
jmp 0x58cb62
mov ebx, dword [ebp - 0xdc]
jmp 0x58c6ad
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58c7c7
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58cad4
mov eax, dword [esi + 4]
cmp eax, dword [edi + 0x44]
jae 0x58cad4
movzx ebx, byte [eax]
mov ecx, ebx
inc eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [esi + 4], eax
jne 0x58b23a
mov ecx, ebx
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, ebx
lea edi, [edx + edx*2]
shl edi, 1
mov ebx, ecx
mov ecx, edi
shl ebx, cl
test edx, edx
jle 0x58b237
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 0x58b21e
mov edi, dword [ebp + 0x70]
push dword [esi + 0x24]
push ebx
call fcn.005ac5c8
test eax, eax
pop ecx
pop ecx
je 0x58cad4
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x6c], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58b1b5
mov ebx, dword [ebp - 0x6c]
jmp 0x58c6ad
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov edi, dword [ebx + 0x78]
jmp 0x58b31e
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
mov dword [ebp - 0x94], 1
jae 0x58b32a
movzx eax, byte [eax]
mov dword [ebp + 0x3c], eax
and ax, 0xc0
cmp al, 0xc0
jne 0x58b303
mov eax, dword [ebp + 0x3c]
and eax, 0x3f
movzx edi, byte [eax + 0x5f7260]
mov eax, dword [edi*4 + 0x5f7248]
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 0x58b2f9
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 0x58b2dc
inc edi
mov dword [ebp - 0x94], edi
mov edi, dword [ebp + 0x48]
push dword [ebx + 0x24]
push dword [ebp + 0x3c]
call fcn.005ac5c8
test eax, eax
pop ecx
pop ecx
je 0x58b32a
mov eax, dword [ebp - 0x94]
add dword [ebx + 4], eax
inc edi
cmp edi, dword [ebx + 0x74]
mov dword [ebp + 0x48], edi
jl 0x58b28d
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58b3af
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58cb38
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [esi + 4], eax
jne 0x58b391
mov eax, esi
mov esi, dword [esi]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x630f20]
test esi, esi
pop ecx
je 0x58c7c0
and dword [esi + 0x194], 0
mov dword [ebx + 0x64], esi
jmp 0x58c7e3
dec eax
mov dword [esi + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x58b38d
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x74], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58b340
mov ebx, dword [ebp - 0x74]
jmp 0x58c6ad
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b188
mov eax, dword [ebx + 0x6c]
cmp eax, dword [ebx + 0x74]
jge 0x58c845
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c845
mov ecx, dword [ebx + 0x70]
mov edi, dword [ebx + 0x20]
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x58b408
mov ecx, dword [ebx + 0x70]
jmp 0x58b425
mov ecx, dword [ebp + 0x34]
test ecx, ecx
je 0x58c955
lea edi, [ebp + 0x50]
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x58c955
mov ecx, dword [ebp + 0x34]
add ecx, eax
mov dword [ebx + 4], ecx
inc dword [ebx + 0x6c]
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x7c], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58b3c6
mov ebx, dword [ebp - 0x7c]
jmp 0x58c6ad
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp + 0x48], eax
jmp 0x58b495
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 0x58b49a
mov edi, dword [ebx + 0x20]
mov ecx, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x58b49a
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 0x58b46a
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58c955
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xe4], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58b4eb
mov edi, dword [ebp + 0x70]
mov ebx, dword [edi + 0x64]
mov esi, dword [ebx + 0x194]
test esi, esi
mov dword [ebp + 0x4c], ebx
jne 0x58c710
mov eax, dword [ebx + 0x70]
sub dword [ebx + 4], eax
jmp 0x58b49a
mov ebx, dword [ebp - 0xe4]
jmp 0x58c6ad
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58cb38
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58b367
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x58b367
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 0x58b367
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push edi
push esi
mov dword [ebp - 0x9c], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58b4f6
mov ebx, dword [ebp - 0x9c]
jmp 0x58c6ad
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov ecx, dword [ebx + 0x78]
jmp 0x58b598
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58b59d
movzx edx, byte [eax]
mov edi, dword [esi + 0x14]
movzx edx, byte [edx + edi]
cmp dword [ebx + 0x68], edx
jne 0x58b59d
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58b57c
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58c845
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xec], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58b5ea
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 0x58b59d
jmp 0x58b188
mov ebx, dword [ebp - 0xec]
jmp 0x58c6ad
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58cb38
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58b367
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x58b367
movzx ecx, byte [eax]
mov edx, dword [esi + 0x68]
inc eax
cmp edx, ecx
mov dword [esi + 4], eax
jne 0x58b367
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push edi
push esi
mov dword [ebp - 0x84], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58b5f5
mov ebx, dword [ebp - 0x84]
jmp 0x58c6ad
mov eax, dword [ebx + 4]
mov dword [ebx + 0x2c], eax
mov ecx, dword [ebx + 0x78]
jmp 0x58b689
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58b68e
movzx edx, byte [eax]
cmp dword [ebx + 0x68], edx
jne 0x58b68e
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58b674
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58c845
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xf4], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58b6db
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 0x58b68e
jmp 0x58b188
mov ebx, dword [ebp - 0xf4]
jmp 0x58c6ad
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58c7c7
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 0x58b756
mov ecx, ebx
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, ebx
lea edi, [edx + edx*2]
shl edi, 1
mov ebx, ecx
mov ecx, edi
shl ebx, cl
test edx, edx
jle 0x58b753
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 0x58b73a
mov edi, dword [ebp + 0x70]
cmp ebx, 0x100
jge 0x58b765
mov ecx, dword [edi + 0x14]
movzx ebx, byte [ecx + ebx]
mov ecx, dword [esi + 0x6c]
cmp ecx, dword [esi + 0x74]
jge 0x58cad4
cmp eax, dword [edi + 0x44]
jae 0x58cad4
cmp dword [esi + 0x68], ebx
je 0x58cad4
inc ecx
push 0x1d8
mov dword [esi + 0x6c], ecx
call dword [0x630f1c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0xac], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58b6e6
mov ebx, dword [ebp - 0xac]
jmp 0x58c6ad
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58b82b
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58cb38
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58b367
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x58b367
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 0x58b367
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push edi
push esi
mov dword [ebp - 0x8c], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58b7cd
mov ebx, dword [ebp - 0x8c]
jmp 0x58c6ad
cmp dword [ebp + 0x38], eax
mov ecx, dword [ebx + 4]
mov dword [ebx + 0x2c], ecx
je 0x58b962
mov edi, dword [ebx + 0x78]
jmp 0x58b8ee
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x58b937
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x58b8d2
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x58b8cc
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 0x58b8aa
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58b8e0
mov edx, dword [esi + 0x14]
movzx eax, byte [edx + eax]
cmp dword [ebx + 0x68], eax
je 0x58b937
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 0x58b85f
jmp 0x58b937
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b188
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [ebx + 4], eax
je 0x58c845
jmp 0x58b92d
dec eax
mov dword [ebx + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x58b929
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x68], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58b8fc
mov ebx, dword [ebp - 0x68]
jmp 0x58c6ad
mov ecx, dword [ebx + 0x78]
jmp 0x58b983
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58b988
movzx edx, byte [eax]
mov edi, dword [esi + 0x14]
movzx edx, byte [edx + edi]
cmp dword [ebx + 0x68], edx
je 0x58b988
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58b967
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58c845
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xfc], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58b9d6
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b188
dec dword [ebx + 4]
jmp 0x58b988
mov ebx, dword [ebp - 0xfc]
jmp 0x58c6ad
mov edi, dword [ebp + 0x70]
mov esi, dword [edi + 0x64]
mov ebx, dword [esi + 0x194]
test ebx, ebx
mov dword [ebp + 0x4c], esi
jne 0x58c7c7
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 0x58ba51
mov ecx, ebx
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, ebx
lea edi, [edx + edx*2]
shl edi, 1
mov ebx, ecx
mov ecx, edi
shl ebx, cl
test edx, edx
jle 0x58ba4e
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 0x58ba35
mov edi, dword [ebp + 0x70]
mov ecx, dword [esi + 0x6c]
cmp ecx, dword [esi + 0x74]
jge 0x58cad4
cmp eax, dword [edi + 0x44]
jae 0x58cad4
cmp dword [esi + 0x68], ebx
je 0x58cad4
inc ecx
push 0x1d8
mov dword [esi + 0x6c], ecx
call dword [0x630f1c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x70], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58b9e1
mov ebx, dword [ebp - 0x70]
jmp 0x58c6ad
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58bb0a
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58cb38
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58b367
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x58b367
movzx ecx, byte [eax]
mov edx, dword [esi + 0x68]
inc eax
cmp edx, ecx
mov dword [esi + 4], eax
je 0x58b367
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push edi
push esi
mov dword [ebp - 0x78], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58bab3
mov ebx, dword [ebp - 0x78]
jmp 0x58c6ad
cmp dword [ebp + 0x38], eax
mov ecx, dword [ebx + 4]
mov dword [ebx + 0x2c], ecx
je 0x58bc33
mov edi, dword [ebx + 0x78]
jmp 0x58bbb9
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x58bc02
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x58bbab
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x58bba5
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 0x58bb83
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp dword [ebx + 0x68], eax
je 0x58bc02
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 0x58bb38
jmp 0x58bc02
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b188
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [ebx + 4], eax
je 0x58c845
jmp 0x58bbf8
dec eax
mov dword [ebx + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x58bbf4
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x88], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58bbc7
mov ebx, dword [ebp - 0x88]
jmp 0x58c6ad
mov ecx, dword [ebx + 0x78]
jmp 0x58bc4d
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58bc52
movzx edx, byte [eax]
cmp dword [ebx + 0x68], edx
je 0x58bc52
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58bc38
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58c845
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x104], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58bca0
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b188
dec dword [ebx + 4]
jmp 0x58bc52
mov ebx, dword [ebp - 0x104]
jmp 0x58c6ad
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58cb38
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58b367
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x44]
jae 0x58b367
movzx edi, byte [eax]
mov ecx, edi
inc eax
and cx, 0xc0
cmp cl, 0xc0
mov dword [esi + 4], eax
jne 0x58bd33
mov ecx, edi
and ecx, 0x3f
movzx edx, byte [ecx + 0x5f7260]
lea ecx, [edx + edx*2]
shl ecx, 1
mov dword [ebp + 0xc], ecx
mov ecx, dword [edx*4 + 0x5f7248]
and ecx, edi
mov edi, ecx
mov ecx, dword [ebp + 0xc]
shl edi, cl
test edx, edx
jle 0x58bd33
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 0x58bd18
mov eax, dword [esi + 0x64]
add eax, 0xfffffffb
cmp eax, 7
ja case.default.0x58be81
jmp dword [eax*4 + 0x58cccf]
test byte [esi + 0x10], 4
jne case.0x58bd42.12
push edi
call fcn.0058864b
pop ecx
test al, al
jmp 0x58bd97
cmp edi, 0x100
jge case.0x58bd42.12
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 4
jmp 0x58bd97
cmp edi, 0x100
jge 0x58b367
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 4
jmp 0x58bdea
cmp edi, 0x100
jge 0x58bd9f
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 1
jne 0x58b367
jmp case.0x58bd42.12
push edi
call fcn.0058866f
pop ecx
cmp al, 1
jmp 0x58bdea
cmp edi, 0x100
jge 0x58bdbb
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 1
jmp 0x58bdea
push edi
call fcn.0058866f
pop ecx
test al, al
jmp 0x58bdea
cmp edi, 0x100
jge case.0x58bd42.12
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 0x10
jmp 0x58bd97
cmp edi, 0x100
jge 0x58b367
mov eax, dword [ebx + 0x18]
test byte [edi + eax], 0x10
je 0x58b367
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x90], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58bcab
mov ebx, dword [ebp - 0x90]
jmp 0x58c6ad
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
jmp 0x58bf14
mov ebx, dword [ebp + 0x70]
mov esi, dword [ebx + 0x64]
mov edi, dword [esi + 0x194]
test edi, edi
mov dword [ebp + 0x4c], esi
jne 0x58cb38
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x74]
jge 0x58b367
mov ecx, dword [esi + 4]
cmp ecx, dword [ebx + 0x44]
jae 0x58b367
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.0x58be81
jmp dword [ecx*4 + 0x58ccef]
test byte [esi + 0x10], 4
jne case.0x58be81.12
push eax
call fcn.0058864b
pop ecx
test al, al
jmp 0x58beb9
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 4
jmp 0x58beb9
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 4
jmp 0x58bef7
cmp eax, 0x100
jge 0x58bec1
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 1
jne 0x58b367
jmp case.0x58be81.12
push eax
call fcn.0058866f
pop ecx
cmp al, 1
jmp 0x58bef7
cmp eax, 0x100
jge 0x58bedc
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 1
jmp 0x58bef7
push eax
call fcn.0058866f
pop ecx
test al, al
jmp 0x58bef7
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 0x10
jmp 0x58beb9
mov ecx, dword [ebx + 0x18]
test byte [eax + ecx], 0x10
je 0x58b367
inc dword [esi + 0x6c]
push 0x1d8
call dword [0x630f1c]
add esi, 0x198
push 0
push esi
mov dword [ebp - 0x98], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58be3c
mov ebx, dword [ebp - 0x98]
jmp 0x58c6ad
mov ecx, dword [ebx + 4]
cmp dword [ebp + 0x38], eax
mov dword [ebx + 0x2c], ecx
mov eax, dword [ebx + 0x64]
je 0x58c4f2
add eax, 0xfffffffb
cmp eax, 7
ja case.default.0x58c4fe
jmp dword [eax*4 + 0x58cd0f]
mov eax, dword [ebx + 0x74]
cmp eax, 0x7fffffff
jge 0x58bff9
test byte [ebx + 0x10], 4
jne 0x58bfc8
mov ecx, dword [ebx + 0x78]
cmp ecx, eax
mov dword [ebp + 0x48], ecx
jge 0x58c4c1
mov edi, dword [esi + 0x44]
cmp dword [ebx + 4], edi
jae 0x58c4c1
mov eax, dword [ebx + 4]
movzx ax, byte [eax]
push eax
call fcn.0058864b
test al, al
pop ecx
jne 0x58c4c1
mov eax, dword [ebx + 4]
jmp 0x58bfad
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
jne 0x58bfb8
inc eax
mov dword [ebx + 4], eax
mov edi, dword [esi + 0x44]
cmp eax, edi
jb 0x58bfa3
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebx + 0x74]
jl 0x58bf7f
jmp 0x58c4c1
mov edi, dword [ebx + 0x78]
cmp edi, eax
jge 0x58c4c1
inc dword [ebx + 4]
mov eax, dword [ebx + 4]
jmp 0x58bfe9
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
jne 0x58bfee
inc eax
mov dword [ebx + 4], eax
cmp eax, dword [esi + 0x44]
jb 0x58bfdb
inc edi
cmp edi, dword [ebx + 0x74]
jl 0x58bfd3
jmp 0x58c4c1
test byte [ebx + 0x10], 4
jne 0x58c043
mov ecx, dword [ebx + 0x78]
cmp ecx, eax
mov dword [ebp + 0x48], ecx
jge 0x58c4c1
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58c4c1
movzx ax, byte [edi]
push eax
call fcn.0058864b
test al, al
pop ecx
jne 0x58c4c1
inc edi
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [ebx + 4], edi
cmp eax, dword [ebx + 0x74]
jl 0x58c00d
jmp 0x58c4c1
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 0x58c054
mov eax, esi
add ecx, eax
mov dword [ebx + 4], ecx
jmp 0x58c4c1
mov edi, dword [ebx + 0x78]
jmp 0x58c0f6
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x58c4c1
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x58c0d9
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x58c0d3
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 0x58c0b1
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58c0ed
mov edx, dword [esi + 0x18]
test byte [eax + edx], 4
jne 0x58c4c1
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 0x58c066
jmp 0x58c4c1
mov edi, dword [ebx + 0x78]
jmp 0x58c1a3
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x58c4c1
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x58c182
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x58c17c
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 0x58c15a
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58c4c1
mov edx, dword [esi + 0x18]
test byte [eax + edx], 4
je 0x58c4c1
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 0x58c10f
jmp 0x58c4c1
mov edi, dword [ebx + 0x78]
jmp 0x58c26e
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
mov dword [ebp - 0xa0], 1
jae 0x58c4c1
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x58c23a
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x58c230
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 0x58c20e
inc edi
mov dword [ebp - 0xa0], edi
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58c250
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 1
jne 0x58c4c1
jmp 0x58c25f
push eax
call fcn.0058866f
cmp al, 1
pop ecx
je 0x58c4c1
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 0x58c1bc
jmp 0x58c4c1
mov edi, dword [ebx + 0x78]
jmp 0x58c32a
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
mov dword [ebp + 0x40], 1
jae 0x58c4c1
movzx eax, byte [eax]
mov ecx, eax
and cx, 0xc0
cmp cl, 0xc0
jne 0x58c2ff
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x58c2f8
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 0x58c2d6
inc edi
mov dword [ebp + 0x40], edi
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58c30f
mov ecx, dword [esi + 0x18]
test byte [eax + ecx], 1
jmp 0x58c318
push eax
call fcn.0058866f
pop ecx
test al, al
je 0x58c4c1
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 0x58c287
jmp 0x58c4c1
mov edi, dword [ebx + 0x78]
jmp 0x58c3d3
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x58c4c1
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x58c3b6
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x58c3b0
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 0x58c38e
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58c3ca
mov edx, dword [esi + 0x18]
test byte [eax + edx], 0x10
jne 0x58c4c1
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 0x58c343
jmp 0x58c4c1
mov edi, dword [ebx + 0x78]
jmp 0x58c478
mov eax, dword [ebx + 4]
xor ecx, ecx
inc ecx
cmp eax, dword [esi + 0x44]
jae 0x58c4c1
movzx eax, byte [eax]
mov edx, eax
and dx, 0xc0
cmp dl, 0xc0
jne 0x58c45f
mov ecx, eax
and ecx, 0x3f
movzx edi, byte [ecx + 0x5f7260]
mov edx, dword [edi*4 + 0x5f7248]
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 0x58c459
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 0x58c437
lea ecx, [edi + 1]
mov edi, dword [ebp + 0x48]
cmp eax, 0x100
jge 0x58c4c1
mov edx, dword [esi + 0x18]
test byte [eax + edx], 0x10
je 0x58c4c1
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 0x58c3ec
jmp 0x58c4c1
mov esi, dword [ebp + 0x70]
mov ebx, dword [esi + 0x64]
mov edi, dword [ebx + 0x194]
test edi, edi
mov dword [ebp + 0x4c], ebx
jne 0x58b188
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
lea eax, [ecx - 1]
mov dword [ebx + 4], eax
je 0x58c845
jmp 0x58c4b7
dec eax
mov dword [ebx + 4], eax
mov cl, byte [eax]
and cl, 0xc0
cmp cl, 0x80
je 0x58c4b3
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0xb0], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
jne 0x58c486
mov ebx, dword [ebp - 0xb0]
jmp 0x58c6ad
add eax, 0xfffffffb
cmp eax, 7
ja case.default.0x58c4fe
jmp dword [eax*4 + 0x58cd2f]
test byte [ebx + 0x10], 4
jne case.0x58c4fe.12
mov eax, dword [ebx + 0x78]
mov dword [ebp + 0x48], eax
jmp 0x58c53c
mov edi, dword [ebx + 4]
cmp edi, dword [esi + 0x44]
jae 0x58c65a
movzx ax, byte [edi]
push eax
call fcn.0058864b
test al, al
pop ecx
jne 0x58c65a
inc edi
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [ebx + 4], edi
cmp eax, dword [ebx + 0x74]
jl 0x58c513
jmp 0x58c65a
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 0x58c55a
mov eax, edx
add ecx, eax
mov dword [ebx + 4], ecx
jmp 0x58c65a
mov ecx, dword [ebx + 0x78]
jmp 0x58c58a
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c65a
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 4
jne 0x58c65a
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58c569
jmp 0x58c65a
mov ecx, dword [ebx + 0x78]
jmp 0x58c5ba
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c65a
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 4
je 0x58c65a
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58c599
jmp 0x58c65a
mov ecx, dword [ebx + 0x78]
jmp 0x58c5e6
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c65a
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 1
jne 0x58c65a
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58c5c9
jmp 0x58c65a
mov ecx, dword [ebx + 0x78]
jmp 0x58c60b
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c65a
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 1
je 0x58c65a
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58c5f2
jmp 0x58c65a
mov ecx, dword [ebx + 0x78]
jmp 0x58c630
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c65a
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 0x10
jne 0x58c65a
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58c617
jmp 0x58c65a
mov ecx, dword [ebx + 0x78]
jmp 0x58c655
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x44]
jae 0x58c65a
movzx edx, byte [eax]
mov edi, dword [esi + 0x18]
test byte [edx + edi], 0x10
je 0x58c65a
inc eax
mov dword [ebx + 4], eax
inc ecx
cmp ecx, dword [ebx + 0x74]
jl 0x58c63c
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 0x2c]
jb 0x58c845
push 0x1d8
call dword [0x630f1c]
add ebx, 0x198
push 0
push ebx
mov dword [ebp - 0x10c], eax
call fcn.005885e5
add esp, 0xc
test eax, eax
je 0x58c6a7
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 0x58c65a
jmp 0x58b188
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 0x588761
inc dword [esi]
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630f20]
test ebx, ebx
pop ecx
je 0x58c709
mov dword [ebx + 0x194], 0xfffffff8
jmp 0x58cb62
push 0xfffffffffffffff8
jmp 0x58cb75
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630f20]
test ebx, ebx
pop ecx
je 0x58c731
mov dword [ebx + 0x194], esi
mov dword [edi + 0x64], ebx
jmp 0x58cb65
mov eax, esi
jmp 0x58cb76
cmp byte [0x630f24], 0
mov edx, dword [edi + 8]
je 0x58c76f
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 0x58c78f
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 [0x630f20]
test ebx, ebx
pop ecx
je 0x58c7c0
and dword [ebx + 0x194], 0
jmp 0x58c729
xor eax, eax
jmp 0x58cb76
mov eax, esi
mov esi, dword [esi]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x630f20]
test esi, esi
pop ecx
je 0x58c7f1
mov dword [esi + 0x194], ebx
mov dword [edi + 0x64], esi
push 1
add esi, 0x198
push esi
jmp 0x58cb6e
mov eax, ebx
jmp 0x58cb76
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 [0x630f20]
test esi, esi
pop ecx
je 0x58c820
mov dword [esi + 0x194], edi
jmp 0x58b385
mov eax, edi
jmp 0x58cb76
mov edi, dword [ebp + 0x70]
mov eax, dword [edi + 0x64]
mov ebx, dword [eax + 0x194]
mov esi, dword [eax]
jmp 0x58c7cb
cmp dword [esi + 0x30], 0
je 0x58c868
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x48]
jne 0x58c868
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630f20]
test ebx, ebx
pop ecx
je 0x58c7c0
and dword [ebx + 0x194], 0
jmp 0x58cb62
cmp byte [0x630f24], 0
mov eax, dword [ebx + 4]
mov dword [esi + 0x4c], eax
jne 0x58c87d
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 [0x630f20]
xor eax, eax
inc eax
test ebx, ebx
pop ecx
je 0x58cb76
mov dword [ebx + 0x194], eax
mov dword [esi + 0x64], ebx
push eax
jmp 0x58cb67
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630f20]
test ebx, ebx
pop ecx
je 0x58c8c8
mov dword [ebx + 0x194], 0xfffffffa
jmp 0x58cb62
push 0xfffffffffffffffa
jmp 0x58cb75
mov eax, dword [ebx + 0x38]
mov dword [edx + 0x5c], eax
mov eax, dword [ebx + 0x48]
lea ecx, [ebx + 0x98]
cmp eax, ecx
je 0x58c8ea
push eax
call dword [0x630f18]
pop ecx
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630f20]
xor eax, eax
inc eax
test ebx, ebx
pop ecx
je 0x58cb76
mov ecx, dword [ebp + 0x70]
mov dword [ebx + 0x194], eax
mov dword [ecx + 0x64], ebx
jmp 0x58c8a0
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630f20]
test ebx, ebx
pop ecx
je 0x58c731
mov dword [ebx + 0x194], esi
mov eax, dword [ebp + 0x70]
mov dword [eax + 0x64], ebx
jmp 0x58cb65
mov eax, dword [ebx + 0x38]
mov dword [edx + 0x5c], eax
mov eax, dword [ebx + 0x48]
lea ecx, [ebx + 0x98]
cmp eax, ecx
je 0x58c955
push eax
call dword [0x630f18]
pop ecx
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630f20]
test ebx, ebx
pop ecx
je 0x58c7c0
and dword [ebx + 0x194], 0
jmp 0x58c92f
mov esi, dword [ebp + 0x70]
add esi, 0x64
mov eax, dword [esi]
mov edi, dword [eax + 0x194]
test edi, edi
je 0x58c9a9
mov ebx, dword [eax]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630f20]
test ebx, ebx
pop ecx
je 0x58c820
mov dword [ebx + 0x194], edi
mov dword [esi], ebx
jmp 0x58cb65
mov ebx, dword [eax]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630f20]
test ebx, ebx
pop ecx
je 0x58c7c0
and dword [ebx + 0x194], 0
jmp 0x58c9a2
mov esi, dword [ebp + 0x70]
add esi, 0x64
mov eax, dword [esi]
mov ebx, dword [eax + 0x194]
test ebx, ebx
je 0x58ca1a
mov edi, dword [eax]
push eax
mov dword [ebp + 0x4c], edi
call dword [0x630f20]
test edi, edi
pop ecx
je 0x58c7f1
mov dword [edi + 0x194], ebx
mov dword [esi], edi
push 1
add edi, 0x198
push edi
jmp 0x58cb6e
mov esi, dword [ebp + 0x70]
add esi, 0x64
mov eax, dword [esi]
mov edi, dword [eax + 0x194]
test edi, edi
jne 0x58c987
mov edi, dword [eax]
push eax
mov dword [ebp + 0x4c], edi
call dword [0x630f20]
test edi, edi
pop ecx
je 0x58c7c0
and dword [edi + 0x194], 0
jmp 0x58c9f4
cmp byte [0x630f24], 0
mov eax, dword [ebx + 4]
mov dword [esi + 0x4c], eax
je 0x58c877
mov eax, dword [ebx + 0x30]
mov cl, byte [eax]
cmp cl, 0x4a
je 0x58c87d
cmp cl, 0x46
je 0x58ca67
cmp cl, 0x48
je 0x58ca67
xor dl, dl
jmp 0x58cab7
mov dl, 1
jmp 0x58cab7
mov cl, byte [eax]
cmp cl, 0x50
jb 0x58caa5
test dl, dl
movzx eax, cl
lea eax, [eax + eax - 0xa0]
lea edi, [ebx + 0x80]
mov dword [edi], eax
je 0x58ca99
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 [0x5f7210]
add dword [ebx + 0x30], eax
jmp 0x58cab4
movzx ecx, cl
movzx ecx, byte [ecx + 0x5f71c0]
add ecx, eax
mov dword [ebx + 0x30], ecx
mov eax, dword [ebx + 0x30]
cmp eax, dword [ebx + 8]
jb 0x58ca6b
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 0x58c87d
mov edi, dword [ebp + 0x70]
mov eax, esi
mov esi, dword [esi]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x630f20]
test esi, esi
pop ecx
je 0x58c7c0
and dword [esi + 0x194], 0
jmp 0x58c7e0
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630f20]
test ebx, ebx
pop ecx
je 0x58cb41
mov dword [ebx + 0x194], 0xfffffff2
jmp 0x58cb62
mov eax, esi
mov esi, dword [esi]
push eax
mov dword [ebp + 0x4c], esi
call dword [0x630f20]
test esi, esi
pop ecx
je 0x58cb41
mov dword [esi + 0x194], 0xfffffff2
jmp 0x58b385
mov eax, esi
mov esi, dword [esi]
jmp 0x58c806
push 0xfffffffffffffff2
jmp 0x58cb75
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov dword [ebp + 0x4c], ebx
call dword [0x630f20]
test ebx, ebx
pop ecx
je 0x58cb73
mov dword [ebx + 0x194], 0xfffffffb
mov dword [esi + 0x64], ebx
push 1
add ebx, 0x198
push ebx
call fcn.0058861c
push 0xfffffffffffffffb
pop eax
mov ecx, dword [ebp + 0x58]
call fcn.005d2de9
pop edi
pop esi
pop ebx
add ebp, 0x5c
leave
ret