Function at 0x1001b4e0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x8c
mov eax, dword [0x100661b0]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x94]
push ebx
mov ebx, dword [ecx]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x9c]
push ebp
mov ebp, dword [eax]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x98]
shr eax, 9
push esi
mov esi, dword [esp + 0xb0]
and eax, 1
mov dword [esp + 0x58], ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xa8]
push edi
xor edi, edi
mov ecx, eax
xor ecx, 1
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x40]
mov dword [edx], 0xffffffff
mov dword [esp + 0x44], edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], 0xffffffff
mov dword [ecx], edi
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x10], ebx
movzx ecx, byte [ebx]
and edx, 8
mov dword [esp + 0x14], ecx
mov dword [esp + 0x4c], edx
je 0x1001b5d8
mov edx, dword [esi + 0xc]
test byte [ecx + edx], 1
jne 0x1001ba4b
cmp ecx, 0x23
jne 0x1001b5d8
nop
add ebx, 1
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
test eax, eax
je 0x1001ba4b
cmp eax, 0xa
jne 0x1001b5b0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
add ebx, 1
jmp 0x1001b582
cmp ecx, 0x7c
ja case.0x1001b5e8.1
movzx edx, byte [ecx + 0x1001c64c]
jmp dword [edx*4 + 0x1001c61c]
mov dword [esp + 0x18], 0
mov byte [ebp], 0xd
jmp 0x1001ba44
mov dword [esp + 0x18], 0
mov byte [ebp], 0xe
jmp 0x1001ba44
mov dword [esp + 0x18], ebp
mov byte [ebp], 0xf
jmp 0x1001ba44
mov byte [ebp], 0x35
mov ebx, dword [esp + 0x10]
add ebx, 1
mov dword [esp + 0x10], ebx
movzx edi, byte [ebx]
mov dword [esp + 0x18], ebp
add ebp, 1
cmp edi, 0x5e
jne 0x1001b650
add ebx, 1
mov dword [esp + 0x10], ebx
movzx edi, byte [ebx]
mov dword [esp + 0x20], 1
jmp 0x1001b658
mov dword [esp + 0x20], 0
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
test edi, edi
je 0x1001c565
cmp edi, 0x5b
jne 0x1001b792
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x1001b6bc
cmp al, 0x2e
je 0x1001b6bc
cmp al, 0x3d
jne 0x1001b8d0
mov esi, dword [esp + 0x2c]
lea eax, [esp + 0x50]
push eax
mov ecx, esi
mov eax, ebx
call fcn.1001b450
add esp, 4
test eax, eax
je 0x1001b8d4
cmp byte [ebx + 1], 0x3a
mov ecx, dword [esi + 8]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x14], ecx
jne 0x1001c574
add ebx, 2
mov dword [esp + 0x10], ebx
cmp byte [ebx], 0x5e
jne 0x1001b70d
add ebx, 1
mov dword [esp + 0x3c], 1
mov dword [esp + 0x10], ebx
mov edi, dword [esp + 0x50]
sub edi, ebx
call fcn.1001b4a0
test eax, eax
jl 0x1001c583
test byte [esp + 0xa0], 1
je 0x1001b731
cmp eax, 2
jg 0x1001b731
xor eax, eax
mov edx, dword [esp + 0x14]
lea eax, [eax + eax*2]
xor edi, edi
lea esi, [eax*4 + 0x10054450]
mov ecx, dword [esi]
test ecx, ecx
jl 0x1001b77e
xor eax, eax
add ecx, edx
cmp dword [esp + 0x3c], eax
je 0x1001b764
mov bl, byte [ecx + eax]
not bl
or byte [esp + eax + 0x78], bl
add eax, 1
cmp eax, 0x20
jl 0x1001b751
jmp 0x1001b773
mov bl, byte [ecx + eax]
or byte [esp + eax + 0x78], bl
add eax, 1
cmp eax, 0x20
jl 0x1001b764
add edi, 1
add esi, 4
cmp edi, 3
jl 0x1001b741
mov ebx, dword [esp + 0x50]
add ebx, 1
mov dword [esp + 0x14], 0xa
jmp 0x1001ba14
cmp edi, 0x5c
mov esi, dword [esp + 0x2c]
jne 0x1001b8d4
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov eax, dword [esp + 0x1c]
push esi
push 1
push edx
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.1001af40
mov edi, eax
mov ecx, edi
neg ecx
add esp, 0x14
cmp ecx, 3
jne 0x1001b7db
mov edi, 8
mov ebx, dword [esp + 0x10]
jmp 0x1001b8d4
test edi, edi
jge 0x1001b7d2
mov eax, dword [esi + 8]
add ecx, 0xfffffffc
cmp ecx, 5
mov dword [esp + 0x14], 0xa
ja case.default.0x1001b7f6
jmp dword [ecx*4 + 0x1001c6cc]
xor ecx, ecx
nop
mov dl, byte [eax + ecx + 0x40]
or byte [esp + ecx + 0x78], dl
add ecx, 1
cmp ecx, 0x20
jl 0x1001b800
mov ebx, dword [esp + 0x10]
jmp 0x1001ba14
xor ecx, ecx
jmp 0x1001b820
mov dl, byte [eax + ecx + 0x40]
not dl
or byte [esp + ecx + 0x78], dl
add ecx, 1
cmp ecx, 0x20
jl 0x1001b820
mov ebx, dword [esp + 0x10]
jmp 0x1001ba14
xor ecx, ecx
lea ecx, [ecx]
mov dl, byte [eax + ecx + 0xa0]
or byte [esp + ecx + 0x78], dl
add ecx, 1
cmp ecx, 0x20
jl 0x1001b840
mov ebx, dword [esp + 0x10]
jmp 0x1001ba14
xor ecx, ecx
mov edi, edi
mov dl, byte [eax + ecx + 0xa0]
not dl
or byte [esp + ecx + 0x78], dl
add ecx, 1
cmp ecx, 0x20
jl 0x1001b860
mov ebx, dword [esp + 0x10]
jmp 0x1001ba14
mov edi, eax
lea eax, [esp + 0x78]
xor edx, edx
sub edi, eax
jmp 0x1001b890
lea ecx, [esp + edx + 0x78]
mov al, byte [edi + ecx]
or byte [ecx], al
add edx, 1
cmp edx, 0x20
jl 0x1001b890
mov ebx, dword [esp + 0x10]
jmp 0x1001ba14
mov edi, eax
lea ecx, [esp + 0x78]
xor edx, edx
sub edi, ecx
lea ecx, [esp + edx + 0x78]
mov al, byte [edi + ecx]
not al
or byte [ecx], al
add edx, 1
cmp edx, 0x20
jl 0x1001b8b4
mov ebx, dword [esp + 0x10]
jmp 0x1001ba14
mov esi, dword [esp + 0x2c]
cmp byte [ebx + 1], 0x2d
jne 0x1001b9c2
cmp byte [ebx + 2], 0x5d
je 0x1001b9c2
add ebx, 2
mov dword [esp + 0x10], ebx
movzx eax, byte [ebx]
test eax, eax
mov dword [esp + 0x3c], eax
je 0x1001c5a1
cmp eax, 0x5c
jne 0x1001b944
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x34]
mov eax, dword [edx]
push esi
push 1
push ecx
push eax
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x20]
push ecx
call fcn.1001af40
add esp, 0x14
test eax, eax
mov dword [esp + 0x3c], eax
jge 0x1001b940
cmp eax, 0xfffffffd
jne 0x1001b9bb
mov eax, 8
mov dword [esp + 0x3c], eax
mov ebx, dword [esp + 0x10]
cmp eax, edi
jl 0x1001c5b0
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x14]
and ecx, 1
sub eax, edi
lea eax, [edx + eax + 1]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x14], eax
mov eax, edi
cdq
and edx, 7
add eax, edx
mov ecx, edi
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea esi, [esp + eax + 0x78]
or byte [esi], dl
cmp dword [esp + 0x4c], 0
je 0x1001b9ac
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
movzx ecx, byte [ecx + edi]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea esi, [esp + eax + 0x78]
or byte [esi], dl
mov dword [esp + 0x38], edi
add edi, 1
cmp edi, dword [esp + 0x3c]
jle 0x1001b968
jmp 0x1001ba14
add ebx, 0xfffffffe
mov dword [esp + 0x10], ebx
mov eax, edi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea esi, [esp + eax + 0x78]
mov ecx, edi
and ecx, 7
mov al, 1
shl al, cl
or byte [esi], al
test byte [esp + 0xa0], 1
je 0x1001ba0b
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 4]
movzx edi, byte [edx + edi]
mov eax, edi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea esi, [esp + eax + 0x78]
mov ecx, edi
and ecx, 7
mov al, 1
shl al, cl
or byte [esi], al
add dword [esp + 0x14], 1
mov dword [esp + 0x38], edi
add ebx, 1
mov dword [esp + 0x10], ebx
movzx edi, byte [ebx]
cmp edi, 0x5d
jne 0x1001b698
cmp dword [esp + 0x14], 1
jne 0x1001ba6c
mov eax, dword [esp + 0x38]
test eax, eax
jl 0x1001ba6c
cmp dword [esp + 0x20], 0
je 0x1001ba5f
mov byte [ebp - 1], 0x11
mov byte [ebp], al
add ebp, 1
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
add ebx, 1
jmp 0x1001b582
mov byte [ebp - 1], 0x10
mov byte [ebp], 1
add ebp, 1
jmp 0x1001ba41
cmp dword [esp + 0x20], 0
je 0x1001baaa
lea ecx, [esp + 0x78]
mov eax, ebp
sub ecx, ebp
mov edi, 0x20
mov dl, byte [ecx + eax]
not dl
mov byte [eax], dl
add eax, 1
sub edi, 1
jne 0x1001ba80
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
add ebp, 0x20
add ebx, 1
jmp 0x1001b582
mov eax, dword [esp + 0x58]
mov edi, ebp
mov ecx, 8
lea esi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
add ebp, 0x20
add ebx, 1
jmp 0x1001b582
lea edi, [ebx + 1]
mov ecx, esi
mov eax, edi
call fcn.1001b150
test eax, eax
je 0x1001c448
mov ebx, dword [esp + 0x1c]
push esi
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov eax, edi
call fcn.1001b1d0
mov edx, dword [esp + 0x28]
add esp, 0xc
cmp dword [edx], 0
mov ebx, eax
mov dword [esp + 0x10], ebx
jne 0x1001c35a
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
jmp 0x1001bb43
or ecx, 0xffffffff
jmp 0x1001bb37
mov dword [esp + 0x24], 1
or ecx, 0xffffffff
jmp 0x1001bb3f
mov ecx, 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], ecx
test edi, edi
je 0x1001c5bf
cmp byte [ebx + 1], 0x3f
jne 0x1001bb5c
mov eax, dword [esp + 0x68]
add ebx, 1
mov dword [esp + 0x10], ebx
mov dl, byte [edi]
cmp dl, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x33], dl
jne 0x1001bbc4
cmp dword [esp + 0x24], 0
movzx edi, byte [edi + 1]
jne 0x1001bb80
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
mov dword [esi], edx
mov edx, dword [esp + 0x24]
lea esi, [edx - 1]
mov edx, dword [esp + 0x40]
add dword [edx], esi
cmp edi, 1
jne 0x1001bba5
mov ebp, dword [esp + 0x18]
movzx edx, byte [ebp + 2]
mov dword [esp + 0x14], edx
xor edx, edx
jmp 0x1001bf44
mov edx, dword [esp + 0x18]
movzx esi, byte [edi + edx + 1]
add byte [edx + 1], 0xff
mov ebx, dword [esp + 0x10]
sub ebp, 1
mov dword [esp + 0x14], esi
xor edx, edx
jmp 0x1001bf44
cmp dl, 0x11
jne 0x1001bbda
movzx edx, byte [edi + 1]
mov dword [esp + 0x20], 9
jmp 0x1001bf3a
cmp dl, 0xa
jb 0x1001bf2d
cmp dl, 0xf
je 0x1001bf2d
cmp dl, 0x35
je 0x1001be51
cmp dl, 0x36
je 0x1001be51
cmp dl, 0x46
jae 0x1001bc11
cmp dl, 0x41
je 0x1001bc11
cmp dl, 0x42
jne 0x1001c5ce
mov eax, dword [esp + 0x18]
xor esi, esi
mov edi, ebp
sub edi, eax
cmp ecx, 0xffffffff
mov dword [esp + 0x20], esi
mov dword [esp + 0x4c], esi
jne 0x1001bc52
jmp 0x1001bc30
movzx edx, byte [eax + 1]
movzx esi, byte [eax + 2]
shl edx, 8
add esi, eax
cmp byte [esi + edx], 0x39
lea eax, [esi + edx]
jne 0x1001bc30
mov esi, dword [esp + 0x4c]
mov edx, ebp
sub edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x1001bd18
cmp dword [esp + 0x54], eax
jle 0x1001bc78
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov dword [edx], eax
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x40]
sub dword [eax], edx
test ecx, ecx
jne 0x1001bc96
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], ecx
add ebx, 1
mov edi, ecx
jmp 0x1001b582
cmp ecx, 1
push edi
jg 0x1001bcd2
mov eax, dword [esp + 0x1c]
lea ebx, [eax + 1]
push eax
push ebx
call fcn.10035b30
mov al, byte [esp + 0x20]
mov ecx, dword [esp + 0x24]
add al, 0x44
add esp, 0xc
add ebp, 1
sub dword [esp + 0x28], 1
mov byte [ecx], al
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x10]
jmp 0x1001bd4e
mov ebx, dword [esp + 0x1c]
lea edx, [ebx + 4]
push ebx
push edx
call fcn.10035b30
mov al, byte [esp + 0x20]
add al, 0x44
mov byte [ebx], al
add ebx, 1
mov byte [ebx], 0x46
add ebx, 1
mov byte [ebx], 0
mov esi, ebx
add ebx, 1
mov byte [ebx], 0
add ebx, 1
add esp, 0xc
add ebp, 4
sub dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x10]
jmp 0x1001bd4e
cmp eax, 1
jle 0x1001bd3e
mov ebx, dword [esp + 0x24]
add ebx, 0xffffffff
mov ecx, dword [esp + 0x18]
push edi
push ecx
push ebp
call fcn.10039170
add esp, 0xc
add ebp, edi
sub ebx, 1
jne 0x1001bd24
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x1001bd50
sub eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
test eax, eax
jl 0x1001be23
add eax, 0xffffffff
mov dword [esp + 0x20], eax
js 0x1001bdbf
mov bl, byte [esp + 0x14]
add bl, 0x44
jmp 0x1001bd70
mov byte [ebp], bl
add ebp, 1
cmp dword [esp + 0x20], 0
je 0x1001bda3
mov byte [ebp], 0x46
add ebp, 1
test esi, esi
jne 0x1001bd8c
xor eax, eax
jmp 0x1001bd90
mov eax, ebp
sub eax, esi
mov edx, eax
sar edx, 8
mov byte [ebp], dl
mov esi, ebp
add ebp, 1
mov byte [ebp], al
add ebp, 1
mov eax, dword [esp + 0x18]
push edi
push eax
push ebp
call fcn.10039170
add esp, 0xc
add ebp, edi
sub dword [esp + 0x20], 1
jns 0x1001bd70
mov ebx, dword [esp + 0x10]
test esi, esi
je 0x1001c020
mov eax, ebp
sub eax, esi
add eax, 1
mov ecx, ebp
sub ecx, eax
movzx edx, byte [ecx + 1]
movzx edi, byte [ecx + 2]
shl edx, 8
add edx, edi
jne 0x1001bde5
xor esi, esi
jmp 0x1001bde7
sub esi, edx
mov byte [ebp], 0x39
add ebp, 1
mov edx, eax
sar edx, 8
mov byte [ecx + 1], dl
mov byte [ebp], dl
add ebp, 1
mov byte [ecx + 2], al
mov byte [ebp], al
add ebp, 1
test esi, esi
jne 0x1001bdc7
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], esi
mov edi, esi
mov esi, dword [esp + 0x2c]
add ebx, 1
jmp 0x1001b582
mov al, byte [esp + 0x14]
mov esi, dword [esp + 0x2c]
mov ecx, ebp
sub ecx, dword [esp + 0x20]
add al, 0x3a
mov byte [ecx], al
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x18]
add ebx, 1
jmp 0x1001b582
test ecx, ecx
jne 0x1001be6d
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
mov ebp, edi
mov dword [esp + 0x18], ecx
add ebx, 1
mov edi, ecx
jmp 0x1001b582
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1001be9c
cmp ecx, 0xffffffff
jne 0x1001becd
mov esi, dword [esp + 0x2c]
add al, 0x2d
mov byte [ebp], al
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
add ebp, 1
mov dword [esp + 0x18], edx
add ebx, 1
mov edi, edx
jmp 0x1001b582
cmp edx, 1
jne 0x1001bef9
cmp ecx, 0xffffffff
jne 0x1001bef9
mov esi, dword [esp + 0x2c]
add al, 0x2f
mov byte [ebp], al
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x18]
add ebp, 1
add ebx, edx
jmp 0x1001b582
cmp ecx, 1
jne 0x1001bef9
mov esi, dword [esp + 0x2c]
add al, 0x31
mov byte [ebp], al
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x18]
add ebp, 1
add ebx, ecx
jmp 0x1001b582
add al, 0x33
mov byte [ebp], al
add ebp, 1
mov eax, edx
sar eax, 8
mov byte [ebp], al
add ebp, 1
mov byte [ebp], dl
add ebp, 1
cmp ecx, 0xffffffff
jne 0x1001bf1d
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov edx, ecx
sar edx, 8
mov byte [ebp], dl
add ebp, 1
jmp 0x1001c016
movzx edx, byte [esp + 0x33]
mov dword [esp + 0x20], 0x12
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
mov ebp, edi
test ecx, ecx
je 0x1001c020
add eax, edx
cmp dword [esp + 0x24], 0
jne 0x1001bf77
cmp ecx, 0xffffffff
jne 0x1001bf64
add al, 0x12
mov byte [ebp], al
jmp 0x1001c00f
cmp ecx, 1
jne 0x1001bff9
add al, 0x16
mov byte [ebp], al
jmp 0x1001c00f
cmp dword [esp + 0x24], 1
jne 0x1001bf8d
cmp ecx, 0xffffffff
jne 0x1001bfaa
add al, 0x14
mov byte [ebp], al
jmp 0x1001c00f
add dl, 0x1a
mov byte [ebp], dl
mov edx, dword [esp + 0x24]
mov ebx, edx
add ebp, 1
sar ebx, 8
mov byte [ebp], bl
add ebp, 1
mov byte [ebp], dl
jmp 0x1001bfc9
mov esi, dword [esp + 0x18]
mov dl, byte [esi]
cmp dl, 0x10
jne 0x1001bfc4
cmp ebp, esi
jne 0x1001bfbe
add ebp, 2
jmp 0x1001bfcc
add byte [esi + 1], 1
jmp 0x1001bfcc
cmp dl, 0x11
jne 0x1001bfcc
add ebp, 1
test ecx, ecx
jge 0x1001bfe1
mov cl, byte [esp + 0x14]
mov byte [ebp], cl
add ebp, 1
add al, 0x12
mov byte [ebp], al
jmp 0x1001c00f
mov esi, dword [esp + 0x24]
cmp ecx, esi
je 0x1001c012
mov dl, byte [esp + 0x14]
mov byte [ebp], dl
add ebp, 1
sub ecx, esi
mov dword [esp + 0x28], ecx
add al, 0x18
mov byte [ebp], al
mov eax, ecx
add ebp, 1
sar eax, 8
mov byte [ebp], al
add ebp, 1
mov byte [ebp], cl
add ebp, 1
mov cl, byte [esp + 0x14]
mov byte [ebp], cl
mov ebx, dword [esp + 0x10]
add ebp, 1
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x18]
add ebx, 1
jmp 0x1001b582
mov edx, dword [esp + 0xa0]
add ebx, 1
or esi, 0xffffffff
mov dword [esp + 0x10], ebx
cmp byte [ebx], 0x3f
jne 0x1001c28f
add ebx, 1
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
movzx ecx, al
add ecx, 0xffffffdf
cmp ecx, 0x31
ja case.0x1001c075.34
movzx ecx, byte [ecx + 0x1001c708]
jmp dword [ecx*4 + 0x1001c6e4]
add ebx, 1
mov dword [esp + 0x10], ebx
cmp byte [ebx], 0x29
je 0x1001ba4b
lea esp, [esp]
add ebx, 1
mov dword [esp + 0x10], ebx
cmp byte [ebx], 0x29
jne 0x1001c090
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
add ebx, 1
jmp 0x1001b582
add ebx, 1
mov eax, 0x46
mov dword [esp + 0x10], ebx
jmp 0x1001c2a4
mov edi, dword [esp + 0x2c]
mov edi, dword [edi + 0xc]
add ebx, 1
mov dword [esp + 0x10], ebx
movzx ecx, byte [ebx]
test byte [ecx + edi], 4
mov eax, 0x42
mov dword [esp + 0x14], eax
je 0x1001c11e
add ebx, 1
lea esi, [ecx - 0x30]
mov dword [esp + 0x10], ebx
mov cl, byte [ebx]
cmp cl, 0x29
je 0x1001c10a
movzx ecx, cl
add ebx, 1
lea esi, [esi + esi*4]
lea esi, [ecx + esi*2 - 0x30]
mov dword [esp + 0x10], ebx
mov cl, byte [ebx]
cmp cl, 0x29
jne 0x1001c0f2
test esi, esi
je 0x1001c5dd
add ebx, 1
mov dword [esp + 0x10], ebx
jmp 0x1001c2a8
sub ebx, 1
mov dword [esp + 0x10], ebx
jmp 0x1001c2a8
add ebx, 1
mov eax, 0x3c
mov dword [esp + 0x10], ebx
jmp 0x1001c2a4
add ebx, 1
mov eax, 0x3d
mov dword [esp + 0x10], ebx
jmp 0x1001c2a4
add ebx, 1
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
cmp al, 0x21
je 0x1001c172
cmp al, 0x3d
jne 0x1001c5ec
add ebx, 1
mov eax, 0x3e
mov dword [esp + 0x10], ebx
jmp 0x1001c2a4
add ebx, 1
mov eax, 0x3f
mov dword [esp + 0x10], ebx
jmp 0x1001c2a4
add ebx, 1
mov eax, 0x41
mov dword [esp + 0x10], ebx
jmp 0x1001c2a4
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
mov byte [ebp], 0x37
mov ebx, dword [esp + 0x10]
add ebx, 1
add ebp, 1
add ebx, 1
jmp 0x1001b582
xor edi, edi
xor edx, edx
cmp al, 0x29
mov dword [esp + 0x38], edi
mov dword [esp + 0x20], edx
lea ecx, [esp + 0x20]
je 0x1001c22b
lea ebx, [ebx]
cmp al, 0x3a
je 0x1001c223
movzx eax, al
add ebx, 1
sub eax, 0x2d
cmp eax, 0x4b
mov dword [esp + 0x10], ebx
ja case.0x1001c1f1.46
movzx edx, byte [eax + 0x1001c75c]
jmp dword [edx*4 + 0x1001c73c]
lea ecx, [esp + 0x38]
jmp 0x1001c21d
or dword [ecx], 1
jmp 0x1001c21d
or dword [ecx], 2
jmp 0x1001c21d
or dword [ecx], 4
jmp 0x1001c21d
or dword [ecx], 8
jmp 0x1001c21d
or dword [ecx], 0x200
jmp 0x1001c21d
or dword [ecx], 0x40
mov al, byte [ebx]
cmp al, 0x29
jne 0x1001c1d0
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0xa0]
or edx, ecx
not edi
and edx, edi
cmp byte [ebx], 0x29
jne case.0x1001c075.58
test ecx, 0x8000000
je 0x1001c26c
mov eax, edx
and eax, 7
and ecx, 7
cmp ecx, eax
je 0x1001c26c
mov ecx, dword [esp + 0x74]
mov byte [ebp], 0xc
add ebp, 1
mov dword [ecx], eax
mov byte [ebp], al
mov ebx, dword [esp + 0x10]
add ebp, 1
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x18]
mov dword [esp + 0xa0], edx
add ebx, 1
jmp 0x1001b582
mov eax, dword [esp + 0x34]
add dword [eax], 1
mov eax, dword [eax]
cmp eax, 0x63
jg 0x1001c60a
add eax, 0x46
mov dword [esp + 0x14], eax
xor ecx, ecx
cmp eax, 0x41
setl cl
mov byte [ebp], al
mov dword [esp + 0x60], ebp
sub ecx, 1
and ecx, ebp
cmp eax, 0x3e
mov dword [esp + 0x18], ecx
je 0x1001c2ce
cmp eax, 0x3f
je 0x1001c2ce
xor ecx, ecx
jmp 0x1001c2d3
mov ecx, 1
mov eax, edx
mov edx, dword [esp + 0xa0]
and eax, 7
and edx, 7
cmp edx, eax
jne 0x1001c2e9
or eax, 0xffffffff
mov edx, dword [esp + 0x2c]
push edx
lea edx, [esp + 0x58]
push edx
lea edx, [esp + 0x74]
push edx
push esi
mov esi, dword [esp + 0x2c]
push ecx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x7c]
push edx
mov edx, dword [esp + 0xc0]
push ecx
push eax
or edx, 0x8000000
push edx
call fcn.1001c7b0
add esp, 0x2c
test eax, eax
je 0x1001c356
mov eax, dword [esp + 0x14]
cmp eax, 0x42
jne 0x1001c37b
xor edx, edx
xor ecx, ecx
mov ch, byte [ebp + 1]
add edx, 1
mov cl, byte [ebp + 2]
add ebp, ecx
cmp byte [ebp], 0x39
jne 0x1001c334
cmp edx, 2
mov dword [esp + 0x64], edx
jle 0x1001c37f
mov dword [esi], str.conditional_group_contains_more_than_two_branches
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x5c]
mov dword [edx], ebx
xor eax, eax
mov ecx, dword [esp + 0x98]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100346f8
add esp, 0x8c
ret
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
test ecx, ecx
jle 0x1001c3bb
cmp eax, 0x46
jge 0x1001c3a0
cmp eax, 0x41
je 0x1001c3a0
cmp eax, 0x3c
je 0x1001c3a0
cmp eax, 0x42
jne 0x1001c3bb
cmp edx, 2
jne 0x1001c3bb
cmp eax, 0x3c
mov edx, dword [esp + 0x44]
mov edi, dword [edx]
mov dword [esp + 0x48], edi
mov dword [edx], ecx
je 0x1001c3bb
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x40]
add dword [eax], edx
mov ebx, dword [esp + 0x10]
cmp byte [ebx], 0x29
mov ebp, dword [esp + 0x60]
je 0x1001ba4b
mov dword [esi], str.missing__
jmp 0x1001c35a
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
push esi
push 0
push eax
push edx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x64], ebx
call fcn.1001af40
add esp, 0x14
test eax, eax
jge 0x1001c43c
mov ecx, eax
neg ecx
cmp ecx, 0xc
jl 0x1001c41f
mov byte [ebp], 0x36
mov dword [esp + 0x18], ebp
add ebp, 1
mov cl, 0xf4
sub cl, al
mov byte [ebp], cl
jmp 0x1001ba44
cmp ecx, 3
jle 0x1001c42d
cmp ecx, 0xa
mov dword [esp + 0x18], ebp
jl 0x1001c435
mov dword [esp + 0x18], 0
neg al
jmp 0x1001ba41
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 0x5c
mov ecx, dword [esp + 0x14]
mov byte [ebp], 0x10
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], ebp
add ebp, 2
xor ebx, ebx
lea ecx, [ecx]
cmp dword [esp + 0x4c], 0
je 0x1001c48a
mov edx, dword [esi + 0xc]
test byte [ecx + edx], 1
jne 0x1001c4d1
cmp ecx, 0x23
jne 0x1001c48a
add eax, 1
mov dword [esp + 0x10], eax
movzx ecx, byte [eax]
test ecx, ecx
je 0x1001c4fa
cmp ecx, 0xa
jne 0x1001c475
jmp 0x1001c4d1
cmp ecx, 0x5c
jne 0x1001c4c0
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
mov edi, eax
mov eax, dword [esp + 0xa0]
push esi
push 0
push eax
push edx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x64], edi
call fcn.1001af40
add esp, 0x14
test eax, eax
mov dword [esp + 0x14], eax
jl 0x1001c4f6
mov cl, byte [esp + 0x14]
mov byte [ebp], cl
mov eax, dword [esp + 0x10]
add ebp, 1
add ebx, 1
cmp ebx, 0xff
jge 0x1001c4fa
mov edx, dword [esi + 0xc]
add eax, 1
mov dword [esp + 0x10], eax
movzx ecx, byte [eax]
test byte [ecx + edx], 0x80
mov dword [esp + 0x14], ecx
je 0x1001c460
jmp 0x1001c4fa
mov dword [esp + 0x10], edi
cmp ebx, 1
jle 0x1001c509
movzx eax, byte [ebp - 2]
mov dword [esp + 0x48], eax
jmp 0x1001c513
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
mov dword [esp + 0x48], edx
movzx eax, byte [ebp - 1]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
mov dword [ecx], eax
mov eax, dword [esp + 0x40]
add dword [eax], ebx
cmp ebx, 0xff
mov byte [edx + 1], bl
jge 0x1001ba47
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
sub ebx, 1
add ebx, 1
mov edi, edx
jmp 0x1001b582
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x5c]
mov dword [eax], ebp
mov dword [ecx], ebx
mov eax, 1
jmp 0x1001c362
mov edx, dword [esp + 0x1c]
mov dword [edx], str.missing_terminating___for_character_class
jmp 0x1001c35a
mov eax, dword [esp + 0x1c]
mov dword [eax], str.POSIX_collating_elements_are_not_supported
jmp 0x1001c35a
mov ecx, dword [esp + 0x1c]
mov dword [ecx], str.unknown_POSIX_class_name
jmp 0x1001c356
mov edx, dword [esp + 0x1c]
mov dword [edx], str.invalid_escape_sequence_in_character_class
jmp 0x1001c356
mov eax, dword [esp + 0x1c]
mov dword [eax], str.missing_terminating___for_character_class
jmp 0x1001c35a
mov ecx, dword [esp + 0x1c]
mov dword [ecx], str.range_out_of_order_in_character_class
jmp 0x1001c35a
mov edx, dword [esp + 0x1c]
mov dword [edx], str.nothing_to_repeat
jmp 0x1001c35a
mov eax, dword [esp + 0x1c]
mov dword [eax], str.internal_error:_unexpected_repeat
jmp 0x1001c35a
mov ecx, dword [esp + 0x1c]
mov dword [ecx], str.invalid_condition____0_
jmp 0x1001c35a
mov edx, dword [esp + 0x1c]
mov dword [edx], str.unrecognized_character_after____
jmp 0x1001c35a
mov eax, dword [esp + 0x1c]
mov dword [eax], str.unrecognized_character_after___
jmp 0x1001c35a
mov ecx, dword [esp + 0x1c]
mov dword [ecx], str.too_many_capturing_parenthesized_sub_patterns
jmp 0x1001c35a