Function at 0x100290a4
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10057ea2
call fcn.10056dd0
sub esp, 0xb8
push ebx
push esi
mov byte [ebp - 0x30], dl
mov dword [ebp - 0x18], 0x7b1
cmp dword [ebp - 0x18], 0x955
push edi
mov dword [ebp - 0x10], esp
jle 0x1002912f
xor esi, esi
mov dword [ebp - 0x1c], esi
xor edi, edi
mov dword [ebp - 0x20], edi
mov eax, esi
xor ebx, ebx
cdq
idiv edi
mov eax, edx
mov dword [ebp - 0x28], eax
mov edi, eax
mov ecx, ebx
xor esi, esi
sar edi, cl
mov eax, edi
mov ecx, 0x10070c18
xor eax, esi
cdq
push edx
push eax
call fcn.1000bb2c
inc esi
cmp esi, 0x4998
jl 0x100290eb
mov eax, dword [ebp - 0x28]
inc ebx
cmp ebx, 0x4cae
jl 0x100290e3
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x11ea
jl 0x100290d7
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x5425
jl 0x100290d2
and dword [ebp - 4], 0
cmp dword [ebp - 0x18], 0x73f
jge 0x1002914b
mov edx, str.roklj_luygfmyou_ezjfkrc
mov ecx, 0x10070c18
call fcn.1000e878
or dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x30], 0
je 0x100295c6
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x28]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x20], 0x8dcfd8f2
mov dword [ebp - 0x20], 0x8e10d32d
mov dword [ebp - 0x20], 0x5e4bc795
mov dword [ebp - 0x18], 0
jmp 0x100291ab
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x24], 0xbacd7953
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x1002919d
push 3
mov dword [ebp - 0x18], 0
pop ecx
jmp 0x100291ce
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x84], 0xfffffff6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x100291bd
mov dword [ebp - 0x18], 0
jmp 0x100291ed
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xa8], 0x3888ad88
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x100291dc
mov eax, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov ecx, dword [ebp - 0x24]
setl dl
xor eax, eax
cmp edx, 0x3623
setle al
imul ecx, dword [ebp - 0x24]
sub ecx, eax
mov eax, dword [ebp - 0x80]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
add ecx, eax
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setne dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x7c]
setge bl
xor ecx, ecx
cmp ebx, eax
setg cl
xor ebx, ebx
cmp ecx, 0x8ee3
jl 0x10029251
cmp dword [ebp - 0x24], ebx
je 0x1002925b
cmp dword [ebp - 0x80], ebx
je 0x1002925b
xor eax, eax
inc eax
jmp 0x1002925d
mov eax, ebx
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov eax, dword [ebp - 0x20]
cmp eax, 0x2b622b60
setge cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0xa4], eax
xor eax, eax
mov dword [ebp - 0x54], 7
mov dword [ebp - 0x58], ebx
mov word [ebp - 0x68], ax
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x4c], ebx
push 4
call fcn.1000be0e
mov byte [ebp - 4], 3
mov dword [ebp - 0x44], 1
mov dword [ebp - 0x50], 0xf0ddd9cd
mov dword [ebp - 0x1c], ebx
jmp 0x100292d8
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x9c]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x100292c5
xor dl, dl
mov byte [ebp - 0x2a], bl
lea ecx, [ebp - 0x2a]
call fcn.1002a356
lea eax, [ebp - 0x50]
push eax
push ecx
lea edx, [ebp - 0x4c]
call fcn.10029944
pop ecx
pop ecx
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 2
call fcn.1000be91
cmp edi, esi
ja 0x10029330
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x68]
cmp ecx, eax
je 0x10029320
push 0xffffffffffffffff
push ebx
push eax
call fcn.1000c657
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.1000c799
jmp 0x10029617
push 6
pop edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x1c], ebx
jmp 0x10029353
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x3c], 0x110c93b4
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10029345
mov dword [ebp - 0x3c], 0x1c
jmp 0x10029406
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
je 0x100293e4
cmp dword [ebp - 0x3c], ebx
je 0x10029375
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
sub edx, 0xf59e
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x20]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setge dl
add esi, edx
neg esi
sbb esi, esi
xor ecx, ecx
neg esi
cmp eax, esi
setge cl
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
imul ecx, eax
mov eax, dword [ebp - 0x18]
add eax, ecx
xor ecx, ecx
cmp eax, 0xbc40
setl cl
cmp ecx, edi
jae 0x100293da
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
je 0x100293e4
xor ecx, ecx
inc ecx
jmp 0x100293e6
mov ecx, ebx
mov eax, dword [ebp - 0x3c]
xor edx, edx
sub ecx, eax
mov eax, dword [ebp - 0x18]
cmp ecx, 0x656540f2
setle dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x28], ecx
dec dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 0xffffffe9
je 0x10029365
xor edi, edi
inc edi
mov dword [ebp - 0x1c], edi
cmp dword [ebp - 0x1c], ebx
jl 0x1002944d
lea eax, [ebp - 0x29]
mov dword [ebp - 0x20], ebx
push edi
mov dword [ebp - 0x28], 4
mov byte [ebp - 0x29], bl
push eax
call fcn.10028eaf
pop ecx
pop ecx
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov eax, dword [ebp - 0x20]
cmp eax, ecx
mov eax, dword [ebp - 0x1c]
setl dl
mov dword [ebp + eax*4 - 0x3c], edx
dec dword [ebp - 0x1c]
jns 0x1002941b
push ebx
push edi
lea eax, [ebp - 0x40]
push eax
push edi
lea edx, [ebp - 0x48]
lea ecx, [ebp - 0x68]
call fcn.1002a5d0
mov dword [ebp - 0x28], 0x650b
add esp, 0x10
cmp dword [ebp - 0x28], 0x661c
jle 0x10029504
push 0xba0
call dword [sym.imp.GDI32.dll_EndPage]
mov esi, ebx
mov dword [ebp - 0x18], ebx
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov dword [ebp - 0x1c], ebx
cdq
idiv edi
mov dword [ebp - 0x44], ebx
lea edi, [edx + esi]
mov esi, ebx
mov eax, edi
lea ecx, [ebp - 0xc0]
xor eax, esi
cdq
push edx
push eax
call fcn.10001a7f
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100294b7
mov eax, dword [eax]
push eax
call fcn.10040493
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xc0]
call fcn.1000c5c5
inc esi
cmp esi, 0x312a
jl 0x1002949b
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
inc edi
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], edi
cmp edi, 0x4e6
jl 0x10029490
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x27db
jl 0x1002948b
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x1b3
jl 0x10029486
xor edi, edi
inc edi
push 4
pop esi
push esi
lea ecx, [ebp - 0x90]
call fcn.1000be0e
cmp dword [ebp - 0x28], 0x62e6
jge 0x10029527
push str.nku_ihjrs_vhs_tgjlv
call fcn.10040493
pop ecx
sub esp, 0xc
mov dword [ebp - 4], esi
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x90]
call fcn.1002991a
add esp, 0xc
mov dword [ebp - 0x34], ebx
jmp 0x10029551
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x78], 0x32fe2236
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], esi
jl 0x10029543
mov dword [ebp - 0x70], 3
cmp dword [ebp - 0x70], ebx
jl 0x10029578
mov dword [ebp - 0x44], 0x3d2d
mov dword [ebp - 0x44], 0xffffffff
mov eax, dword [ebp - 0x70]
dec dword [ebp - 0x70]
jns 0x10029562
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 2
call fcn.1000be91
mov esi, dword [ebp - 0x48]
jmp 0x100295a7
mov edx, 0x38b9
call fcn.100297a5
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x40]
push eax
push ecx
call fcn.1002995f
add esp, 0xc
cmp dword [ebp - 0x40], esi
jb 0x1002958c
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x68]
cmp ecx, eax
je 0x100295bf
push 0xffffffffffffffff
push ebx
push eax
call fcn.1000c657
push ebx
push edi
jmp 0x10029323
mov esi, dword [ebp + 0x24]
xor edx, edx
mov eax, dword [ebp + 0x20]
mov ecx, 0xb03f
mov eax, dword [eax]
sub ecx, eax
mov eax, dword [esi]
add ecx, eax
mov eax, dword [esi]
cmp ecx, eax
mov eax, dword [ebp + 8]
setge dl
mov ecx, dword [eax]
mov eax, dword [esi]
add ecx, edx
xor edx, edx
cmp eax, ecx
mov eax, dword [esi]
sete dl
xor ecx, ecx
test eax, eax
mov eax, dword [ebp + 0x2c]
setle cl
add ecx, edx
xor edx, edx
mov eax, dword [eax]
cmp eax, ecx
mov ecx, dword [esi]
mov eax, dword [esi]
setg dl
imul ecx, edx
sub ecx, eax
mov eax, dword [ebp + 0x1c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret