Function at 0x100acf18
Capabilities:
Encode data using xor

Disassembly:
push 0xf4
mov eax, 0x101aa63c
call fcn.1017516e
mov edi, ecx
call fcn.100ab494
test eax, eax
je 0x100acf39
xor eax, eax
jmp 0x100ad6c5
xor ebx, ebx
cmp dword [edi + 0x44], ebx
jne 0x100acf32
mov ecx, edi
call fcn.100acef4
test eax, eax
js 0x100ad6c5
mov eax, ebx
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xec], ebx
mov byte [ebp - 4], 1
and dword [ebp - 0xd8], ebx
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd4], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.10068f43
mov esi, eax
test esi, esi
js 0x100ad68c
push 0x10007800
push dword [ebp - 0xf4]
lea ecx, [ebp - 0xe8]
call fcn.10006e50
mov eax, dword [ebp - 0xe4]
xor esi, esi
mov dword [ebp - 0xe0], eax
test esi, esi
js 0x100ad68c
lea ecx, [ebp - 0xf0]
call fcn.1002aea6
mov esi, eax
test esi, esi
js 0x100ad6e5
mov esi, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0xe8]
push ebx
push esi
mov eax, dword [esi]
call dword [eax + 0x40]
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xf8], ebx
push eax
lea edx, [ebp - 0xfc]
mov dword [ebp - 0xfc], esi
lea ecx, [ebp - 0x100]
call fcn.100630e9
mov esi, eax
pop ecx
test esi, esi
jns 0x100ad028
mov ecx, dword [ebp - 0xdc]
jmp 0x100ad046
push 0x10007800
push dword [ebp - 0x100]
lea ecx, [ebp - 0xd8]
call fcn.10006fb0
mov ecx, dword [ebp - 0xd4]
xor esi, esi
test esi, esi
js 0x100ad6eb
mov dword [ebp - 0x28], 0x66bd
mov eax, dword [ebp - 0x28]
push 0x6e
pop ecx
xor eax, ecx
mov word [ebp - 0x24], ax
mov eax, dword [ebp - 0x28]
inc eax
xor eax, 0x74
mov word [ebp - 0x22], ax
mov eax, dword [ebp - 0x28]
add eax, 2
xor eax, 0x64
mov word [ebp - 0x20], ax
mov eax, dword [ebp - 0x28]
add eax, 3
push 0x6c
pop ebx
xor eax, ebx
mov word [ebp - 0x1e], ax
mov eax, dword [ebp - 0x28]
add eax, 4
xor eax, ebx
mov word [ebp - 0x1c], ax
mov eax, dword [ebp - 0x28]
add eax, 5
xor eax, 0x2e
mov word [ebp - 0x1a], ax
mov eax, dword [ebp - 0x28]
add eax, 6
xor eax, 0x64
mov word [ebp - 0x18], ax
mov eax, dword [ebp - 0x28]
add eax, 7
xor eax, ebx
mov word [ebp - 0x16], ax
mov eax, dword [ebp - 0x28]
add eax, 8
xor eax, ebx
mov word [ebp - 0x14], ax
xor eax, eax
mov word [ebp - 0x12], ax
xor edx, edx
mov ax, word [ebp - 0x24]
mov ax, word [ebp + edx*2 - 0x24]
mov ecx, dword [ebp - 0x28]
add ecx, edx
movzx eax, ax
xor ecx, eax
mov word [ebp + edx*2 - 0x24], cx
inc edx
cmp edx, 9
jb 0x100ad0d2
xor eax, eax
lea edx, [ebp - 0x24]
mov word [ebp - 0x12], ax
mov eax, dword [ebp - 0xd8]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov esi, eax
test esi, esi
js 0x100ad6cb
mov dword [ebp - 0x44], 0x530
mov eax, dword [ebp - 0x44]
push 0x75
pop ecx
xor eax, ecx
mov word [ebp - 0x40], ax
mov eax, dword [ebp - 0x44]
inc eax
push 0x73
pop ecx
xor eax, ecx
mov word [ebp - 0x3e], ax
mov eax, dword [ebp - 0x44]
add eax, 2
xor eax, 0x65
mov word [ebp - 0x3c], ax
mov eax, dword [ebp - 0x44]
add eax, 3
xor eax, 0x72
mov word [ebp - 0x3a], ax
mov eax, dword [ebp - 0x44]
add eax, 4
xor eax, 0x33
mov word [ebp - 0x38], ax
mov eax, dword [ebp - 0x44]
add eax, 5
xor eax, 0x32
mov word [ebp - 0x36], ax
mov eax, dword [ebp - 0x44]
add eax, 6
xor eax, 0x2e
mov word [ebp - 0x34], ax
mov eax, dword [ebp - 0x44]
add eax, 7
xor eax, 0x64
mov word [ebp - 0x32], ax
mov eax, dword [ebp - 0x44]
add eax, 8
xor eax, ebx
mov word [ebp - 0x30], ax
mov eax, dword [ebp - 0x44]
add eax, 9
xor eax, ebx
mov word [ebp - 0x2e], ax
xor eax, eax
mov word [ebp - 0x2c], ax
xor edx, edx
mov ax, word [ebp - 0x40]
mov ax, word [ebp + edx*2 - 0x40]
mov ecx, dword [ebp - 0x44]
add ecx, edx
movzx eax, ax
xor ecx, eax
mov word [ebp + edx*2 - 0x40], cx
inc edx
cmp edx, 0xa
jb 0x100ad19e
xor eax, eax
lea edx, [ebp - 0x40]
mov word [ebp - 0x2c], ax
mov eax, dword [ebp - 0xd8]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov esi, eax
test esi, esi
js 0x100ad6cb
mov dword [ebp - 0xd0], 0x1705
mov ecx, 0x1737
mov eax, 0x1772
mov word [ebp - 0xcc], ax
add eax, 4
mov word [ebp - 0xca], ax
mov word [ebp - 0xc8], cx
lea eax, [ecx + 0x23]
mov word [ebp - 0xc6], ax
add eax, 0xffffffdc
mov word [ebp - 0xc4], ax
lea eax, [ecx - 0xc]
mov word [ebp - 0xc2], cx
mov word [ebp - 0xc0], ax
add eax, 0x36
mov word [ebp - 0xbe], ax
lea eax, [ecx + 0x32]
mov word [ebp - 0xbc], ax
mov word [ebp - 0xba], ax
xor eax, eax
mov word [ebp - 0xb8], ax
xor edx, edx
mov ax, word [ebp - 0xcc]
mov ax, word [ebp + edx*2 - 0xcc]
movzx ecx, ax
movzx eax, word [ebp - 0xd0]
xor ecx, eax
mov word [ebp + edx*2 - 0xcc], cx
inc edx
cmp edx, 0xa
jb 0x100ad256
xor eax, eax
lea edx, [ebp - 0xcc]
mov word [ebp - 0xb8], ax
mov eax, dword [ebp - 0xd8]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov esi, eax
test esi, esi
js 0x100ad6cb
push 0x75
pop ecx
mov word [ebp - 0xb4], cx
push 0x6f
pop ecx
push 0x7c
pop eax
mov word [ebp - 0xb2], cx
mov word [ebp - 0xb0], ax
push 0x78
pop eax
mov word [ebp - 0xae], ax
mov word [ebp - 0xac], cx
push 0x76
pop ecx
push 0x3d
mov word [ebp - 0xaa], cx
pop eax
mov word [ebp - 0xa8], ax
push 0x3c
pop eax
mov word [ebp - 0xa6], ax
push 0x38
pop eax
mov word [ebp - 0xa4], ax
push 0x6e
pop eax
mov word [ebp - 0xa2], ax
xor eax, eax
mov word [ebp - 0xa0], cx
mov word [ebp - 0x9e], cx
xor ecx, ecx
mov word [ebp - 0x9c], ax
mov ax, word [ebp - 0xb4]
mov ax, word [ebp + ecx*2 - 0xb4]
movzx eax, ax
add eax, 0xfffffff6
mov word [ebp + ecx*2 - 0xb4], ax
inc ecx
cmp ecx, 0xc
jb 0x100ad31f
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0xb4]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov esi, eax
test esi, esi
js 0x100ad6cb
mov dword [ebp - 0x84], 0x33d9
mov eax, dword [ebp - 0x84]
xor eax, 0x6b
mov word [ebp - 0x80], ax
mov eax, dword [ebp - 0x84]
inc eax
xor eax, 0x65
mov word [ebp - 0x7e], ax
mov eax, dword [ebp - 0x84]
add eax, 2
xor eax, 0x72
mov word [ebp - 0x7c], ax
mov eax, dword [ebp - 0x84]
add eax, 3
xor eax, 0x6e
mov word [ebp - 0x7a], ax
mov eax, dword [ebp - 0x84]
add eax, 4
xor eax, 0x65
mov word [ebp - 0x78], ax
mov eax, dword [ebp - 0x84]
add eax, 5
xor eax, ebx
mov word [ebp - 0x76], ax
mov eax, dword [ebp - 0x84]
add eax, 6
xor eax, 0x62
mov word [ebp - 0x74], ax
mov eax, dword [ebp - 0x84]
add eax, 7
xor eax, 0x61
mov word [ebp - 0x72], ax
mov eax, dword [ebp - 0x84]
add eax, 8
xor eax, 0x73
mov word [ebp - 0x70], ax
mov eax, dword [ebp - 0x84]
add eax, 9
xor eax, 0x65
mov word [ebp - 0x6e], ax
mov eax, dword [ebp - 0x84]
add eax, 0xa
xor eax, 0x2e
mov word [ebp - 0x6c], ax
mov eax, dword [ebp - 0x84]
add eax, 0xb
xor eax, 0x64
mov word [ebp - 0x6a], ax
mov eax, dword [ebp - 0x84]
add eax, 0xc
xor eax, ebx
mov word [ebp - 0x68], ax
mov eax, dword [ebp - 0x84]
add eax, 0xd
xor eax, ebx
mov word [ebp - 0x66], ax
xor eax, eax
mov word [ebp - 0x64], ax
xor edx, edx
mov ax, word [ebp - 0x80]
mov ax, word [ebp + edx*2 - 0x80]
mov ecx, dword [ebp - 0x84]
add ecx, edx
movzx eax, ax
xor ecx, eax
mov word [ebp + edx*2 - 0x80], cx
inc edx
cmp edx, 0xe
jb 0x100ad446
xor eax, eax
lea edx, [ebp - 0x80]
mov word [ebp - 0x64], ax
mov eax, dword [ebp - 0xd8]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov esi, eax
test esi, esi
js 0x100ad6cb
push 0x73
pop eax
mov word [ebp - 0x98], ax
push 0x70
pop ecx
push 0x75
pop eax
mov word [ebp - 0x96], cx
mov word [ebp - 0x94], ax
push 0x3f
pop eax
mov word [ebp - 0x92], ax
push 0x3e
pop eax
mov word [ebp - 0x90], ax
push 0x3a
pop eax
mov word [ebp - 0x8e], ax
mov word [ebp - 0x8c], cx
push 0x78
pop eax
mov word [ebp - 0x8a], ax
mov word [ebp - 0x88], ax
xor eax, eax
mov word [ebp - 0x86], ax
xor ecx, ecx
mov ax, word [ebp - 0x98]
mov ax, word [ebp + ecx*2 - 0x98]
movzx eax, ax
add eax, 0xfffffff4
mov word [ebp + ecx*2 - 0x98], ax
inc ecx
cmp ecx, 9
jb 0x100ad4e9
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0x98]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov esi, eax
test esi, esi
js 0x100ad6cb
mov dword [ebp - 0x60], 0x2c2c
mov eax, dword [ebp - 0x60]
xor eax, 0x77
mov word [ebp - 0x5c], ax
mov eax, dword [ebp - 0x60]
inc eax
xor eax, 0x69
mov word [ebp - 0x5a], ax
mov eax, dword [ebp - 0x60]
add eax, 2
xor eax, 0x6e
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0x60]
add eax, 3
xor eax, 0x33
mov word [ebp - 0x56], ax
mov eax, dword [ebp - 0x60]
add eax, 4
xor eax, 0x32
mov word [ebp - 0x54], ax
mov eax, dword [ebp - 0x60]
add eax, 5
push 0x75
pop ecx
xor eax, ecx
mov word [ebp - 0x52], ax
mov eax, dword [ebp - 0x60]
add eax, 6
xor eax, 0x2e
mov word [ebp - 0x50], ax
mov eax, dword [ebp - 0x60]
add eax, 7
xor eax, 0x64
mov word [ebp - 0x4e], ax
mov eax, dword [ebp - 0x60]
add eax, 8
xor eax, ebx
mov word [ebp - 0x4c], ax
mov eax, dword [ebp - 0x60]
add eax, 9
xor eax, ebx
mov word [ebp - 0x4a], ax
xor eax, eax
mov word [ebp - 0x48], ax
xor edx, edx
mov ax, word [ebp - 0x5c]
mov ax, word [ebp + edx*2 - 0x5c]
mov ecx, dword [ebp - 0x60]
add ecx, edx
movzx eax, ax
xor ecx, eax
mov word [ebp + edx*2 - 0x5c], cx
inc edx
cmp edx, 0xa
jb 0x100ad5b2
mov ebx, dword [ebp - 0xd8]
lea ecx, [ebp - 0x5c]
xor eax, eax
mov word [ebp - 0x48], ax
push ecx
mov eax, dword [ebx]
push ebx
call dword [eax + 0x14]
mov esi, eax
test esi, esi
js 0x100ad6cb
mov eax, dword [ebx]
push ebx
call dword [eax + 0x20]
mov esi, eax
test esi, esi
js 0x100ad6cb
mov ecx, dword [edi + 4]
mov eax, dword [ebp - 0xe8]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [edi + 8]
mov dword [ebp - 0xe4], ecx
mov dword [edi + 8], eax
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0xe0], ecx
mov ecx, dword [edi + 0xc]
mov dword [edi + 0xc], eax
mov ebx, dword [edi + 0x10]
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xec], ebx
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xd8]
mov dword [edi + 0x14], ecx
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd4]
mov dword [edi + 0x18], eax
mov dword [ebp - 0xd4], ecx
cmp dword [edi + 0x68], 0
mov dword [ebp - 0xdc], ecx
jne 0x100ad680
mov eax, dword [edi + 4]
mov dword [edi + 0x68], eax
push dword [edi + 0x14]
mov ecx, edi
call fcn.100abd7a
xor esi, esi
mov ecx, dword [ebp - 0xdc]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x100ad69f
call fcn.10001860
mov byte [ebp - 4], 0
test ebx, ebx
je 0x100ad6ae
mov ecx, ebx
call fcn.10001860
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xe0]
test eax, eax
je 0x100ad6c3
mov ecx, eax
call fcn.10001860
mov eax, esi
call fcn.10175118
ret
mov eax, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xe0], eax
jmp 0x100ad692
mov ecx, dword [ebp - 0xdc]
mov ebx, dword [ebp - 0xec]
jmp 0x100ad692