Function at 0x10029b6a
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005d154
call fcn.1005c3e4
sub esp, 0xc4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], esp
mov esi, edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x38], ebx
call fcn.10025337
push ecx
push eax
lea ecx, [ebp - 0x60]
call fcn.1002a35a
mov dword [ebp - 4], ebx
mov dword [ebp - 0x18], 0xd5e48d32
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x10029bb6
push 0xbff
call dword [sym.imp.KERNEL32.dll_TlsFree]
mov dword [ebp - 0x18], ebx
jmp 0x10029be2
mov dword [ebp - 0x14], ebx
jmp 0x10029bd1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x88], 0x3c8fc558
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10029bc0
cmp dword [ebp - 0x88], ebx
jne 0x10029be8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xe
jge 0x10029bbb
mov edx, dword [ebp - 0x60]
add esi, 0xffffee75
mov ecx, edx
mov eax, dword [edx + 4]
cmp byte [eax + 0xd], 0
jne 0x10029c21
cmp dword [eax + 0x10], esi
jge 0x10029c06
mov eax, dword [eax + 8]
jmp 0x10029c0a
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x10029bfc
cmp ecx, edx
je 0x10029c21
cmp esi, dword [ecx + 0x10]
jl 0x10029c21
mov dword [ebp - 0x58], ecx
lea esi, [ebp - 0x58]
jmp 0x10029c27
mov dword [ebp - 0x54], edx
lea esi, [ebp - 0x54]
mov esi, dword [esi]
mov dword [ebp - 0x14], 8
mov dword [ebp - 0x24], 0xcb03
mov dword [ebp - 0x30], 0xb000e2e4
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x50], 0x8323
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x14], 0x4cb6
cmp dword [ebp - 0x14], 0x4d62
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x20], esi
jle 0x10029cb1
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x18], ebx
mov eax, edi
mov esi, ebx
cdq
idiv ecx
mov ebx, edx
mov eax, ebx
mov ecx, 0x100758b8
xor eax, esi
cdq
push edx
push eax
call fcn.10004429
inc esi
cmp esi, 0x6591
jl 0x10029c79
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x18], ecx
push 0
pop ebx
cmp ecx, 0x6f1a
jl 0x10029c70
inc edi
cmp edi, 0x4693
jl 0x10029c6b
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 4], 1
cmp dword [ebp - 0x14], 0x4c42
jge 0x10029cd0
mov edx, str.chm_xcqrzow_htcwodmkg_hbps
mov ecx, 0x100758b8
call fcn.100067d6
mov dword [ebp - 4], ebx
mov dword [ebp - 0x18], ebx
jmp 0x10029d0d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x6c], 1
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10029cff
mov dword [ebp - 0x14], 0xa8c6a53d
cmp dword [ebp - 0x14], ebx
je 0x10029d59
mov dword [ebp - 0x14], 0xf
jmp 0x10029d45
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10029d42
push ebx
push 0x1821
push 0x1432
call dword [sym.imp.GDI32.dll_CreatePen]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffeb
jge 0x10029d28
inc dword [ebp - 0x24]
push 2
pop edi
mov dword [ebp - 0x18], edi
jmp 0x10029ec8
mov dword [ebp - 0x18], 0x3809d010
mov dword [ebp - 0x20], 0xfffffffa
mov dword [ebp - 0x18], ebx
jmp 0x10029d7a
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x7c], 0x5732aa6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x10029d6c
mov dword [ebp - 0x18], 0x5613717b
mov ecx, dword [ebp - 0x18]
inc ecx
neg ecx
push 2
sbb ecx, ecx
inc ecx
pop edi
sub ecx, edi
mov dword [ebp - 0x18], edi
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x283066c9
setl al
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], 0x7d57
cmp dword [ebp - 0x20], 0x807b
jle 0x10029e4f
mov eax, ebx
mov dword [ebp - 0x48], ebx
mov esi, eax
mov dword [ebp - 0x40], 0x582a
mov dword [ebp - 0x44], esi
mov eax, ebx
mov dword [ebp - 0x14], ebx
add eax, esi
mov edi, ebx
mov dword [ebp - 0x2c], eax
mov esi, eax
mov ecx, edi
mov eax, esi
shl eax, cl
lea ecx, [ebp - 0xa0]
cdq
push edx
push eax
call fcn.10001a65
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10029dfc
mov eax, dword [eax]
push eax
call fcn.100442bc
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xa0]
call fcn.10004a91
inc edi
cmp edi, 0x2810
jl 0x10029dde
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x331c
jl 0x10029dd5
dec esi
dec dword [ebp - 0x40]
mov dword [ebp - 0x44], esi
jne 0x10029dd0
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x48], eax
cmp eax, 0x65e1
jl 0x10029dc4
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, dword [ebp - 0x34]
push 2
pop edi
mov dword [ebp - 0x14], 3
cmp dword [ebp - 0x14], ebx
jl 0x10029eb1
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x7c]
cmp eax, 1
mov eax, dword [ebp - 0x14]
setge cl
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x7c]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setg dl
sub edx, dword [ebp + eax*4 - 0x7c]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x24], ebx
jne 0x10029eb1
dec dword [ebp - 0x14]
jns 0x10029e5b
cmp dword [ebp - 0x20], 0x7a07
jge 0x10029ec5
push str.xwfjac_bshayowx_pjadaeqxq_agnxbsz_wfa_nlkn
call fcn.100442bc
pop ecx
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0x28]
mov edx, 0xffff
inc dword [ebp - 0x28]
cmp eax, edx
jb 0x10029edc
xor ecx, ecx
inc ecx
jmp 0x10029ede
mov ecx, ebx
cmp dword [ebp - 0x64], edx
sbb eax, eax
inc eax
imul eax, ecx
test eax, eax
jne 0x10029f01
mov ecx, dword [ebp - 0x50]
xor edx, edx
mov eax, dword [ebp - 0x30]
cmp ecx, eax
setl dl
cmp edx, dword [ebp - 0x28]
jl 0x10029f01
mov ecx, ebx
jmp 0x10029f04
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x64]
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
cmp ecx, 5
jb 0x10029f26
cmp dword [ebp - 0x6c], ebx
jne 0x10029f26
mov ecx, ebx
jmp 0x10029f29
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x3c]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [0x10076b38]
setle cl
mov dword [ebp - 0x14], ecx
test al, 1
jne 0x10029f74
or eax, 1
mov dword [0x10076b54], 7
mov dword [0x10076b38], eax
xor eax, eax
push 0x1005d7ff
mov dword [0x10076b50], ebx
mov word [0x10076b40], ax
call fcn.10044292
pop ecx
cmp esi, dword [ebp - 0x60]
je 0x10029f97
push dword [esi + 0x18]
mov edx, dword [esi + 0x14]
lea ecx, [ebp - 0xd0]
call fcn.1002217b
pop ecx
xor edi, edi
mov byte [ebp - 4], 5
inc edi
mov dword [ebp - 0x18], edi
jmp 0x10029fae
push 0x10076b40
lea ecx, [ebp - 0xb8]
call fcn.1000738c
mov dword [ebp - 4], 6
mov esi, dword [ebp - 0x4c]
mov ecx, esi
push eax
mov dword [ebp - 0x38], edi
call fcn.1000738c
mov eax, dword [ebp - 0x18]
or eax, 4
test al, 2
je 0x10029fdd
push ebx
and eax, 0xfffffffd
lea ecx, [ebp - 0xb8]
push 1
mov dword [ebp - 0x18], eax
call fcn.10004b5d
mov eax, dword [ebp - 0x18]
test al, 1
je 0x10029fef
push ebx
push 1
lea ecx, [ebp - 0xd0]
call fcn.10004b5d
lea ecx, [ebp - 0x60]
call fcn.1002a193
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret