Function at 0x100296f6
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x100661e9
call fcn.10064c08
sub esp, 0x24
cmp byte [ebp + 0x44], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x2c], ecx
je 0x100297b2
cmp byte [ebp + 0x20], 0
je 0x1002979d
mov dword [ebp + 0x44], 0x74ec
xor esi, esi
cmp dword [ebp + 0x44], 0x75cc
jle 0x10029758
mov edi, esi
mov ebx, esi
mov eax, ebx
mov ecx, 0x10081dd8
or eax, edi
cdq
push edx
push eax
call fcn.1000c947
inc ebx
cmp ebx, 0x5796
jl 0x10029735
inc edi
cmp edi, 0x76f6
jl 0x10029733
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push eax
mov edx, dword [eax]
call dword [edx + 8]
mov dword [ebp - 4], esi
cmp dword [ebp + 0x44], 0x7414
jge 0x1002977e
mov edx, str.vsiindjc_vxdnlp_fiuvk_vzbjtdl_smcmqedlf_lrzbfk_qwwxezs_ywv_xbjcest_dte
mov ecx, 0x10081dd8
call fcn.1000fdbf
jmp 0x10029967
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x24]
and dword [ebp - 0x24], 0
push eax
call fcn.10026960
jmp 0x10029967
xor esi, esi
cmp byte [ebp + 0x34], 0
je 0x10029921
mov dword [ebp - 0x1c], 0xb97
cmp dword [ebp - 0x1c], 0xf63
jle 0x10029836
mov dword [ebp + 0x44], esi
mov edi, esi
mov dword [ebp - 0x18], esi
mov ebx, esi
mov dword [ebp - 0x14], esi
mov eax, edi
mov dword [ebp - 0x28], esi
cdq
idiv ebx
mov esi, dword [ebp + 0x44]
mov edi, dword [ebp - 0x28]
mov ebx, edx
mov eax, ebx
mov ecx, 0x10081dd8
xor eax, edi
xor eax, esi
cdq
push edx
push eax
call fcn.1000c947
inc edi
cmp edi, 0x7d2b
jl 0x100297eb
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
inc ebx
mov dword [ebp - 0x14], ebx
push 0
pop esi
cmp ebx, 0x960
jl 0x100297db
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x2ac1
jl 0x100297d6
mov eax, dword [ebp + 0x44]
inc eax
mov dword [ebp + 0x44], eax
cmp eax, 0x22cb
jl 0x100297d1
mov dword [ebp - 4], 2
cmp dword [ebp - 0x1c], 0x8c8
jge 0x10029873
mov edx, str.vey_vilmgmguj_qtdkbfqb_ufevrrw_dypyyfliu_ztfxetgx_zhmqtft
mov ecx, 0x10081dd8
call fcn.1000fdbf
jmp 0x10029873
mov eax, dword [ebp + 0x3c]
xor ecx, ecx
mov edx, dword [ebp - 0x2c]
mov ebx, dword [ebp + 0x48]
mov edi, dword [ebp + 0x40]
mov eax, dword [eax]
mov dword [edx], eax
mov eax, dword [ebx]
cmp eax, 0xe0ea
setl cl
cmp dword [edx], ecx
jle 0x1002989c
cmp dword [edi], esi
je 0x1002989c
xor edx, edx
inc edx
jmp 0x1002989e
mov edx, esi
mov eax, dword [ebx]
cmp edx, 0xb2235412
mov ecx, dword [ebp - 0x20]
mov dword [ecx], eax
sbb ecx, ecx
mov eax, dword [ebp + 0x24]
neg ecx
mov dword [eax], edx
xor edx, edx
mov eax, dword [ebp + 0x1c]
mov dword [eax], ecx
mov ecx, dword [eax]
mov eax, dword [edi]
cmp eax, ecx
mov eax, dword [edi]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x20]
setg cl
mov eax, dword [eax]
imul eax, ecx
test eax, eax
jne 0x100298dd
cmp dword [ebx], esi
je 0x100298e0
xor esi, esi
inc esi
mov eax, dword [ebx]
xor ecx, ecx
cmp eax, esi
mov eax, dword [ebp + 8]
setge cl
xor edx, edx
mov eax, dword [eax]
cmp ecx, eax
mov eax, dword [ebp + 0x4c]
setl dl
xor ecx, ecx
mov eax, dword [eax]
sub edx, eax
mov eax, dword [ebx]
cmp edx, eax
setg cl
xor eax, eax
cmp ecx, 0x2d1f
setne al
xor ecx, ecx
cmp eax, 0xb681
mov eax, dword [ebp + 0x38]
setl cl
mov dword [eax], ecx
jmp 0x10029967
mov eax, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x30]
mov eax, dword [eax]
mov eax, dword [ebx]
mov ecx, dword [ecx]
mov eax, dword [eax + 4]
mov dword [ecx], eax
cmp eax, esi
je 0x10029959
mov eax, dword [edi]
mov eax, dword [ebx]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov dword [eax + 4], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
mov eax, dword [ebp + 0x50]
sub ecx, edx
cmp ecx, dword [eax]
jg 0x10029960
mov eax, dword [ebp + 0x10]
cmp dword [eax], esi
je 0x10029963
xor esi, esi
inc esi
neg esi
mov dword [edi], esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret