Function at 0x1002af52
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10057ef8
call fcn.10056dd0
sub esp, 0x4c
cmp byte [ebp + 0x28], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, edx
je 0x1002b20a
cmp byte [ebp + 0x1c], 0
je 0x1002af85
mov eax, dword [ebp + 8]
mov dword [eax], 0
jmp 0x1002b235
movdqa xmm0, xmmword [0x10064a90]
lea ecx, [ebp - 0x2c]
mov eax, 0x374c7af5
xor esi, esi
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x48]
mov dword [ebp - 0x18], 0x7153413f
mov dword [ebp + 0x28], 0xda2a0c0e
push dword [ebp + 0x28]
movdqu xmmword [ebp - 0x58], xmm0
push eax
lea eax, [ebp - 0x58]
mov dword [ebp - 0x2c], esi
push eax
push esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], esi
call fcn.1000f24e
mov dword [ebp - 0x14], 0x87b70d8a
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x14], esi
jmp 0x1002aff1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x38], 0xfffffffc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1002afe3
cmp dword [ebp - 0x3c], esi
je 0x1002b072
cmp dword [ebp - 0x3c], 0xb16aac89
mov ecx, dword [ebp - 0x48]
sbb eax, eax
inc eax
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp + 0x28], eax
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp - 0x3c]
imul ecx, eax
mov eax, dword [ebp - 0x3c]
sub ecx, eax
cmp ecx, dword [ebp - 0x3c]
jl 0x1002b038
cmp dword [ebp - 0x3c], esi
je 0x1002b038
xor edi, edi
inc edi
mov edx, edi
jmp 0x1002b03d
xor edi, edi
mov edx, esi
inc edi
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x3c]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x44]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x2c]
setg cl
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
jmp 0x1002b075
xor edi, edi
inc edi
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov eax, dword [ebp - 0x48]
inc ecx
cmp ecx, eax
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
setle dl
imul ecx, edx
sub ecx, eax
jne 0x1002b097
mov ecx, esi
cmp dword [ebp + 0x28], esi
je 0x1002b099
mov ecx, edi
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x44]
add eax, ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x28]
mov ebx, dword [ebp - 0x2c]
cmp dword [ebx + 8], esi
jne 0x1002b10f
cmp dword [ebp - 0x3c], esi
jne 0x1002b0b7
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x2c]
xor ecx, ecx
mov eax, dword [ebp - 0x34]
cmp dword [edx + 0xc], eax
setg cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3c]
add eax, ecx
mov ecx, dword [ebp + 0x28]
imul ecx, eax
test ecx, ecx
jne 0x1002b0ea
mov eax, esi
cmp dword [ebp + 0x28], esi
je 0x1002b0ec
mov eax, edi
mov dword [ebp + 0x28], eax
mov edx, esi
mov eax, dword [ebp + 0x28]
mov eax, dword [ebp - 0x3c]
cmp dword [ebp + 0x28], esi
je 0x1002b0fe
mov edx, edi
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp edx, eax
mov eax, esi
setne cl
cmp ecx, 0xfffffff7
jne 0x1002b111
mov eax, edi
xor edx, edx
cmp eax, 0xcdb5
mov eax, dword [ebp - 0x3c]
setle dl
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
cmp ecx, dword [ebx + 8]
setge al
cmp eax, dword [ebp - 0x3c]
jne 0x1002b13e
cmp dword [ebp - 0x38], esi
jne 0x1002b13e
cmp dword [ebp - 0x18], esi
jne 0x1002b13e
mov edi, esi
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp edi, dword [eax]
mov eax, dword [ebp - 0x3c]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
neg ecx
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x2c]
call fcn.1000be91
mov dword [ebp - 0x20], 0x7f4
cmp dword [ebp - 0x20], 0x8bc
jle 0x1002b1cc
mov edi, esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], 0x40e3
mov ebx, esi
mov esi, dword [ebp - 0x18]
mov dword [ebp + 0x28], ebx
mov edi, ebx
mov ebx, 0x647e
mov eax, esi
mov ecx, 0x10070c18
xor eax, edi
cdq
push edx
push eax
call fcn.1000bb2c
dec edi
dec ebx
jne 0x1002b18d
mov ebx, dword [ebp + 0x28]
inc ebx
mov dword [ebp + 0x28], ebx
cmp ebx, 0x3c2b
jl 0x1002b186
dec esi
dec dword [ebp - 0x14]
push 0
mov dword [ebp - 0x18], esi
pop esi
jne 0x1002b17e
mov edi, dword [ebp - 0x1c]
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0xade
jl 0x1002b174
mov dword [ebp - 4], esi
cmp dword [ebp - 0x20], 0x74c
jge 0x1002af80
mov edx, str.cxpvgmfxk_wfrvixgvi_jtd_stlygaf_ijcklp_ezmdkw_vtjrdui_axmcecbv_oynebx_zqyqezl_bkphxvz_crfjpjohk_ylylf
mov ecx, 0x10070c18
call fcn.1000e878
jmp 0x1002af80
cmp byte [ebp + 0x10], 0
je 0x1002b22f
mov edx, dword [ebp + 0x24]
mov dword [edx], 0
jmp 0x1002b228
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xb61d
inc dword [edx]
cmp dword [edx], 3
jl 0x1002b21b
jmp 0x1002b235
mov eax, dword [ebp + 0xc]
mov byte [eax], 1
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret