Function at 0x10020c69
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005784e
call fcn.10056a88
sub esp, 0x12c
mov byte [ebp - 0x4c], cl
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test dl, dl
je 0x10021455
xor ebx, ebx
test cl, cl
je 0x10021383
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x24], 0xb09f
mov dword [ebp - 0x20], 0xa10dd664
mov dword [ebp - 0x18], 5
mov dword [ebp - 0x28], 0xa33
cmp dword [ebp - 0x28], 0xd12
jle 0x10020cfa
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x18], ebx
mov ecx, ebx
mov eax, edi
shl eax, cl
mov ecx, 0x100711f8
xor eax, esi
cdq
push edx
push eax
call fcn.10003fa2
inc ebx
cmp ebx, 0x30e9
jl 0x10020cc7
inc edi
push 0
pop ebx
cmp edi, 0x6f61
jl 0x10020cc4
inc esi
cmp esi, 0x1c36
jl 0x10020cc2
mov dword [ebp - 0x14], 0x89c089ce
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x28], 0x962
jge 0x10020d1c
mov edx, str.tznph_ukfxgju_nlqdyhsd_qnohpaz
mov ecx, 0x100711f8
call fcn.1000634f
or dword [ebp - 4], 0xffffffff
xor ecx, ecx
inc ecx
mov dword [ebp - 0x18], 0xfffffff7
mov dword [ebp - 0x20], ebx
jmp 0x10020d65
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xa4], 5
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10020d54
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
push 0x7c
setne dl
xor ecx, ecx
mov dword [ebp - 0xa4], edx
xor edx, edx
mov eax, dword [ebp - 0x1c]
inc edx
mov eax, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x1c]
sub eax, 9
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
test eax, eax
mov byte [ebp - 0x5c], bl
mov byte [ebp - 0x5b], 0xd6
sets cl
mov dword [ebp - 0x18], ecx
pop eax
mov word [ebp - 0x48], ax
xor eax, eax
mov word [ebp - 0x46], ax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], 0x44ad
push 3
pop eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x60], 0xb6f9b691
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x18], 0xbfe6b87c
mov dword [ebp - 0x28], 0x6eb3e198
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x10020e14
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xd0], 0xfffffffc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10020e03
mov dword [ebp - 0x14], ebx
jmp 0x10020e2c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x30], 0xa53aa9ac
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10020e1e
push 2
mov dword [ebp - 0x14], ebx
pop ecx
jmp 0x10020e4a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x120], 0xfffffff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10020e39
mov dword [ebp - 0x14], ebx
jmp 0x10020e65
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc4], 0x2b293353
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10020e54
mov dword [ebp - 0x14], ebx
jmp 0x10020e80
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xcc], 0xe4bcb816
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10020e6f
lea eax, [ebp - 0x60]
xor dl, dl
push eax
push ecx
call fcn.1002085a
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], 0x5412
pop ecx
pop ecx
cmp dword [ebp - 0x28], ebx
je 0x10020ea5
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x108]
mov eax, dword [ebp - 0x60]
xor eax, eax
inc eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0xcc], eax
xor eax, eax
mov word [ebp - 0x108], ax
lea eax, [ebp - 0x48]
push eax
mov dword [ebp - 0xf4], 7
mov dword [ebp - 0xf8], ebx
call fcn.1000464e
mov edx, dword [ebp + 0x18]
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0xb0]
mov dword [ebp - 4], 2
call fcn.100207de
pop ecx
xor esi, esi
mov byte [ebp - 4], 4
push ebx
inc esi
lea ecx, [ebp - 0x108]
push esi
call fcn.100046d6
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x1c], 0xa80e3580
mov dword [ebp - 0x18], 5
mov dword [ebp - 0x20], 0x29cbc21b
mov dword [ebp - 0x18], 0x2fd
cmp dword [ebp - 0x18], 0x406
jle 0x10020fde
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov dword [ebp - 0x34], ebx
cdq
mov ecx, ebx
idiv edi
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x28], edx
mov edi, ebx
mov eax, edi
xor eax, ecx
lea ecx, [ebp - 0x138]
or eax, edx
cdq
push edx
push eax
call fcn.10001a55
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10020f92
mov eax, dword [eax]
push eax
call fcn.1003e75c
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x138]
call fcn.1000460a
mov ecx, dword [ebp - 0x24]
inc edi
mov edx, dword [ebp - 0x28]
cmp edi, 0x79ff
jl 0x10020f74
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x9e2
jl 0x10020f72
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
inc edi
mov dword [ebp - 0x34], edi
cmp edi, 0x6441
jl 0x10020f67
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x5647
jl 0x10020f62
cmp dword [ebp - 0x18], 0x2b9
jge 0x10020ff2
push str.mcu_tdoiq_gwaahvlx_kxirx
call fcn.1003e75c
pop ecx
push 4
pop ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x14], ebx
jmp 0x1002100b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x70], 0x3b372ba2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10020ffd
mov dword [ebp - 0x14], ebx
jmp 0x10021026
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x118], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10021015
mov byte [ebp - 0x2b], bl
cmp byte [ebp - 0x2b], 0
je 0x10021043
push 0x2778
push ecx
mov dl, 1
call fcn.1002085a
pop ecx
pop ecx
cmp dword [ebp - 0x1c], ebx
je 0x1002106d
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x64], eax
test eax, eax
je 0x1002106d
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x70], ebx
je 0x10021061
mov dword [ebp - 0x64], ecx
mov edx, ecx
jmp 0x10021066
mov dword [ebp - 0x64], ebx
mov edx, ebx
mov eax, dword [ebp - 0x1c]
sub edx, eax
jne 0x1002106f
mov ecx, ebx
cmp ecx, dword [ebp - 0x1c]
jg 0x10021077
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], 0x7153
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
xor edx, edx
inc eax
imul eax, dword [ebp - 0x20]
imul ecx, eax, 0xc0e0
mov eax, dword [ebp - 0x20]
cmp ecx, eax
setl dl
imul edx, dword [ebp - 0x1c]
test edx, edx
je 0x100210a8
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
sub eax, 0x7a35da77
je 0x10021102
xor eax, eax
lea ecx, [ebp - 0x2a]
inc eax
mov edx, 0x661c
push ecx
mov dword [ebp - 0x84], eax
push eax
mov byte [ebp - 0x2a], bl
call fcn.10020bf6
push 0x3961
push 0x41af
xor eax, eax
lea edx, [ebp - 0x84]
inc eax
mov ecx, 0xb62
push eax
push eax
push ebx
push 0x5b38
push 0x40e5
call fcn.10023df1
add esp, 0x24
jmp 0x1002127b
mov dword [ebp - 0x24], 0xf12afbca
xor ecx, ecx
mov dword [ebp - 0x18], 0xbd0c7f12
inc ecx
mov dword [ebp - 0x18], 0xf7cfeb45
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x1c], ebx
jmp 0x10021133
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xd8], 0x559c29c8
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10021122
push ecx
push ecx
lea eax, [ebp - 0x29]
mov byte [ebp - 0x29], bl
push eax
push 0x1f5
push 0x65ee
push ecx
push 0x27f2
push ecx
push ecx
mov edx, 0x65e2
call fcn.1002205e
mov dword [ebp - 0x1c], 0xffffffe2
add esp, 0x24
cmp dword [ebp - 0x1c], 0xfffffff8
jne 0x1002127b
xor ecx, ecx
inc ecx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x18], 0xa1fb9d33
mov dword [ebp - 0x14], ebx
jmp 0x10021192
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x54], 0xddd8d7cd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10021184
mov dword [ebp - 0x14], ebx
jmp 0x100211ad
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xbc], 0xc011945b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1002119c
mov dword [ebp - 0x14], ebx
jmp 0x100211c6
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x80], 0xf7bd129a
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x100211b8
cmp dword [ebp - 0x24], ebx
je 0x10021247
mov eax, dword [ebp - 0x28]
xor edx, edx
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
mov eax, dword [ebp - 0x24]
setg dl
imul ecx, edx, 0xfffffffd
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setle dl
sub edx, eax
mov dword [ebp - 0x54], edx
cmp edx, dword [ebp - 0x28]
jne 0x100211fd
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x118]
xor ecx, ecx
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0xd8], 1
mov eax, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0xb8]
cmp eax, 0x13d06461
setg cl
mov dword [ebp - 0x18], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x18]
inc ecx
mov eax, dword [ebp - 0x80]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jl 0x10021269
mov eax, ecx
cmp dword [ebp - 0x118], ebx
jne 0x1002126b
mov eax, ebx
mov dword [ebp - 0x18], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffff8
je 0x10021175
push 0x20
pop eax
push 2
mov ecx, ebx
mov dword [ebp - 0x44], 0x2d016a03
mov byte [ebp - 0x40], bl
mov dword [ebp - 0x3f], 0x4030204
mov dword [ebp - 0x3b], 0x7a143f75
mov word [ebp - 0x76], ax
pop esi
mov dword [ebp - 0x50], ecx
cmp esi, 8
jne 0x100212b2
push 5
pop ecx
push 0xb
mov dword [ebp - 0x50], ecx
pop esi
jmp 0x100212fc
movzx edx, byte [ebp + esi - 0x43]
mov eax, esi
sub eax, ecx
push 0x1c23
push 0xa1f
movzx eax, byte [ebp + eax - 0x46]
movzx ecx, word [ebp + eax*2 - 0x7c]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x44]
add ecx, edx
push ecx
push 1
mov word [ebp + eax*2 - 0x7c], cx
lea eax, [ebp - 0x50]
push ecx
push eax
push ecx
mov ecx, 0x4895
call fcn.10020a8b
mov ecx, dword [ebp - 0x50]
add esp, 0x1c
add esi, 2
cmp esi, 0xd
jb 0x100212a2
xor eax, eax
mov dword [ebp - 0xdc], 7
mov word [ebp - 0x74], ax
lea ecx, [ebp - 0xf0]
mov word [ebp - 0xf0], ax
xor ebx, ebx
lea eax, [ebp - 0x7c]
mov dword [ebp - 0xe0], ebx
push eax
call fcn.1000464e
xor eax, eax
mov byte [ebp - 4], 7
lea edi, [ebp - 0x7c]
stosd dword es:[edi], eax
lea edx, [ebp - 0xf0]
push ecx
mov cl, 1
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0xb0]
push eax
call fcn.10020b7c
pop ecx
pop ecx
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0xb0]
push eax
call fcn.1002433a
push ebx
push 1
lea ecx, [ebp - 0xf0]
call fcn.100046d6
lea ecx, [ebp - 0xb0]
call fcn.100246f1
jmp 0x10021583
mov dword [ebp - 0x18], 0x4581
cmp dword [ebp - 0x18], 0x48ea
jle 0x100213bc
mov esi, ebx
mov edi, ebx
mov ecx, edi
mov eax, esi
shl eax, cl
mov ecx, 0x100711f8
cdq
push edx
push eax
call fcn.10003fa2
inc edi
cmp edi, 0x5cc7
jl 0x10021397
inc esi
cmp esi, 0x3608
jl 0x10021395
mov dword [ebp - 4], 8
cmp dword [ebp - 0x18], 0x4307
jge 0x100213db
mov edx, str.xanh_cnoq_dqu_gjzldd_mnguhdwdx_bub_turkmoozm_viqjwi_css_qtdwswnj
mov ecx, 0x100711f8
call fcn.1000634f
or dword [ebp - 4], 0xffffffff
mov esi, dword [ebp + 0x10]
mov dword [esi], ebx
cmp dword [esi], 0xffffffed
jne 0x10021583
xor eax, eax
inc eax
push eax
push 0xe57
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x90], 0xfffe
push ecx
push eax
push 0x4240
mov dword [ebp - 0x8c], eax
lea ecx, [ebp - 0x8c]
push ebx
mov edx, esi
call fcn.1002161d
add esp, 0x18
dec dword [esi]
cmp dword [esi], 0xffffffed
push 1
pop eax
je 0x100213f0
jmp 0x10021583
mov dword [ebp - 0x18], 0x1896
cmp dword [ebp - 0x18], 0x593
jge 0x1002150a
lea eax, [ebp - 0x58]
push eax
push 0x10060774
call fcn.1003ea12
pop ecx
pop ecx
lea eax, [ebp - 0x88]
xor ebx, ebx
push eax
push dword [ebp - 0x58]
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
call fcn.10024729
mov edi, dword [ebp - 0x9c]
xor ecx, ecx
inc ecx
mov edx, ebx
mov dword [edi], ecx
mov esi, dword [ebp - 0x58]
lea eax, [esi + esi]
cmp eax, ecx
jl 0x100214d7
mov ebx, ecx
lea eax, [ebx + edx]
cdq
idiv esi
inc ebx
mov dword [edi + edx*4], ecx
mov esi, dword [ebp - 0x58]
lea eax, [esi + esi]
cmp ebx, eax
jle 0x100214c1
xor ebx, ebx
mov eax, ebx
test esi, esi
jle 0x100214eb
cmp dword [edi + eax*4], ebx
je 0x100214e9
inc eax
cmp eax, esi
jl 0x100214dd
jmp 0x100214eb
mov cl, bl
test cl, cl
mov edx, 0x10063378
mov eax, 0x10063374
cmove eax, edx
push eax
call fcn.1003eab2
push edi
call fcn.1003e929
pop ecx
pop ecx
jmp 0x1002150c
xor ebx, ebx
cmp byte [ebp + 8], 0
je 0x10021560
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0x14f1
push 0x1362
push 0xc3e
push ebx
push 0xc44
push 0x446
call edi
mov esi, dword [sym.imp.USER32.dll_GetDC]
push eax
call esi
push eax
push 0x313
push 0x240b
push 0xd44
push 0x1a43
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_MaskBlt]
jmp 0x10021583
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x10021583
push 0xf6
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_PolyPolygon]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret