Function at 0x1001653b
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10064140
call fcn.10063468
sub esp, 0x34
cmp byte [ebp + 0x24], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], ecx
je 0x100165ca
cmp byte [ebp + 0x14], 0
je 0x10016590
mov eax, dword [ebp + 0x44]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x30]
cmp ecx, dword [eax]
je 0x1001657f
push 0
push 0x522a
push ecx
push dword [ebp + 0x50]
call fcn.100161fd
add esp, 0x10
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0x28]
xor ebx, ebx
mov dword [esi], ebx
jmp 0x100165c3
mov byte [ebp + 0x27], bl
cmp byte [ebp + 0x27], bl
je 0x100165c1
push 0x1383
push 0x3440
push 0x56e5
push ebx
push ebx
mov edx, 0x63ff
mov cl, 1
call fcn.10015404
add esp, 0x14
inc dword [esi]
cmp dword [esi], 3
jle 0x10016599
jmp 0x1001657f
cmp byte [ebp + 0x20], 0
je 0x10016630
mov edi, dword [ebp + 0x48]
xor edx, edx
mov ecx, dword [ebp + 0x1c]
mov eax, dword [edi]
mov eax, dword [ecx]
mov esi, eax
cmp dword [eax], 0xf851
mov eax, dword [edi]
setg dl
xor ecx, ecx
add eax, edx
cmp dword [esi], eax
setge cl
xor eax, eax
cmp ecx, 0x5f885928
setne al
xor ecx, ecx
cmp eax, 1
setle cl
xor edx, edx
cmp ecx, 0xc74b
setne dl
mov dword [esi], edx
mov eax, dword [edi]
add eax, 3
add eax, edx
je 0x1001661d
mov eax, dword [edi]
mov eax, dword [edi]
xor ecx, ecx
cmp eax, 0x6406
setl cl
mov dword [edi], ecx
jmp 0x1001657f
mov dword [ebp + 0x24], 0x4ca4
xor ebx, ebx
cmp dword [ebp + 0x24], 0x504f
jle 0x10016688
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x20], ebx
mov eax, edi
mov ecx, 0x10080838
cdq
idiv ebx
xor edx, esi
mov eax, edx
cdq
push edx
push eax
call fcn.10010b40
inc ebx
cmp ebx, 0x1f56
jl 0x10016649
inc edi
push 0
pop ebx
cmp edi, 0x5d53
jl 0x10016646
inc esi
cmp esi, 0x2a87
jl 0x10016644
push 0xd05
call dword [sym.imp.USER32.dll_IsZoomed]
mov dword [ebp - 4], ebx
cmp dword [ebp + 0x24], 0x4b0c
jge 0x100166a3
mov edx, str.ope_stzjknccl_fqmtus_zynfnobt_eqbwye_nfpmhshk_ieao_fsymc_ejilpsk
mov ecx, 0x10080838
call fcn.10013913
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x20], 0x79e4
cmp dword [ebp - 0x20], 0x7b85
jle 0x10016729
mov dword [ebp - 0x1c], ebx
mov eax, ebx
mov dword [ebp - 0x18], 0x14e0
mov dword [ebp - 0x14], eax
mov esi, eax
mov dword [ebp + 0x24], 0x5d35
mov edi, ebx
mov ecx, edi
mov eax, esi
sar eax, cl
lea ecx, [ebp - 0x40]
cdq
push edx
push eax
call fcn.10002a87
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100166ec
mov eax, dword [eax]
push eax
call fcn.1004e245
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x40]
call fcn.10011503
inc edi
cmp edi, 0x368
jl 0x100166d1
inc esi
dec dword [ebp + 0x24]
jne 0x100166cf
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
add eax, esi
dec dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
jne 0x100166c6
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x44cb
jl 0x100166ba
cmp dword [ebp - 0x20], 0x7818
jge 0x1001673d
push str.xcc_qvde_ehxsl_gxsfobz_qtgsarfkz_wetjs_youlcx_ikhv_smekcz
call fcn.1004e245
pop ecx
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x20], 0x2a08
cmp dword [ebp - 0x20], 0x2d4c
jle 0x1001679b
mov esi, ebx
mov dword [ebp + 0x24], ebx
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov ecx, edi
mov ebx, esi
mov esi, dword [ebp - 0x1c]
sar ebx, cl
mov ecx, esi
mov eax, ebx
sar eax, cl
mov ecx, 0x10080838
cdq
push edx
push eax
call fcn.10010b40
inc esi
cmp esi, 0x3574
jl 0x10016764
mov esi, dword [ebp + 0x24]
inc edi
push 0
pop ebx
cmp edi, 0x6c77
jl 0x10016758
inc esi
mov dword [ebp + 0x24], esi
cmp esi, 0x17da
jl 0x10016756
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp + 8]
cmp dword [eax], ebx
jne 0x100167a7
mov eax, dword [edi]
mov esi, dword [ebp + 0x4c]
cmp dword [esi], ebx
je 0x10016805
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, 0xffffffff
mov eax, dword [ebp + 0x38]
setne cl
xor edx, edx
mov eax, dword [eax]
cmp ecx, eax
mov eax, dword [ebp + 0xc]
setl dl
xor ecx, ecx
mov eax, dword [eax]
cmp edx, dword [eax]
setle cl
cmp ecx, dword [edi]
jl 0x10016805
cmp dword [esi], ebx
je 0x10016805
xor eax, eax
inc eax
jmp 0x10016807
mov eax, ebx
mov ecx, dword [esi]
imul ecx, eax
mov eax, dword [ebp + 0x3c]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax], ecx
mov eax, dword [eax]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x2c]
mov eax, dword [eax]
mov eax, dword [ecx]
cmp dword [ecx], ebx
jne 0x1001682d
mov eax, dword [ebp + 0x34]
cmp dword [eax], ebx
je 0x10016830
xor ebx, ebx
inc ebx
mov eax, dword [ebp + 0x40]
xor ecx, ecx
cmp ebx, 3
push 4
sete cl
xor edx, edx
mov dword [eax], ecx
mov eax, dword [eax]
pop ecx
cmp eax, ecx
mov eax, dword [ebp - 0x28]
sete dl
mov dword [eax], edx
mov dword [ebp - 4], ecx
cmp dword [ebp - 0x20], 0x28fa
jge 0x1001657f
mov edx, str.mlhrxo_mzqajkxr_njiuhr
mov ecx, 0x10080838
call fcn.10013913
jmp 0x1001657f