Function at 0x100117bd
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x100368d3
call fcn.10035531
mov esi, ecx
mov al, byte [esi + 0x20]
push 0x35
pop ebx
test al, al
je 0x10011997
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x100117e4
dec eax
mov dword [esi + 0x24], eax
mov edi, dword [esi + 0x24]
test edi, edi
js 0x10011989
mov eax, edi
mov dword [ebp - 0x14], 0xf
cdq
mov ecx, 0xe10
idiv ecx
push 0x3c
mov eax, edx
cdq
pop ecx
idiv ecx
push 0x3c
mov ecx, eax
mov eax, edi
cdq
pop edi
idiv edi
xor eax, eax
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x28], al
push 0xa
pop edi
mov dword [ebp - 4], eax
push edx
push ecx
cmp ecx, edi
jae 0x1001188c
cmp edx, edi
mov edx, eax
jae 0x10011863
mov cl, 0x10
mov word [ebp - 0x34], 0x2010
mov byte [ebp - 0x32], bl
mov word [ebp - 0x31], 0x2a74
mov byte [ebp - 0x2f], 0x20
mov byte [ebp - 0x2e], bl
mov word [ebp - 0x2d], 0x74
xor cl, byte [ebp + edx - 0x33]
mov byte [ebp + edx - 0x33], cl
inc edx
cmp edx, 7
jae 0x1001185d
mov cl, byte [ebp - 0x34]
jmp 0x1001184a
mov byte [ebp - 0x2c], 0
jmp 0x100118d6
mov cl, 0x37
mov dword [ebp - 0x34], 0x53120737
mov dword [ebp - 0x30], 0x53120d
xor cl, byte [ebp + edx - 0x33]
mov byte [ebp + edx - 0x33], cl
inc edx
cmp edx, 6
jae 0x10011886
mov cl, byte [ebp - 0x34]
jmp 0x10011873
mov byte [ebp - 0x2d], 0
jmp 0x100118d6
mov ecx, eax
cmp edx, edi
jae 0x100118b1
mov dl, 0x34
mov dword [ebp - 0x34], 0xe501134
mov dword [ebp - 0x30], 0x501104
xor byte [ebp + ecx - 0x33], dl
inc ecx
cmp ecx, 6
jae 0x10011886
mov dl, byte [ebp - 0x34]
jmp 0x100118a2
mov dl, 0x1b
mov dword [ebp - 0x34], 0x217f3e1b
mov word [ebp - 0x30], 0x7f3e
mov byte [ebp - 0x2e], al
xor byte [ebp + ecx - 0x33], dl
inc ecx
cmp ecx, 5
jae 0x100118d2
mov dl, byte [ebp - 0x34]
jmp 0x100118c3
mov byte [ebp - 0x2e], 0
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x50]
push eax
call fcn.10004ac0
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.100056a7
push 0
push 1
lea ecx, [ebp - 0x50]
call fcn.100026f1
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1003f910]
cmovae eax, dword [ebp - 0x28]
xor ecx, ecx
push eax
push 0xa
pop eax
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x5c22
mov byte [ebp - 0x3e], al
mov word [ebp - 0x3d], 0x24
mov al, byte [ebp + ecx - 0x4f]
xor al, byte [ebp - 0x50]
mov byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x13
jb 0x10011930
sub esp, 0x18
mov byte [ebp - 0x3c], 0
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x68]
push eax
call fcn.10004ac0
add esp, 0x20
mov byte [ebp - 4], 1
mov edx, eax
mov ecx, dword [esi + 8]
call fcn.10009ed2
push 0
push 1
lea ecx, [ebp - 0x68]
call fcn.100026f1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
push 0
push 1
call fcn.100026f1
cmp dword [esi + 0x24], 0
jg 0x10011997
and dword [esi + 0x24], 0
mov byte [esi + 0x20], 0
mov al, byte [esi + 0x21]
test al, al
je 0x10011b6a
movzx eax, word [esi + 0x28]
test ax, ax
jle 0x100119b0
dec eax
mov word [esi + 0x28], ax
movzx edi, word [esi + 0x28]
mov eax, edi
test ax, ax
js 0x10011b59
cwde
mov ecx, 0xe10
cdq
idiv ecx
push 0x3c
mov eax, edx
mov dword [ebp - 0x14], 0xf
cdq
pop ecx
idiv ecx
push 0x3c
movzx ecx, ax
mov eax, edi
cwde
cdq
pop edi
idiv edi
movzx eax, dx
xor edx, edx
mov dword [ebp - 0x18], edx
mov byte [ebp - 0x28], dl
push 0xa
pop edi
mov dword [ebp - 4], 2
push eax
push ecx
cmp cx, di
jae 0x10011a69
cmp ax, di
jae 0x10011a3e
push 0x3c
pop eax
xor ebx, ebx
mov word [ebp - 0x34], 0x6858
mov dl, 0x58
mov byte [ebp - 0x32], 0x7d
mov byte [ebp - 0x31], al
mov ecx, ebx
mov word [ebp - 0x30], 0x6862
mov byte [ebp - 0x2e], 0x7d
mov byte [ebp - 0x2d], al
mov byte [ebp - 0x2c], bl
xor byte [ebp + ecx - 0x33], dl
inc ecx
cmp ecx, 7
jae 0x10011a39
mov dl, byte [ebp - 0x34]
jmp 0x10011a2a
mov byte [ebp - 0x2c], bl
jmp 0x10011ab5
mov byte [ebp - 0x34], bl
mov ecx, edx
mov dword [ebp - 0x33], 0xf511005
mov word [ebp - 0x2f], 0x5110
mov byte [ebp - 0x2d], dl
xor byte [ebp + ecx - 0x33], bl
inc ecx
cmp ecx, 6
jae 0x10011a62
mov bl, byte [ebp - 0x34]
jmp 0x10011a53
xor ebx, ebx
mov byte [ebp - 0x2d], bl
jmp 0x10011ab5
xor ebx, ebx
mov ecx, ebx
cmp ax, di
jae 0x10011a91
mov dl, 0x75
mov dword [ebp - 0x34], 0x4f115075
mov dword [ebp - 0x30], 0x115045
xor byte [ebp + ecx - 0x33], dl
inc ecx
cmp ecx, 6
jae 0x10011a64
mov dl, byte [ebp - 0x34]
jmp 0x10011a82
mov dl, 8
mov dword [ebp - 0x34], 0x326c2d08
mov word [ebp - 0x30], 0x6c2d
mov byte [ebp - 0x2e], bl
xor byte [ebp + ecx - 0x33], dl
inc ecx
cmp ecx, 5
jae 0x10011ab2
mov dl, byte [ebp - 0x34]
jmp 0x10011aa3
mov byte [ebp - 0x2e], bl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x68]
push eax
call fcn.10004ac0
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.100056a7
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.100026f1
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1003f7d0]
mov edx, ebx
cmovae eax, dword [ebp - 0x28]
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x3552b50
mov word [ebp - 0x3c], 0x2d
mov cl, byte [ebp - 0x50]
xor byte [ebp + edx - 0x4f], cl
inc edx
cmp edx, 0x14
jb 0x10011b09
sub esp, 0x18
mov byte [ebp - 0x3b], bl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x68]
push eax
call fcn.10004ac0
add esp, 0x20
mov byte [ebp - 4], 3
mov edx, eax
mov ecx, dword [esi + 0xc]
call fcn.10009ed2
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.100026f1
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.100026f1
jmp 0x10011b5b
xor ebx, ebx
cmp word [esi + 0x28], bx
jg 0x10011b6a
xor eax, eax
mov byte [esi + 0x21], bl
mov word [esi + 0x28], ax
call fcn.100354db
ret