Function at 0x1001908a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov edx, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
lea ecx, [edx + 0xa4]
push edi
mov edi, ecx
lea eax, [edi + 0x7d6]
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], 1
cmp esi, eax
je 0x10019577
cmp dword [ebp + 0x10], eax
je 0x10019577
mov dword [edx + 0x8a4], eax
mov dword [ebp - 0xc], eax
jle 0x10019568
cmp edi, dword [ebp - 0x2c]
ja 0x10019515
mov bl, byte [esi]
mov dword [ebp - 0x18], edi
cmp bl, 0x24
je 0x100194cd
cmp bl, 0x29
jle 0x10019444
cmp bl, 0x2b
jle 0x100193d0
cmp bl, 0x2e
je 0x100193c8
cmp bl, 0x5b
je 0x1001922e
cmp bl, 0x5c
je 0x10019136
cmp bl, 0x5e
jne 0x10019444
cmp esi, dword [ebp + 0xc]
jne 0x100194d8
mov byte [edi], 4
jmp 0x100194e0
inc dword [ebp - 0xc]
inc esi
mov al, byte [esi]
cmp al, 0x31
jl 0x1001918d
cmp al, 0x39
jle 0x10019165
cmp al, 0x3c
je 0x1001915d
cmp al, 0x3e
jne 0x1001918d
cmp byte [ecx], 8
je 0x10019522
mov byte [edi], 9
jmp 0x100194e0
mov byte [edi], 8
jmp 0x100194e0
mov ecx, dword [ebp - 0x10]
movsx eax, al
sub eax, 0x30
test ecx, ecx
jle 0x1001917c
cmp dword [edx + ecx*4 + 0x7c], eax
je 0x10019529
cmp dword [ebp - 0x20], eax
jle 0x10019530
mov byte [edi], 0xa
jmp 0x100194dd
cmp byte [ebp + 0x18], 0
jne 0x100191ea
cmp al, 0x28
jne 0x100191bd
mov eax, dword [ebp - 0x20]
cmp eax, 0xa
jge 0x10019537
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov dword [edx + ecx*4 + 0x7c], eax
mov byte [edi], 6
inc edi
mov byte [edi], al
inc edi
inc eax
mov dword [ebp - 0x20], eax
jmp 0x100194e1
cmp al, 0x29
jne 0x100191ea
cmp byte [ecx], 6
je 0x1001953e
cmp dword [ebp - 0x10], 0
jle 0x10019545
mov eax, dword [ebp - 0x10]
mov byte [edi], 7
mov al, byte [edx + eax*4 + 0x7c]
inc edi
mov byte [edi], al
inc edi
dec dword [ebp - 0x10]
jmp 0x100194e1
push edx
lea edi, [ebp - 0x30]
call fcn.10018efa
mov ecx, dword [ebp - 0x30]
add dword [ebp - 0xc], ecx
add esi, ecx
mov ecx, dword [ebp - 8]
test eax, eax
jl 0x10019211
mov byte [ecx], 1
inc ecx
mov byte [ecx], al
inc ecx
mov edx, dword [ebp + 8]
jmp 0x1001943a
mov eax, dword [ebp + 8]
mov byte [ecx], 3
push 0x20
inc ecx
add eax, 0x8a8
pop edi
mov dl, byte [eax]
mov byte [ecx], dl
inc ecx
mov byte [eax], 0
inc eax
dec edi
jne 0x10019220
jmp 0x10019209
and dword [ebp - 0x14], 0
mov byte [edi], 3
inc edi
inc dword [ebp - 0xc]
inc esi
cmp byte [esi], 0x5e
mov dword [ebp - 8], edi
jne 0x1001924c
inc dword [ebp - 0xc]
mov byte [ebp - 1], 0xff
inc esi
jmp 0x10019250
mov byte [ebp - 1], 0
cmp byte [esi], 0x2d
jne 0x10019267
inc dword [ebp - 0xc]
mov al, 0x2d
mov dword [ebp - 0x14], 0x2d
call fcn.10018dfc
inc esi
cmp byte [esi], 0x5d
jne 0x1001927e
inc dword [ebp - 0xc]
mov al, 0x5d
mov dword [ebp - 0x14], 0x5d
call fcn.10018dfc
inc esi
mov al, byte [esi]
test al, al
je 0x1001954c
cmp al, 0x5d
je 0x100193a2
cmp al, 0x2d
jne 0x10019340
mov ebx, dword [ebp - 0x14]
test ebx, ebx
jl 0x10019330
lea eax, [esi + 1]
mov cl, byte [eax]
test cl, cl
je 0x1001954c
cmp cl, 0x5d
je 0x10019330
mov esi, eax
movsx eax, byte [esi]
inc ebx
inc dword [ebp - 0xc]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], eax
cmp eax, 0x5c
jne 0x1001930a
inc esi
cmp byte [esi], 0
je 0x1001954c
push edx
lea edi, [ebp - 0x34]
call fcn.10018efa
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov ebx, eax
mov eax, dword [ebp - 0x34]
lea ecx, [ecx + eax + 1]
add esi, eax
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0xc], ecx
test ebx, ebx
jl 0x10019303
mov al, bl
call fcn.10018dfc
mov dword [ebp - 0x14], ebx
jmp 0x10019307
or dword [ebp - 0x14], 0xffffffff
mov edi, dword [ebp - 8]
cmp dword [ebp - 0x14], 0
jl 0x10019330
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x1c], eax
jg 0x10019394
push dword [ebp + 0x14]
mov bl, byte [ebp - 0x1c]
call fcn.10018e17
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x24]
jle 0x10019318
jmp 0x10019394
mov al, 0x2d
mov dword [ebp - 0x14], 0x2d
call fcn.10018dfc
jmp 0x10019394
cmp al, 0x5c
jne 0x10019384
lea ecx, [esi + 1]
cmp byte [ecx], 0
je 0x10019384
mov esi, ecx
push edx
lea edi, [ebp - 0x38]
call fcn.10018efa
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov ebx, eax
mov eax, dword [ebp - 0x38]
lea ecx, [ecx + eax + 1]
add esi, eax
mov dword [ebp - 0xc], ecx
test ebx, ebx
jl 0x1001937b
mov al, bl
call fcn.10018dfc
mov dword [ebp - 0x14], ebx
jmp 0x1001937f
or dword [ebp - 0x14], 0xffffffff
mov edi, dword [ebp - 8]
jmp 0x10019394
push dword [ebp + 0x14]
movsx ecx, al
mov bl, al
mov dword [ebp - 0x14], ecx
call fcn.10018e17
inc dword [ebp - 0xc]
inc esi
mov al, byte [esi]
test al, al
jne 0x10019288
cmp byte [esi], 0
je 0x1001954c
push 0x20
lea eax, [edx + 0x8a8]
pop ecx
mov bl, byte [eax]
xor bl, byte [ebp - 1]
mov byte [edi], bl
inc edi
mov byte [eax], 0
inc eax
dec ecx
jne 0x100193b4
jmp 0x100194e1
mov byte [edi], 2
jmp 0x100194e0
cmp esi, dword [ebp + 0xc]
je 0x10019553
mov al, byte [ecx]
mov dword [ebp - 0x18], ecx
cmp al, 0xb
je 0x100194e4
cmp al, 4
je 0x1001955a
cmp al, 5
jle 0x100193fa
cmp al, 0xa
jle 0x1001955a
cmp bl, 0x2b
jne 0x10019416
mov eax, edi
cmp dword [ebp - 0x18], edi
jae 0x10019416
mov ecx, dword [ebp - 0x18]
mov cl, byte [ecx]
mov byte [edi], cl
inc edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], eax
jb 0x10019406
mov byte [edi], 0
inc edi
mov byte [edi], 0
inc edi
mov ecx, edi
dec edi
cmp edi, dword [ebp - 0x18]
jbe 0x10019437
lea eax, [edi - 1]
mov bl, byte [eax]
mov byte [edi], bl
mov dword [ebp - 8], eax
mov edi, eax
cmp eax, dword [ebp - 0x18]
ja 0x10019426
mov byte [edi], 0xb
mov dword [ebp - 8], ecx
mov edi, ecx
jmp 0x100194e4
cmp byte [ebp + 0x18], 0
je 0x10019487
cmp bl, 0x28
jne 0x10019465
mov eax, dword [ebp - 0x20]
cmp eax, 0xa
jl 0x100191a3
mov eax, str.Too_many____pairs
jmp 0x1001951a
cmp bl, 0x29
jne 0x10019487
cmp byte [ecx], 6
je 0x10019561
cmp dword [ebp - 0x10], 0
jg 0x100191d4
mov eax, 0x10059e34
jmp 0x1001951a
test bl, bl
jne 0x1001948e
add bl, 0x5c
cmp byte [ebp + 0x14], 0
jne 0x100194c5
mov ecx, dword [edx + 0x8cc]
movzx eax, bl
cmp byte [eax + ecx], 2
jne 0x100194c5
mov byte [edi], 3
push 0
inc edi
call fcn.10018e17
push 0x20
lea eax, [edx + 0x8a8]
pop ecx
mov bl, byte [eax]
mov byte [edi], bl
inc edi
mov byte [eax], 0
inc eax
dec ecx
jne 0x100194b7
jmp 0x100194e1
mov byte [edi], 1
inc edi
mov byte [edi], bl
jmp 0x100194e0
cmp byte [esi + 1], 0
jne 0x100194d8
mov byte [edi], 5
jmp 0x100194e0
mov byte [edi], 1
mov al, byte [esi]
inc edi
mov byte [edi], al
inc edi
mov dword [ebp - 8], edi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
inc esi
cmp eax, dword [ebp + 0x10]
jl 0x100190dc
cmp dword [ebp - 0x10], 0
jle 0x10019568
cmp byte [ebp + 0x18], 0
mov eax, dword [ebp - 0x28]
mov byte [eax], 0
mov eax, 0x10059e40
jne 0x1001958d
mov eax, str.Unmatched__
jmp 0x1001958d
mov eax, str.Pattern_too_long
mov ecx, dword [ebp - 0x28]
mov byte [ecx], 0
jmp 0x1001958d
mov eax, 0x10059d80
jmp 0x1001951a
mov eax, str.Cyclical_reference
jmp 0x1001951a
mov eax, str.Undetermined_reference
jmp 0x1001951a
mov eax, 0x10059dc8
jmp 0x1001951a
mov eax, 0x10059ddc
jmp 0x1001951a
mov eax, 0x10059df8
jmp 0x1001951a
mov eax, str.Missing__
jmp 0x1001951a
mov eax, str.Empty_closure
jmp 0x1001951a
mov eax, str.Illegal_closure
jmp 0x1001951a
mov eax, str.Null_pattern_inside___
jmp 0x1001951a
mov byte [edi], 0
mov dword [edx + 0x8a4], 1
jmp 0x1001957f
cmp dword [edx + 0x8a4], eax
je 0x10019583
xor eax, eax
jmp 0x1001958d
mov eax, ecx
mov byte [eax], 0
mov eax, str.No_previous_regular_expression
pop edi
pop esi
pop ebx
leave
ret 0x14