Function at 0x10007fb1
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x100589a2
call fcn.100582b8
sub esp, 0x34
mov byte [ebp - 0x14], cl
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test dl, dl
je 0x10008161
cmp byte [ebp + 0xc], 0
je 0x100080b7
mov dword [ebp - 0x1c], 0x6466
cmp dword [ebp - 0x1c], 0x66c9
jle 0x1000802f
xor esi, esi
mov dword [ebp - 0x18], esi
xor edi, edi
and dword [ebp - 0x24], 0
mov ebx, esi
mov esi, dword [ebp - 0x24]
mov ecx, edi
shl ebx, cl
mov eax, ebx
mov ecx, 0x10072ab8
xor eax, esi
cdq
push edx
push eax
call fcn.10001ac8
inc esi
cmp esi, 0x29f
jl 0x10007ffd
mov esi, dword [ebp - 0x18]
inc edi
cmp edi, 0x321
jl 0x10007ff0
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x46dc
jl 0x10007fee
and dword [ebp - 4], 0
cmp dword [ebp - 0x1c], 0x62ad
jge 0x1000804b
mov edx, str.mgtbl_uadhdnfa_dkjmjc_mwznlsdce_gxh_ucngvpix_reyexk_qeg_wncxea_cmf_hieur
mov ecx, 0x10072ab8
call fcn.1000350a
mov eax, dword [ebp + 0x38]
xor edx, edx
mov esi, dword [ebp + 0x34]
mov edi, dword [ebp + 0x28]
mov eax, dword [eax]
mov eax, dword [esi]
mov eax, dword [edi]
test eax, eax
mov eax, dword [esi]
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, dword [esi]
jge 0x10008070
mov eax, dword [edi]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x14]
neg ecx
mov dword [eax], ecx
mov eax, dword [eax]
cmp dword [esi], 0xffff
mov eax, dword [ebp + 0x10]
sbb ecx, ecx
add ecx, 0x90c82bca
mov dword [eax], ecx
mov ecx, dword [eax]
mov eax, dword [ebp + 0x2c]
mov dword [eax], ecx
jmp 0x1000824a
mov esi, dword [ebp + 0x24]
mov dword [esi], 0
cmp dword [esi], 0
jl 0x1000824a
mov dword [ebp - 0x24], 0x29949dfc
mov dword [ebp - 0x20], 0x1ca1
cmp dword [ebp - 0x20], 0x1f2a
jle 0x1000813b
xor edi, edi
mov dword [ebp - 0x18], edi
mov ebx, edi
mov dword [ebp - 0x1c], 0x3b46
mov esi, ebx
mov edi, 0x24c
mov eax, esi
lea ecx, [ebp - 0x3c]
cdq
push edx
push eax
call fcn.10001a11
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000810c
mov eax, dword [eax]
push eax
call fcn.100400a6
pop ecx
push 0
push 1
lea ecx, [ebp - 0x3c]
call fcn.10001eb4
dec esi
dec edi
jne 0x100080f5
dec ebx
dec dword [ebp - 0x1c]
jne 0x100080ee
mov edi, dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x804d
jl 0x100080e5
mov esi, dword [ebp + 0x24]
mov dword [ebp - 0x24], 1
cmp dword [ebp - 0x20], 0x18f0
jge 0x10008156
push str.dbsw_lfg_ixukznfn_ogodsreav_jbhnu_byojo_mmzlnobbz_rbcdeizsa_rlcm_lahfcsc_wwjx_zay_fddpbj_yoncnpu
call fcn.100400a6
pop ecx
or dword [ebp - 4], 0xffffffff
dec dword [esi]
jmp 0x100080c0
test cl, cl
je 0x10008191
mov edx, dword [ebp + 0x20]
mov dword [edx], 0
cmp dword [edx], 1
jge 0x1000824a
mov esi, dword [ebp + 8]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [edx]
cmp dword [edx], 1
jl 0x1000817a
jmp 0x1000824a
mov dword [ebp - 0x24], 0x133c
cmp dword [ebp - 0x24], 0x142e
jle 0x10008208
push 0
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorOwner]
xor esi, esi
mov dword [ebp - 0x18], esi
xor ebx, ebx
mov dword [ebp - 0x1c], 0x2eca
mov dword [ebp - 0x20], ebx
xor edi, edi
mov eax, ebx
xor esi, esi
cdq
idiv edi
mov ebx, edx
mov eax, ebx
mov ecx, 0x10072ab8
xor eax, esi
cdq
push edx
push eax
call fcn.10001ac8
inc esi
cmp esi, 0x7f0f
jl 0x100081c9
mov ebx, dword [ebp - 0x20]
inc edi
cmp edi, 0x1382
jl 0x100081c0
mov esi, dword [ebp - 0x18]
add ebx, esi
dec dword [ebp - 0x1c]
mov dword [ebp - 0x20], ebx
jne 0x100081be
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x37c1
jl 0x100081b2
mov dword [ebp - 4], 4
cmp dword [ebp - 0x24], 0x117e
jge 0x10008227
mov edx, str.mlugoe_phxlgshzc_mfnkofm_dfczxednu
mov ecx, 0x10072ab8
call fcn.1000350a
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0
cmp dword [edx], 3
jge 0x1000824a
mov esi, dword [ebp + 0x18]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [edx]
cmp dword [edx], 3
jl 0x10008238
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret