Function at 0x100218b1
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005b4c2
call fcn.1005a3a0
sub esp, 0x9c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], esp
mov edi, edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x38], ebx
call fcn.1001e319
push ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.10021cbf
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x14], ebx
push 1
call fcn.100014a1
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x28], 0x48110cbb
mov dword [ebp - 0x18], ebx
jmp 0x10021917
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x78], 1
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10021909
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 1
jge 0x10021940
push 2
pop esi
mov dword [ebp - 0x20], esi
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x60]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x1002192c
jmp 0x10021947
mov dword [ebp - 0x20], 2
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x60]
mov dword [eax], 0xfffffffd
mov eax, dword [ebp - 0x14]
test eax, eax
setle cl
sub ecx, 0x8a52
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setge dl
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
neg eax
sbb eax, eax
xor edx, edx
neg eax
add ecx, eax
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setg dl
sub eax, edx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
je 0x100219ac
cmp dword [ebp - 0x14], ebx
je 0x100219ac
xor ecx, ecx
inc ecx
jmp 0x100219ae
mov ecx, ebx
mov esi, 0xc0272a72
xor edx, edx
mov dword [ebp - 0x78], esi
mov eax, dword [ebp - 0x24]
imul eax, ecx
cmp eax, esi
mov eax, dword [ebp - 0x24]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x24], eax
jne 0x100219e2
cmp dword [ebp - 0x18], ebx
je 0x100219e2
xor ecx, ecx
inc ecx
jmp 0x100219e4
mov ecx, ebx
xor eax, eax
test ecx, ecx
lea ecx, [ebp - 0x60]
setne al
imul eax, eax, 0x2305
mov dword [ebp - 0x28], eax
call fcn.100014fe
mov edx, dword [ebp - 0x44]
lea esi, [edi - 0x2e22]
mov ecx, edx
mov eax, dword [edx + 4]
cmp byte [eax + 0xd], 0
jne 0x10021a35
cmp dword [eax + 0x10], esi
jge 0x10021a1a
mov eax, dword [eax + 8]
jmp 0x10021a1e
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x10021a10
cmp ecx, edx
je 0x10021a35
cmp esi, dword [ecx + 0x10]
jl 0x10021a35
mov dword [ebp - 0x3c], ecx
lea esi, [ebp - 0x3c]
jmp 0x10021a3b
mov dword [ebp - 0x54], edx
lea esi, [ebp - 0x54]
mov esi, dword [esi]
mov eax, dword [0x10076784]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x24], esi
test al, 1
jne 0x10021a77
or eax, 1
mov dword [0x100767a0], 7
mov dword [0x10076784], eax
xor eax, eax
push 0x1005be82
mov dword [0x1007679c], ebx
mov word [0x1007678c], ax
call fcn.10043984
pop ecx
mov dword [ebp - 0x28], 0x59e4
cmp dword [ebp - 0x28], 0x5c35
jle 0x10021acb
push 0x18a3
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_Polyline]
mov edi, ebx
mov esi, ebx
mov eax, esi
mov ecx, 0x10074fb8
xor eax, edi
cdq
push edx
push eax
call fcn.1000333f
inc esi
cmp esi, 0x411d
jl 0x10021aa5
inc edi
cmp edi, 0x5f91
jl 0x10021aa3
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x1533
cmp dword [ebp - 0x1c], 0x11a3
jge 0x10021b51
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x30]
push eax
push str._d__d__d__d__d
call fcn.10044022
mov edi, dword [ebp - 0x50]
xor ebx, ebx
mov ecx, edi
imul ecx, dword [ebp - 0x48]
mov eax, ecx
sub eax, dword [ebp - 0x34]
cmp ecx, dword [ebp - 0x34]
cmovg ebx, eax
lea eax, [edi - 1]
add eax, ebx
cdq
idiv edi
mov ecx, eax
mov eax, ebx
cdq
idiv edi
imul ecx, dword [ebp - 0x30]
imul eax, dword [ebp - 0x30]
imul edx, dword [ebp - 0x2c]
add edx, eax
mov eax, dword [ebp - 0x2c]
cmp ecx, edx
cmovl edx, ecx
imul ebx, dword [ebp - 0x2c]
imul eax, edi
cmp dword [ebp - 0x30], eax
cmovl ebx, edx
push ebx
push 0x10064f68
call fcn.100439ae
add esp, 0x20
xor ebx, ebx
push 1
lea ecx, [ebp - 0x6c]
call fcn.100014a1
mov dword [ebp - 0x14], 0x96960f57
xor edx, edx
mov dword [ebp - 0x1c], 0xade
inc edx
mov dword [ebp - 0x14], ebx
jmp 0x10021b81
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x6c]
mov dword [eax + ecx*4], 0xfffffff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10021b71
mov dword [ebp - 0x14], ebx
jmp 0x10021b97
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x6c]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10021b8b
lea ecx, [ebp - 0x6c]
call fcn.100014fe
mov byte [ebp - 4], 1
cmp dword [ebp - 0x28], 0x5754
jge 0x10021bc0
mov edx, str.hrmfg_bpbqgoyrh_hhyi_kixr_zmaglndmk_ipdsbv_rvbce_cxhzd_dcfjrfsln_xtbpkqcnn_icyraeyq_jwawxmgj
mov ecx, 0x10074fb8
call fcn.1000494d
push 2
mov dword [ebp - 4], ebx
pop edi
cmp esi, dword [ebp - 0x44]
je 0x10021c18
push dword [esi + 0x18]
mov edx, dword [esi + 0x14]
lea ecx, [ebp - 0xa8]
call fcn.1001a925
pop ecx
mov ecx, eax
xor eax, eax
mov byte [ebp - 4], 3
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x38], eax
jmp 0x10021c34
push 0x1007678c
lea ecx, [ebp - 0x90]
call fcn.1000142c
mov ecx, eax
mov dword [ebp - 4], 4
mov dword [ebp - 0x38], edi
mov esi, dword [ebp - 0x4c]
push ecx
mov ecx, esi
call fcn.1000142c
mov eax, dword [ebp - 0x20]
or eax, 4
test al, 2
je 0x10021c60
push ebx
and eax, 0xfffffffd
lea ecx, [ebp - 0x90]
push 1
mov dword [ebp - 0x20], eax
call fcn.100017a2
mov eax, dword [ebp - 0x20]
test al, 1
je 0x10021c72
push ebx
push 1
lea ecx, [ebp - 0xa8]
call fcn.100017a2
lea ecx, [ebp - 0x44]
call fcn.10021c8d
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