Function at 0x55ca50
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x90
mov ecx, dword [esp + 0x94]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x9c]
xor eax, eax
push ebx
mov ebx, dword [ecx]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0xc], eax
push ebp
mov ebp, dword [ecx]
push esi
mov eax, edx
shr eax, 9
push edi
and eax, 1
mov edi, edx
mov esi, 0xfffffffe
mov dword [esp + 0x98], eax
xor eax, 1
and edi, 1
shl edi, 8
mov dword [esp + 0x48], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x94], eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x5c], edi
mov ecx, dword [esp + 0x54]
test ecx, ecx
mov dword [esp + 0x10], ebp
movzx eax, byte [ebp]
mov dword [esp + 0x24], eax
je 0x55caed
test eax, eax
jne case.0x55cb54.1
test dl, 8
je 0x55cb41
mov edx, dword [esp + 0xc4]
mov ecx, dword [edx + 0xc]
test byte [eax + ecx], 1
jne 0x55d370
mov eax, dword [esp + 0x24]
cmp eax, 0x23
jne 0x55cb35
nop
inc ebp
mov dword [esp + 0x10], ebp
movzx eax, byte [ebp]
test eax, eax
mov dword [esp + 0x24], eax
je 0x55cb35
cmp eax, 0xa
jne 0x55cb10
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
inc ebp
jmp 0x55cad1
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x5c]
or ecx, 0xffffffff
cmp eax, 0x7c
ja case.0x55cb54.1
movzx eax, byte [eax + 0x55e5e4]
jmp dword [eax*4 + 0x55e5b4]
test dl, 2
je 0x55cb69
cmp esi, 0xfffffffe
jne 0x55cb69
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], 0
mov byte [ebx], 0x10
jmp 0x55d367
mov dword [esp + 0x18], 0
mov byte [ebx], 0x11
jmp 0x55d367
cmp esi, 0xfffffffe
jne 0x55cb94
mov esi, ecx
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x18], ebx
mov byte [ebx], 0xb
jmp 0x55d367
mov al, byte [ebp + 1]
cmp al, 0x3a
mov dword [esp + 0x18], ebx
je 0x55cbbf
cmp al, 0x2e
je 0x55cbbf
cmp al, 0x3d
jne 0x55cbe2
mov edx, dword [esp + 0xc4]
push edx
lea eax, [esp + 0x88]
push eax
mov eax, ebp
call fcn.0055c9c0
test eax, eax
mov ebp, dword [esp + 0x10]
jne 0x55e49a
inc ebp
mov dword [esp + 0x10], ebp
movzx esi, byte [ebp]
cmp esi, 0x5e
jne 0x55cc03
inc ebp
mov dword [esp + 0x10], ebp
movzx esi, byte [ebp]
mov dword [esp + 0x20], 1
jmp 0x55cc0b
mov dword [esp + 0x20], 0
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x60]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x54]
test eax, eax
je 0x55cc51
cmp esi, 0x5c
jne 0x55d27d
cmp byte [ebp + 1], 0x45
jne 0x55d27d
mov dword [esp + 0x54], 0
inc ebp
jmp 0x55d2d2
cmp esi, 0x5b
jne 0x55ce0b
mov al, byte [ebp + 1]
cmp al, 0x3a
je 0x55cc6d
cmp al, 0x2e
je 0x55cc6d
cmp al, 0x3d
jne 0x55d184
mov edi, dword [esp + 0xc4]
push edi
lea ecx, [esp + 0x88]
push ecx
mov eax, ebp
call fcn.0055c9c0
test eax, eax
je 0x55d180
mov ebp, dword [esp + 0x10]
cmp byte [ebp + 1], 0x3a
mov esi, dword [edi + 8]
mov dword [esp + 0x1c], 0
jne 0x55e4b5
add ebp, 2
mov dword [esp + 0x10], ebp
cmp byte [ebp], 0x5e
jne 0x55ccbf
inc ebp
mov dword [esp + 0x1c], 1
mov dword [esp + 0x10], ebp
mov edi, dword [esp + 0x84]
sub edi, ebp
mov ebx, ebp
call fcn.0055ca10
test eax, eax
jl 0x55e4c4
test byte [esp + 0x48], 1
je 0x55cce5
cmp eax, 2
jg 0x55cce5
xor eax, eax
lea eax, [eax + eax*2]
xor ebx, ebx
lea ebp, [eax*4 + 0x58dc38]
mov edx, dword [esp + 0x10]
push 5
push str.blank
push edx
call fcn.005733c0
mov edx, dword [ebp]
add esp, 0xc
mov edi, eax
neg edi
sbb edi, edi
inc edi
test edx, edx
jl 0x55cdf2
mov eax, dword [esp + 0x1c]
xor ecx, ecx
test eax, eax
lea edx, [edx + esi + 1]
je 0x55cd90
mov al, byte [edx + ecx - 1]
not al
or byte [esp + ecx + 0x60], al
mov al, byte [edx + ecx]
not al
or byte [esp + ecx + 0x61], al
mov al, byte [edx + ecx + 1]
not al
or byte [esp + ecx + 0x62], al
mov al, byte [edx + ecx + 2]
not al
or byte [esp + ecx + 0x63], al
mov al, byte [edx + ecx + 3]
not al
or byte [esp + ecx + 0x64], al
mov al, byte [edx + ecx + 4]
not al
or byte [esp + ecx + 0x65], al
mov al, byte [edx + ecx + 5]
not al
or byte [esp + ecx + 0x66], al
mov al, byte [edx + ecx + 6]
not al
or byte [esp + ecx + 0x67], al
add ecx, 8
cmp ecx, 0x20
jl 0x55cd25
test edi, edi
je 0x55cde5
mov al, byte [esp + 0x61]
or al, 0x3c
jmp 0x55cde1
mov al, byte [edx + ecx - 1]
or byte [esp + ecx + 0x60], al
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x61], al
mov al, byte [edx + ecx + 1]
or byte [esp + ecx + 0x62], al
mov al, byte [edx + ecx + 2]
or byte [esp + ecx + 0x63], al
mov al, byte [edx + ecx + 3]
or byte [esp + ecx + 0x64], al
mov al, byte [edx + ecx + 4]
or byte [esp + ecx + 0x65], al
mov al, byte [edx + ecx + 5]
or byte [esp + ecx + 0x66], al
mov al, byte [edx + ecx + 6]
or byte [esp + ecx + 0x67], al
add ecx, 8
cmp ecx, 0x20
jl 0x55cd90
test edi, edi
je 0x55cde5
mov al, byte [esp + 0x61]
and al, 0xc3
mov byte [esp + 0x61], al
inc ebx
add ebp, 4
cmp ebx, 3
jl 0x55ccf1
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x14]
inc ebp
mov dword [esp + 0x28], 0xa
jmp 0x55d2d2
cmp esi, 0x5c
jne 0x55d184
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [eax]
mov eax, dword [esp + 0xb8]
push 1
push edx
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.0055c200
mov esi, eax
neg eax
cmp eax, 4
jne 0x55ce4c
mov esi, 8
mov eax, esi
neg eax
cmp eax, 0x10
jne 0x55ce7a
mov ebp, dword [esp + 0x10]
cmp byte [ebp + 1], 0x5c
jne 0x55ce6d
cmp byte [ebp + 2], 0x45
jne 0x55ce6d
add ebp, 2
jmp 0x55d2d2
mov dword [esp + 0x54], 1
jmp 0x55d2d2
test esi, esi
jge 0x55d180
mov ecx, dword [esp + 0xc4]
mov ecx, dword [ecx + 8]
add eax, 0xfffffffb
cmp eax, 5
mov dword [esp + 0x28], 0xa
ja case.default.0x55cea0
jmp dword [eax*4 + 0x55e664]
lea eax, [esp + 0x61]
lea esi, [ecx + 0x41]
mov edi, 4
mov dl, byte [esi - 1]
mov cl, byte [eax - 1]
or cl, dl
mov dl, byte [eax]
mov byte [eax - 1], cl
mov cl, byte [esi]
or dl, cl
mov cl, byte [eax + 1]
mov byte [eax], dl
mov dl, byte [esi + 1]
or cl, dl
mov dl, byte [eax + 2]
mov byte [eax + 1], cl
mov cl, byte [esi + 2]
or dl, cl
mov cl, byte [eax + 3]
mov byte [eax + 2], dl
mov dl, byte [esi + 3]
or cl, dl
mov dl, byte [eax + 4]
mov byte [eax + 3], cl
mov cl, byte [esi + 4]
or dl, cl
mov cl, byte [eax + 5]
mov byte [eax + 4], dl
mov dl, byte [esi + 5]
or cl, dl
mov dl, byte [eax + 6]
mov byte [eax + 5], cl
mov cl, byte [esi + 6]
or dl, cl
mov byte [eax + 6], dl
add esi, 8
add eax, 8
dec edi
jne 0x55ceb3
mov ebp, dword [esp + 0x10]
jmp 0x55d2d2
lea eax, [esp + 0x61]
lea esi, [ecx + 0x41]
mov edi, 4
mov dl, byte [esi - 1]
mov cl, byte [eax - 1]
not dl
or cl, dl
mov dl, byte [eax]
mov byte [eax - 1], cl
mov cl, byte [esi]
not cl
or dl, cl
mov cl, byte [eax + 1]
mov byte [eax], dl
mov dl, byte [esi + 1]
not dl
or cl, dl
mov dl, byte [eax + 2]
mov byte [eax + 1], cl
mov cl, byte [esi + 2]
not cl
or dl, cl
mov cl, byte [eax + 3]
mov byte [eax + 2], dl
mov dl, byte [esi + 3]
not dl
or cl, dl
mov dl, byte [eax + 4]
mov byte [eax + 3], cl
mov cl, byte [esi + 4]
not cl
or dl, cl
mov cl, byte [eax + 5]
mov byte [eax + 4], dl
mov dl, byte [esi + 5]
not dl
or cl, dl
mov dl, byte [eax + 6]
mov byte [eax + 5], cl
mov cl, byte [esi + 6]
not cl
or dl, cl
mov byte [eax + 6], dl
add esi, 8
add eax, 8
dec edi
jne 0x55cf26
mov ebp, dword [esp + 0x10]
jmp 0x55d2d2
lea eax, [esp + 0x61]
lea esi, [ecx + 0xa1]
mov edi, 4
lea esp, [esp]
mov dl, byte [esi - 1]
mov cl, byte [eax - 1]
or cl, dl
mov dl, byte [eax]
mov byte [eax - 1], cl
mov cl, byte [esi]
or dl, cl
mov cl, byte [eax + 1]
mov byte [eax], dl
mov dl, byte [esi + 1]
or cl, dl
mov dl, byte [eax + 2]
mov byte [eax + 1], cl
mov cl, byte [esi + 2]
or dl, cl
mov cl, byte [eax + 3]
mov byte [eax + 2], dl
mov dl, byte [esi + 3]
or cl, dl
mov dl, byte [eax + 4]
mov byte [eax + 3], cl
mov cl, byte [esi + 4]
or dl, cl
mov cl, byte [eax + 5]
mov byte [eax + 4], dl
mov dl, byte [esi + 5]
or cl, dl
mov dl, byte [eax + 6]
mov byte [eax + 5], cl
mov cl, byte [esi + 6]
or dl, cl
mov byte [eax + 6], dl
add esi, 8
add eax, 8
dec edi
jne 0x55cfb0
mov ebp, dword [esp + 0x10]
jmp 0x55d2d2
lea eax, [esp + 0x61]
lea esi, [ecx + 0xa1]
mov edi, 4
mov dl, byte [esi - 1]
mov cl, byte [eax - 1]
not dl
or cl, dl
mov dl, byte [eax]
mov byte [eax - 1], cl
mov cl, byte [esi]
not cl
or dl, cl
mov cl, byte [eax + 1]
mov byte [eax], dl
mov dl, byte [esi + 1]
not dl
or cl, dl
mov dl, byte [eax + 2]
mov byte [eax + 1], cl
mov cl, byte [esi + 2]
not cl
or dl, cl
mov cl, byte [eax + 3]
mov byte [eax + 2], dl
mov dl, byte [esi + 3]
not dl
or cl, dl
mov dl, byte [eax + 4]
mov byte [eax + 3], cl
mov cl, byte [esi + 4]
not cl
or dl, cl
mov cl, byte [eax + 5]
mov byte [eax + 4], dl
mov dl, byte [esi + 5]
not dl
or cl, dl
mov dl, byte [eax + 6]
mov byte [eax + 5], cl
mov cl, byte [esi + 6]
not cl
or dl, cl
mov byte [eax + 6], dl
add esi, 8
add eax, 8
dec edi
jne 0x55d026
mov ebp, dword [esp + 0x10]
jmp 0x55d2d2
mov esi, ecx
lea edx, [esp + 0x60]
xor edi, edi
sub esi, edx
lea eax, [esp + edi + 0x60]
mov dl, byte [esi + eax]
or byte [eax], dl
mov dl, byte [ecx + edi + 1]
or byte [eax + 1], dl
mov dl, byte [ecx + edi + 2]
or byte [eax + 2], dl
mov dl, byte [ecx + edi + 3]
or byte [eax + 3], dl
mov dl, byte [ecx + edi + 4]
or byte [eax + 4], dl
mov dl, byte [ecx + edi + 5]
or byte [eax + 5], dl
mov dl, byte [ecx + edi + 6]
or byte [eax + 6], dl
mov dl, byte [ecx + edi + 7]
or byte [eax + 7], dl
add edi, 8
cmp edi, 0x20
jl 0x55d0a7
mov al, byte [esp + 0x61]
mov ebp, dword [esp + 0x10]
and al, 0xf7
mov byte [esp + 0x61], al
jmp 0x55d2d2
mov esi, ecx
lea eax, [esp + 0x60]
xor edi, edi
sub esi, eax
lea eax, [esp + edi + 0x60]
mov dl, byte [esi + eax]
not dl
or byte [eax], dl
mov dl, byte [ecx + edi + 1]
not dl
or byte [eax + 1], dl
mov dl, byte [ecx + edi + 2]
not dl
or byte [eax + 2], dl
mov dl, byte [ecx + edi + 3]
not dl
or byte [eax + 3], dl
mov dl, byte [ecx + edi + 4]
not dl
or byte [eax + 4], dl
mov dl, byte [ecx + edi + 5]
not dl
or byte [eax + 5], dl
mov dl, byte [ecx + edi + 6]
not dl
or byte [eax + 6], dl
mov dl, byte [ecx + edi + 7]
not dl
or byte [eax + 7], dl
add edi, 8
cmp edi, 0x20
jl 0x55d106
mov al, byte [esp + 0x61]
mov ebp, dword [esp + 0x10]
or al, 8
mov byte [esp + 0x61], al
jmp 0x55d2d2
test byte [esp + 0x48], 0x40
mov ebp, dword [esp + 0x10]
jne 0x55e4ed
movzx esi, byte [ebp]
jmp 0x55d184
mov ebp, dword [esp + 0x10]
cmp byte [ebp + 1], 0x2d
jne 0x55d27d
cmp byte [ebp + 2], 0x5d
je 0x55d27d
add ebp, 2
mov dword [esp + 0x10], ebp
movzx eax, byte [ebp]
cmp eax, 0x5c
mov dword [esp + 0x1c], eax
jne 0x55d1f4
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [edx]
push 1
push ecx
push eax
mov eax, dword [esp + 0xc4]
lea ecx, [esp + 0x20]
push ecx
call fcn.0055c200
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x55d1f0
cmp eax, 0xfffffffc
jne 0x55d276
mov eax, 8
mov dword [esp + 0x1c], eax
mov ebp, dword [esp + 0x10]
cmp eax, esi
jl 0x55e4fc
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
and ecx, 1
sub eax, esi
lea eax, [edx + eax + 1]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], eax
mov eax, esi
cdq
and edx, 7
add eax, edx
mov ecx, esi
and ecx, 7
sar eax, 3
mov dl, 1
shl dl, cl
mov cl, byte [esp + eax + 0x60]
lea edi, [esp + eax + 0x60]
mov eax, dword [esp + 0x34]
or cl, dl
test eax, eax
mov byte [edi], cl
je 0x55d267
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 4]
movzx ecx, byte [ecx + esi]
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
and ecx, 7
lea edi, [esp + eax + 0x60]
mov al, byte [edi]
mov dl, 1
shl dl, cl
or al, dl
mov byte [edi], al
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], esi
inc esi
cmp esi, eax
jle 0x55d215
jmp 0x55d2d2
add ebp, 0xfffffffe
mov dword [esp + 0x10], ebp
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea edi, [esp + eax + 0x60]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
mov cl, byte [edi]
or cl, al
test byte [esp + 0x48], 1
mov byte [edi], cl
je 0x55d2ca
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 4]
movzx esi, byte [edx + esi]
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea edi, [esp + eax + 0x60]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [edi], al
inc dword [esp + 0x28]
mov dword [esp + 0x24], esi
inc ebp
mov dword [esp + 0x10], ebp
movzx esi, byte [ebp]
cmp esi, 0x5d
jne 0x55cc28
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x55cc30
cmp dword [esp + 0x28], 1
jne 0x55d382
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
test eax, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x40], ecx
je 0x55d324
cmp eax, 0xfffffffe
jne 0x55d31b
or eax, 0xffffffff
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], eax
mov byte [ebx], 0x13
jmp 0x55d360
cmp eax, 0xfffffffe
mov ecx, dword [esp + 0x5c]
jne 0x55d341
mov eax, dword [esp + 0x24]
or eax, ecx
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x30], eax
jmp 0x55d359
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 0x28]
or eax, dword [esp + 0x24]
or eax, ecx
mov dword [esp + 0x38], eax
mov byte [ebx], 0x12
inc ebx
mov byte [ebx], 1
mov al, byte [esp + 0x24]
inc ebx
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
inc ebp
jmp 0x55cad1
mov eax, dword [esp + 0x30]
cmp eax, 0xfffffffe
jne 0x55d392
or eax, 0xffffffff
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
test eax, eax
mov dword [esp + 0x40], ecx
lea esi, [esp + 0x60]
je 0x55d3c7
mov byte [ebx], 0x38
inc ebx
mov eax, ebx
sub esi, ebx
mov edi, 0x20
mov dl, byte [esi + eax]
not dl
mov byte [eax], dl
inc eax
dec edi
jne 0x55d3b7
add ebx, 0x20
jmp 0x55d368
mov byte [ebx], 0x37
inc ebx
mov edi, ebx
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
add ebx, 0x20
jmp 0x55d368
mov eax, dword [esp + 0xc4]
inc ebp
push eax
mov eax, ebp
call fcn.0055c400
test eax, eax
je case.0x55cb54.1
mov ecx, dword [esp + 0xc4]
mov edi, dword [esp + 0xb4]
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x44]
push eax
mov eax, ebp
call fcn.0055c490
mov ebp, eax
cmp dword [edi], 0
mov dword [esp + 0x10], ebp
jne 0x55e4d5
jmp 0x55d446
mov dword [esp + 0x2c], ecx
jmp 0x55d43e
mov dword [esp + 0x3c], 1
mov dword [esp + 0x2c], ecx
jmp 0x55d446
mov dword [esp + 0x2c], 1
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x55e50b
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x55d46a
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], edx
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x18]
xor eax, eax
cmp edi, ecx
sete al
xor esi, esi
mov dword [esp + 0x50], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x34], esi
dec eax
and eax, 0x200
mov dword [esp + 0x90], eax
mov al, byte [ebp + 1]
cmp al, 0x2b
jne 0x55d4b4
inc ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x34], 1
mov dword [esp + 0x10], ebp
mov eax, esi
jmp 0x55d4d1
cmp al, 0x3f
jne 0x55d4c6
mov eax, dword [esp + 0x94]
inc ebp
mov dword [esp + 0x10], ebp
jmp 0x55d4cd
mov eax, dword [esp + 0x98]
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x18]
cmp byte [edi], 0x3b
jne 0x55d522
push 3
mov eax, edi
push eax
add eax, 3
push eax
call fcn.00571040
mov dl, byte [esp + 0x24]
add ebx, 3
mov ecx, edi
mov eax, ebx
sub eax, ecx
mov byte [ecx], 0x4c
sar eax, 8
mov byte [ecx + 1], al
mov cl, bl
sub cl, dl
mov edx, edi
mov byte [edx + 2], cl
mov byte [ebx + 1], al
mov eax, dword [esp + 0x34]
mov byte [ebx], 0x3e
mov byte [ebx + 2], cl
mov ebp, dword [esp + 0x1c]
add esp, 0xc
add ebx, 3
mov dword [esp + 0x14], ebx
mov cl, byte [edi]
cmp cl, 0x12
jne 0x55d5a7
movzx edx, byte [ebx - 1]
dec ebx
lea ecx, [edi + 2]
cmp ebx, ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], edx
jne 0x55d59a
cmp dword [esp + 0x3c], 1
mov dword [esp + 0x14], edi
mov ebx, edi
jle 0x55d55e
mov ecx, dword [esp + 0xc4]
mov ecx, dword [ecx + 0x28]
or ecx, edx
or ecx, dword [esp + 0x5c]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x55d9cb
mov ecx, dword [esp + 0x3c]
add eax, edx
test ecx, ecx
mov dword [esp + 0x28], eax
jne 0x55d603
mov ecx, dword [esp + 0x2c]
cmp ecx, 0xffffffff
jne 0x55d5e9
add al, 0x14
mov byte [ebx], al
mov al, byte [esp + 0x24]
inc ebx
mov byte [ebx], al
inc ebx
jmp 0x55d968
dec byte [edi + 1]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x50], ebx
jmp 0x55d55e
cmp cl, 0x13
jne 0x55d5c5
movzx ecx, byte [edi + 1]
mov edx, 9
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], edi
mov ebx, edi
jmp 0x55d562
cmp cl, 0xd
jae 0x55d6ad
movzx ecx, cl
mov edx, 0x12
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], edi
mov ebx, edi
jmp 0x55d562
cmp ecx, 1
jne 0x55d68f
add al, 0x18
mov byte [ebx], al
mov al, byte [esp + 0x24]
inc ebx
mov byte [ebx], al
inc ebx
jmp 0x55d968
cmp dword [esp + 0x3c], 1
jne 0x55d622
cmp dword [esp + 0x2c], 0xffffffff
jne 0x55d63b
add al, 0x16
mov byte [ebx], al
mov al, byte [esp + 0x24]
inc ebx
mov byte [ebx], al
inc ebx
jmp 0x55d968
mov ecx, dword [esp + 0x3c]
add dl, 0x1c
mov byte [ebx], dl
inc ebx
mov edx, ecx
sar edx, 8
mov byte [ebx], dl
mov byte [ebx + 1], cl
add ebx, 2
jmp 0x55d656
mov cl, byte [edi]
cmp cl, 0x12
jne 0x55d650
cmp ebx, edi
jne 0x55d64b
add ebx, 2
jmp 0x55d656
inc byte [edi + 1]
jmp 0x55d656
cmp cl, 0x13
jne 0x55d656
inc ebx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jge 0x55d674
mov cl, byte [esp + 0x24]
mov byte [ebx], cl
add al, 0x14
inc ebx
mov byte [ebx], al
inc ebx
mov al, cl
mov byte [ebx], al
inc ebx
jmp 0x55d968
mov edx, dword [esp + 0x3c]
cmp dword [esp + 0x2c], edx
je 0x55d6a1
mov cl, byte [esp + 0x24]
mov byte [ebx], cl
mov ecx, dword [esp + 0x2c]
inc ebx
sub ecx, edx
mov dword [esp + 0x2c], ecx
add al, 0x1a
mov byte [ebx], al
inc ebx
mov edx, ecx
sar edx, 8
mov byte [ebx + 1], cl
mov byte [ebx], dl
add ebx, 2
mov al, byte [esp + 0x24]
mov byte [ebx], al
inc ebx
jmp 0x55d968
cmp cl, 0x37
je 0x55d8f4
cmp cl, 0x38
je 0x55d8f4
cmp cl, 0x3a
je 0x55d8f4
cmp cl, 0x4c
jae 0x55d6db
cmp cl, 0x46
je 0x55d6db
cmp cl, 0x47
jne 0x55e51a
xor ecx, ecx
mov dword [esp + 0x80], ecx
mov esi, ebx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x2c]
sub esi, edi
cmp ecx, 0xffffffff
mov dword [esp + 0x20], esi
jne 0x55d71e
mov ecx, edi
jmp 0x55d700
xor edx, edx
mov dh, byte [ecx + 1]
mov dl, byte [ecx + 2]
add ecx, edx
cmp byte [ecx], 0x3e
jne 0x55d700
mov edx, ebx
sub edx, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x3c]
test edx, edx
jne 0x55d7b1
test ecx, ecx
jne 0x55d739
mov dword [esp + 0x14], edi
mov ebx, edi
jmp 0x55d9cb
cmp ecx, 1
mov eax, dword [esp + 0x18]
push esi
push eax
jg 0x55d763
lea edi, [eax + 1]
push edi
call fcn.00571040
mov al, byte [esp + 0x34]
mov ecx, dword [esp + 0x24]
add esp, 0xc
inc ebx
add al, 0x49
mov byte [ecx], al
mov dword [esp + 0x18], edi
jmp 0x55d796
add eax, 4
push eax
call fcn.00571040
mov dl, byte [esp + 0x34]
mov eax, dword [esp + 0x24]
add dl, 0x49
mov byte [eax], dl
add esp, 0xc
add ebx, 4
inc eax
mov byte [eax], 0x4c
inc eax
mov dword [esp + 0x24], eax
mov byte [eax], 0
mov byte [eax + 1], 0
add eax, 2
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x10]
dec eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x14], ebx
jmp 0x55d81d
cmp edx, 1
jle 0x55d813
mov esi, dword [esp + 0x88]
test esi, esi
je 0x55d7d1
mov esi, dword [esp + 0x38]
test esi, esi
jge 0x55d7d1
mov esi, dword [esp + 0x30]
mov dword [esp + 0x38], esi
cmp edx, 1
jle 0x55d813
mov ebp, dword [esp + 0x20]
dec edx
mov dword [esp + 0x1c], edx
nop
mov esi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
add ebx, ebp
dec ecx
mov dword [esp + 0x1c], ecx
jne 0x55d7e0
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x14], ebx
test ecx, ecx
jle 0x55d81f
sub ecx, edx
mov dword [esp + 0x2c], ecx
test ecx, ecx
jl 0x55d8e0
mov edx, dword [esp + 0x24]
dec ecx
test ecx, ecx
mov dword [esp + 0x1c], ecx
jl 0x55d89d
mov esi, dword [esp + 0x20]
add al, 0x49
mov byte [esp + 0x5b], al
lea esp, [esp]
mov ecx, dword [esp + 0x1c]
mov byte [ebx], al
inc ebx
test ecx, ecx
je 0x55d86e
mov byte [ebx], 0x4c
inc ebx
test edx, edx
jne 0x55d857
xor ecx, ecx
jmp 0x55d85b
mov ecx, ebx
sub ecx, edx
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov al, byte [esp + 0x5b]
mov edx, ebx
mov byte [ebx + 1], cl
add ebx, 2
mov ecx, esi
mov esi, dword [esp + 0x18]
mov ebp, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
add ebx, esi
dec ecx
mov dword [esp + 0x1c], ecx
jns 0x55d840
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
test edx, edx
je 0x55d970
mov eax, ebx
sub eax, edx
inc eax
mov esi, ebx
sub esi, eax
xor ecx, ecx
mov ch, byte [esi + 1]
mov cl, byte [esi + 2]
test ecx, ecx
jne 0x55d8be
xor edx, edx
jmp 0x55d8c0
sub edx, ecx
mov byte [ebx], 0x3e
inc ebx
mov ecx, eax
sar ecx, 8
mov byte [ebx], cl
mov byte [ebx + 1], al
add ebx, 2
test edx, edx
mov byte [esi + 1], cl
mov byte [esi + 2], al
jne 0x55d8a5
jmp 0x55d968
mov edx, dword [esp + 0x80]
add al, 0x3f
mov ecx, ebx
sub ecx, edx
mov byte [ecx], al
jmp 0x55d96c
mov ecx, dword [esp + 0x2c]
cmp ecx, esi
jne 0x55d907
mov dword [esp + 0x14], edi
mov ebx, edi
jmp 0x55d9cb
mov edx, dword [esp + 0x3c]
test edx, edx
jne 0x55d91b
cmp ecx, 0xffffffff
jne 0x55d92e
add al, 0x2f
mov byte [ebx], al
inc ebx
jmp 0x55d968
cmp dword [esp + 0x3c], 1
jne 0x55d93a
cmp ecx, 0xffffffff
jne 0x55d93a
add al, 0x31
mov byte [ebx], al
inc ebx
jmp 0x55d968
cmp ecx, 1
jne 0x55d93a
add al, 0x33
mov byte [ebx], al
inc ebx
jmp 0x55d968
add al, 0x35
mov byte [ebx], al
mov eax, dword [esp + 0x3c]
inc ebx
mov edx, eax
sar edx, 8
mov byte [ebx], dl
mov byte [ebx + 1], al
add ebx, 2
cmp ecx, 0xffffffff
jne 0x55d95b
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
add ebx, 2
mov dword [esp + 0x14], ebx
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x55d9cb
mov ecx, dword [esp + 0x50]
mov eax, ebx
sub eax, ecx
push eax
push ecx
add ecx, 3
push ecx
mov dword [esp + 0x40], eax
call fcn.00571040
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
mov byte [edx], 0x46
mov byte [ebx + 3], 0x3e
add ecx, 3
add ebx, 3
mov byte [ebx + 2], cl
add esp, 0xc
inc ebx
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov edx, dword [esp + 0x50]
mov byte [edx + 1], al
mov eax, dword [esp + 0x50]
add ebx, 2
mov byte [eax + 2], cl
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0xc4]
mov edx, dword [eax + 0x28]
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
or edx, ecx
mov dword [eax + 0x28], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x18], 0
inc ebp
jmp 0x55cad1
inc ebp
mov dword [esp + 0x10], ebp
cmp byte [ebp], 0x3f
mov dword [esp + 0x80], edx
mov dword [esp + 0x1c], 0
jne 0x55dfe2
inc ebp
mov dword [esp + 0x10], ebp
mov cl, byte [ebp]
movzx eax, cl
add eax, 0xffffffdf
cmp eax, 0x31
ja case.0x55da37.34
movzx eax, byte [eax + 0x55e6ac]
jmp dword [eax*4 + 0x55e67c]
inc ebp
mov dword [esp + 0x10], ebp
cmp byte [ebp], 0x29
je 0x55d370
lea ecx, [ecx]
inc ebp
mov dword [esp + 0x10], ebp
cmp byte [ebp], 0x29
jne 0x55da50
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
inc ebp
jmp 0x55cad1
inc ebp
mov dword [esp + 0x44], 0x4c
mov dword [esp + 0x10], ebp
jmp 0x55dffc
mov al, byte [ebp + 1]
cmp al, 0x52
mov dword [esp + 0x44], 0x47
jne 0x55dab2
mov al, 0xff
mov byte [ebx + 4], al
mov byte [ebx + 5], al
mov byte [ebx + 3], 0x48
mov ecx, dword [esp + 0x10]
mov eax, 3
add ecx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
jmp 0x55dffc
movzx ecx, al
mov al, byte [ecx + 0x58dce0]
test al, al
je 0x55dffc
inc ebp
mov dword [esp + 0x10], ebp
movzx eax, byte [ebp]
sub eax, 0x30
inc ebp
mov dword [esp + 0x10], ebp
mov cl, byte [ebp]
cmp cl, 0x29
je 0x55daf7
lea esp, [esp]
inc ebp
lea edx, [eax + eax*4]
movzx eax, cl
mov dword [esp + 0x10], ebp
mov cl, byte [ebp]
cmp cl, 0x29
lea eax, [eax + edx*2 - 0x30]
jne 0x55dae0
test eax, eax
je 0x55e529
inc ebp
mov ecx, eax
mov dword [esp + 0x10], ebp
sar ecx, 8
mov byte [ebx + 3], 0x48
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
mov dword [esp + 0x1c], 3
jmp 0x55dffc
inc ebp
mov dword [esp + 0x44], 0x41
mov dword [esp + 0x10], ebp
jmp 0x55dffc
inc ebp
mov dword [esp + 0x44], 0x42
mov dword [esp + 0x10], ebp
jmp 0x55dffc
inc ebp
mov dword [esp + 0x10], ebp
mov al, byte [ebp]
cmp al, 0x21
je 0x55db6a
cmp al, 0x3d
jne 0x55dffc
inc ebp
mov dword [esp + 0x44], 0x43
mov dword [esp + 0x10], ebp
jmp 0x55dffc
inc ebp
mov dword [esp + 0x44], 0x44
mov dword [esp + 0x10], ebp
jmp 0x55dffc
inc ebp
mov dword [esp + 0x44], 0x46
mov dword [esp + 0x10], ebp
jmp 0x55dffc
mov byte [ebx], 0x3c
mov ebp, dword [esp + 0x10]
inc ebx
xor eax, eax
inc ebp
mov dword [esp + 0x10], ebp
movzx ecx, byte [ebp]
mov dl, 4
test byte [ecx + 0x58dce0], dl
je 0x55dbd3
jmp 0x55dbb0
inc ebp
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [esp + 0x10], ebp
movzx ecx, byte [ebp]
test byte [ecx + 0x58dce0], dl
jne 0x55dbb0
cmp eax, 0xff
jg 0x55e538
mov dword [esp + 0x18], 0
jmp 0x55d365
inc ebp
mov dword [esp + 0x10], ebp
mov al, byte [ebp]
cmp al, 0x3c
jne 0x55dd41
mov esi, dword [esp + 0xc4]
mov ecx, dword [esi + 0x14]
inc ebp
mov dword [esp + 0x28], ecx
mov ecx, ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x34], ecx
lea esp, [esp]
mov dl, byte [ebp]
inc ebp
cmp dl, 0x3e
mov dword [esp + 0x10], ebp
jne 0x55dc10
mov edx, dword [esi + 0x18]
mov eax, ebp
sub eax, ecx
dec eax
test edx, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x20], 0
jle 0x55dcbd
lea esp, [esp]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x34]
add edi, 2
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x55dc5a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x55dc86
jl 0x55dc99
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + 0x1c]
mov esi, dword [esp + 0x28]
add esi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], esi
mov esi, dword [ecx + 0x18]
inc eax
cmp eax, esi
mov dword [esp + 0x20], eax
jl 0x55dc40
jmp 0x55dcbd
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x28]
cmp byte [ecx + eax + 2], 0
je 0x55e547
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + 0x1c]
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
sub edx, ebp
imul edx, eax
push edx
push ecx
add ecx, eax
push ecx
call fcn.00571040
add esp, 0xc
mov esi, dword [esp + 0xa8]
mov edx, dword [esi]
mov eax, dword [esp + 0x28]
inc edx
sar edx, 8
mov byte [eax], dl
mov cl, byte [esi]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x34]
inc cl
mov byte [eax + 1], cl
mov ecx, edx
mov ebp, ecx
shr ecx, 2
lea edi, [eax + 2]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [edx + eax + 2], 0
mov eax, dword [esp + 0xc4]
inc dword [eax + 0x18]
mov eax, dword [esp + 0xa8]
mov esi, dword [eax]
inc esi
mov ecx, esi
cmp ecx, 0x96
mov dword [eax], esi
jle 0x55dff5
mov byte [ebx + 3], 0x4b
mov edx, dword [eax]
sar edx, 8
mov byte [ebx + 4], dl
mov al, byte [eax]
mov dword [esp + 0x44], 0xe3
mov byte [ebx + 5], al
mov dword [esp + 0x1c], 3
jmp 0x55dffc
cmp al, 0x3d
je 0x55dd4d
cmp al, 0x3e
jne 0x55dffc
movzx edx, al
mov eax, dword [esp + 0xc4]
mov edi, dword [eax + 0x14]
inc ebp
mov dword [esp + 0x10], ebp
cmp byte [ebp], 0x29
mov dword [esp + 0x90], edx
mov dword [esp + 0x34], ebp
je 0x55dd7b
inc ebp
mov dword [esp + 0x10], ebp
cmp byte [ebp], 0x29
jne 0x55dd70
mov ecx, dword [esp + 0x34]
mov esi, ebp
sub esi, ecx
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + 0x18]
test eax, eax
mov dword [esp + 0x20], 0
jle 0x55ddd0
mov ebp, dword [esp + 0x20]
lea ecx, [ecx]
mov eax, dword [esp + 0x34]
push esi
lea edx, [edi + 2]
push edx
push eax
call fcn.005733c0
add esp, 0xc
test eax, eax
je 0x55ddcc
mov eax, dword [esp + 0xc4]
add edi, dword [eax + 0x1c]
mov ecx, dword [eax + 0x18]
inc ebp
cmp ebp, ecx
mov dword [esp + 0x20], ebp
jl 0x55dda0
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0xc4]
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esi + 0x18]
jge 0x55e559
movzx ecx, byte [edi + 1]
cmp dword [esp + 0x90], 0x3e
mov ch, byte [edi]
je 0x55de5f
mov byte [ebx], 0x3a
mov dword [esp + 0x18], ebx
inc ebx
mov edx, ecx
sar edx, 8
mov byte [ebx], dl
mov byte [ebx + 1], cl
add ebx, 2
cmp ecx, 0x20
mov dword [esp + 0x14], ebx
mov eax, 1
jge 0x55de19
shl eax, cl
mov edx, dword [esi + 0x24]
or edx, eax
cmp ecx, dword [esi + 0x20]
mov dword [esi + 0x24], edx
jle 0x55d36c
mov dword [esi + 0x20], ecx
jmp 0x55d36c
inc ebp
mov dword [esp + 0x10], ebp
movzx eax, byte [ebp]
mov dl, 4
xor ecx, ecx
test byte [eax + 0x58dce0], dl
je 0x55de5f
inc ebp
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
mov dword [esp + 0x10], ebp
movzx eax, byte [ebp]
test byte [eax + 0x58dce0], dl
jne 0x55de47
test ecx, ecx
mov dword [esp + 0x18], ebx
mov byte [ebx], 0
jne 0x55de7a
mov edx, dword [esp + 0xc4]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x20], ecx
jmp 0x55de93
mov eax, dword [esp + 0xc4]
mov eax, dword [eax + 0x10]
push 0
mov esi, ecx
call fcn.0055c7d0
mov dword [esp + 0x20], eax
mov ecx, eax
test ecx, ecx
je 0x55e56b
xor edx, edx
mov dh, byte [ecx + 1]
mov dl, byte [ecx + 2]
test edx, edx
jne 0x55dec6
mov eax, dword [esp + 0xc0]
push ecx
xor edi, edi
call fcn.0055c980
test eax, eax
jne 0x55e57d
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0xc4]
mov byte [ebx], 0x3b
mov edi, dword [eax + 0x10]
mov edx, ecx
sub edx, edi
sar edx, 8
mov byte [ebx + 1], dl
sub cl, byte [eax + 0x10]
mov byte [ebx + 2], cl
add ebx, 3
jmp 0x55d368
xor edi, edi
xor esi, esi
cmp cl, 0x29
mov dword [esp + 0x34], edi
mov dword [esp + 0x20], esi
lea eax, [esp + 0x20]
je 0x55df62
cmp cl, 0x3a
je 0x55df62
movzx ecx, cl
inc ebp
sub ecx, 0x2d
cmp ecx, 0x4b
mov dword [esp + 0x10], ebp
ja case.0x55df1c.46
movzx ecx, byte [ecx + 0x55e700]
jmp dword [ecx*4 + 0x55e6e0]
lea eax, [esp + 0x34]
jmp case.0x55df1c.46
mov ecx, dword [eax]
or ecx, 1
jmp 0x55df54
mov ecx, dword [eax]
or ecx, 2
jmp 0x55df54
mov ecx, dword [eax]
or ecx, 4
jmp 0x55df54
mov ecx, dword [eax]
or ecx, 8
jmp 0x55df54
mov ecx, dword [eax]
or ecx, 0x200
jmp 0x55df54
mov ecx, dword [eax]
or ecx, 0x40
mov dword [eax], ecx
mov cl, byte [ebp]
cmp cl, 0x29
mov esi, dword [esp + 0x20]
jne 0x55df00
mov eax, dword [esp + 0x34]
mov cl, byte [ebp]
or esi, edx
not eax
and esi, eax
cmp cl, 0x29
mov eax, esi
mov dword [esp + 0x80], eax
jne case.0x55da37.58
mov ecx, eax
xor ecx, edx
test cl, 7
je 0x55df9e
mov byte [ebx], 0xf
mov dl, al
inc ebx
and dl, 7
mov byte [ebx], dl
mov ebp, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0x30]
mov dword [ecx], eax
mov ecx, eax
shr ecx, 9
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x48]
and ecx, 1
and eax, 1
shl eax, 8
mov dword [esp + 0x98], ecx
xor ecx, 1
mov dword [esp + 0x18], edi
mov dword [esp + 0x94], ecx
mov dword [esp + 0x5c], eax
inc ebp
mov edi, eax
jmp 0x55cad1
test dh, 0x10
je 0x55dd01
mov dword [esp + 0x44], 0x4c
jmp 0x55dffc
add ecx, 0x4c
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xc4]
xor eax, eax
cmp ecx, 0x46
setl al
mov byte [ebx], cl
mov edi, dword [edx + 0x28]
mov dword [esp + 0x50], ebx
dec eax
and eax, ebx
cmp ecx, 0x43
mov dword [esp + 0x18], eax
je 0x55e02d
cmp ecx, 0x44
je 0x55e02d
xor eax, eax
jmp 0x55e032
mov eax, 1
mov ecx, dword [esp + 0xc0]
push edx
push ecx
lea edx, [esp + 0x94]
push edx
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0xa8]
push ecx
push edx
push eax
mov eax, dword [esp + 0xcc]
push eax
mov eax, dword [esp + 0xc4]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0xa0]
lea edx, [esp + 0x70]
push edx
mov edx, dword [esp + 0x6c]
push eax
and edx, 7
call fcn.0055e750
test eax, eax
je 0x55e4d1
mov esi, dword [esp + 0x44]
cmp esi, 0x47
jne 0x55e0c6
xor eax, eax
xor ecx, ecx
mov ch, byte [ebx + 1]
inc eax
mov cl, byte [ebx + 2]
add ebx, ecx
cmp byte [ebx], 0x3e
jne 0x55e091
cmp eax, 2
jg 0x55e58f
cmp eax, 1
jne 0x55e0c6
mov ecx, 0xffffffff
or eax, ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x9c], eax
jmp 0x55e0d4
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x9c]
cmp esi, 0x4c
mov edx, dword [esp + 0x38]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x88], 0
jge 0x55e105
cmp esi, 0x46
je 0x55e105
cmp esi, 0x47
je 0x55e105
cmp esi, 0x41
jne 0x55e154
jmp 0x55e14c
cmp edx, 0xfffffffe
jne 0x55e139
test eax, eax
jl 0x55e127
mov dword [esp + 0x30], eax
mov dword [esp + 0x88], 1
mov dword [esp + 0x4c], 0xffffffff
jmp 0x55e14c
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x4c], 0xffffffff
jmp 0x55e14c
test eax, eax
jl 0x55e14c
test ecx, ecx
jge 0x55e150
or eax, edi
mov ecx, eax
mov dword [esp + 0x8c], ecx
test ecx, ecx
jl 0x55e154
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x14], eax
cmp byte [ebp], 0x29
jne 0x55e5a1
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
inc ebp
jmp 0x55cad1
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [eax]
mov eax, dword [esp + 0xb8]
push 0
push edx
push ecx
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x98], ebp
call fcn.0055c200
test eax, eax
jge 0x55e266
mov ecx, eax
neg ecx
cmp ecx, 0x10
jne 0x55e201
mov ebp, dword [esp + 0x10]
cmp byte [ebp + 1], 0x5c
jne 0x55e1e7
cmp byte [ebp + 2], 0x45
jne 0x55e1e7
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
add ebp, 2
inc ebp
jmp 0x55cad1
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x54], 1
inc ebp
jmp 0x55cad1
cmp esi, 0xfffffffe
jne 0x55e217
cmp ecx, 4
jle 0x55e217
cmp ecx, 0xd
jge 0x55e217
or esi, 0xffffffff
mov dword [esp + 0x30], esi
cmp ecx, 0x11
mov edx, dword [esp + 0x38]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x40], edx
jl 0x55e249
mov ecx, 0xffffffef
sub ecx, eax
mov byte [ebx], 0x3a
mov dword [esp + 0x18], ebx
inc ebx
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
add ebx, 2
jmp 0x55d368
cmp ecx, 4
jle 0x55e257
cmp ecx, 0xd
mov dword [esp + 0x18], ebx
jl 0x55e25f
mov dword [esp + 0x18], 0
neg al
jmp 0x55d365
mov dword [esp + 0x10], ebp
mov dword [esp + 0x24], 0x5c
mov ecx, dword [esp + 0x24]
mov byte [ebx], 0x12
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], ebx
add ebx, 2
mov ebp, ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x14], ebp
xor ebx, ebx
mov edx, dword [esp + 0x54]
test edx, edx
je 0x55e2bd
cmp ecx, 0x5c
jne 0x55e2b5
cmp byte [eax + 1], 0x45
jne 0x55e2b5
inc eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x10], eax
jmp 0x55e34c
mov byte [ebp], cl
jmp 0x55e342
test byte [esp + 0x48], 8
je 0x55e2f7
mov edx, dword [esp + 0xc4]
mov edx, dword [edx + 0xc]
test byte [ecx + edx], 1
jne 0x55e34c
cmp ecx, 0x23
jne 0x55e2f7
lea esp, [esp]
inc eax
mov dword [esp + 0x10], eax
movzx ecx, byte [eax]
test ecx, ecx
je 0x55e37e
cmp ecx, 0xa
jne 0x55e2e0
jmp 0x55e34c
cmp ecx, 0x5c
jne 0x55e337
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xa8]
mov esi, eax
mov eax, dword [esp + 0xc4]
push eax
mov eax, dword [edx]
push 0
push ecx
push eax
mov eax, dword [esp + 0xc4]
lea ecx, [esp + 0x20]
push ecx
mov dword [esp + 0x98], esi
call fcn.0055c200
test eax, eax
mov dword [esp + 0x24], eax
jl 0x55e376
mov dl, byte [esp + 0x24]
mov esi, dword [esp + 0x30]
mov byte [ebp], dl
mov eax, dword [esp + 0x10]
inc ebp
mov dword [esp + 0x14], ebp
inc ebx
cmp ebx, 0xfa
jge 0x55e37e
mov edx, dword [esp + 0xc4]
mov edx, dword [edx + 0xc]
inc eax
mov dword [esp + 0x10], eax
movzx ecx, byte [eax]
test byte [ecx + edx], 0x80
mov dword [esp + 0x24], ecx
je 0x55e290
jmp 0x55e37e
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x30]
cmp esi, 0xfffffffe
jne 0x55e3f7
cmp ebx, 1
jne 0x55e3aa
mov eax, dword [esp + 0x34]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x38]
or eax, edi
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], ecx
jmp 0x55e432
mov edx, dword [esp + 0x34]
movzx eax, byte [edx]
or eax, edi
cmp ebx, 2
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], eax
jle 0x55e3df
mov ecx, dword [esp + 0xc4]
movzx eax, byte [ebp - 2]
or eax, dword [ecx + 0x28]
mov edx, dword [ecx + 0x28]
or eax, edi
mov dword [esp + 0x40], eax
movzx eax, byte [ebp - 1]
or eax, edx
jmp 0x55e42c
mov edx, dword [esp + 0x38]
movzx eax, byte [ebp - 1]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x40], edx
or eax, dword [ecx + 0x28]
jmp 0x55e42c
cmp ebx, 1
mov dword [esp + 0x4c], esi
jne 0x55e40a
mov edx, dword [esp + 0x38]
mov dword [esp + 0x40], edx
jmp 0x55e41e
movzx eax, byte [ebp - 2]
mov ecx, dword [esp + 0xc4]
or eax, dword [ecx + 0x28]
or eax, edi
mov dword [esp + 0x40], eax
movzx eax, byte [ebp - 1]
mov edx, dword [esp + 0xc4]
or eax, dword [edx + 0x28]
or eax, edi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
mov byte [eax + 1], bl
cmp ebx, 0xfa
mov ebx, dword [esp + 0x14]
jge 0x55d36c
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
dec ebp
inc ebp
jmp 0x55cad1
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x38]
mov dword [ecx], esi
mov ecx, dword [esp + 0xac]
mov dword [edx], eax
mov edx, dword [esp + 0xb0]
pop edi
mov dword [ecx], ebx
pop esi
mov dword [edx], ebp
pop ebp
mov eax, 1
pop ebx
add esp, 0x90
ret 0x24
cmp byte [ebp + 1], 0x3a
mov eax, str.POSIX_named_classes_are_supported_only_within_a_class
je 0x55e4aa
mov eax, 0x59c7a8
mov ecx, dword [esp + 0xb4]
mov dword [ecx], eax
jmp 0x55e4d5
mov edx, dword [esp + 0xb4]
mov dword [edx], str.POSIX_collating_elements_are_not_supported
jmp 0x55e4d5
mov eax, dword [esp + 0xb4]
mov dword [eax], str.unknown_POSIX_class_name
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0xb0]
pop edi
pop esi
mov dword [ecx], ebp
pop ebp
xor eax, eax
pop ebx
add esp, 0x90
ret 0x24
mov ecx, dword [esp + 0xb4]
mov dword [ecx], str.invalid_escape_sequence_in_character_class
jmp 0x55e4d5
mov edx, dword [esp + 0xb4]
mov dword [edx], str.range_out_of_order_in_character_class
jmp 0x55e4d5
mov eax, dword [esp + 0xb4]
mov dword [eax], str.nothing_to_repeat
jmp 0x55e4d5
mov ecx, dword [esp + 0xb4]
mov dword [ecx], str.internal_error:_unexpected_repeat
jmp 0x55e4d5
mov edx, dword [esp + 0xb4]
mov dword [edx], str.invalid_condition____0_
jmp 0x55e4d5
mov eax, dword [esp + 0xb4]
mov dword [eax], str.number_after___C_is___255
jmp 0x55e4d5
mov ecx, dword [esp + 0xb4]
mov dword [ecx], str.two_named_groups_have_the_same_name
jmp 0x55e4d5
mov edx, dword [esp + 0xb4]
mov dword [edx], 0x59c908
jmp 0x55e4d5
mov eax, dword [esp + 0xb4]
mov dword [eax], 0x59c930
jmp 0x55e4d1
mov ecx, dword [esp + 0xb4]
mov dword [ecx], str.recursive_call_could_loop_indefinitely
jmp 0x55e4d1
mov edx, dword [esp + 0xb4]
mov dword [edx], str.conditional_group_contains_more_than_two_branches
jmp 0x55e4d1
mov eax, dword [esp + 0xb4]
mov dword [eax], str.missing__
jmp 0x55e4d5