Function at 0x10037f34
Capabilities:
Encode data using xor
Get system information on windows

Disassembly:
mov eax, 0x1005f1cd
call fcn.1005d8a0
sub esp, 0x40
cmp byte [ebp + 0x1c], 0
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], ebx
je 0x10038081
mov dword [ebp - 0x18], 0x17f7
cmp dword [ebp - 0x18], 0x1ac7
jle 0x10037fd8
push 0
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
xor edi, edi
mov dword [ebp + 0x1c], edi
xor ebx, ebx
mov ecx, ebx
mov dword [ebp - 0x1c], edi
xor esi, esi
sar edi, cl
mov ecx, esi
mov eax, edi
sar eax, cl
lea ecx, [ebp - 0x48]
cdq
push edx
push eax
call fcn.10001a75
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10037f9e
mov eax, dword [eax]
push eax
call fcn.10047084
pop ecx
push 0
push 1
lea ecx, [ebp - 0x48]
call fcn.10002352
inc esi
cmp esi, 0x77ea
jl 0x10037f83
mov edi, dword [ebp + 0x1c]
inc ebx
cmp ebx, 0x8f0
jl 0x10037f7a
inc edi
mov dword [ebp + 0x1c], edi
cmp edi, 0x3953
jl 0x10037f78
mov esi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x24]
cmp dword [ebp - 0x18], 0x1704
jge 0x10037fec
push str.zko_qxir_qvaopf_hdqr_vzcuuqoq_oaetf_zlxvb_xxanyl_hyxrtug_xvaatelh
call fcn.10047084
pop ecx
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 0x18], 0
je 0x1003801f
mov dword [esi], 0
cmp dword [esi], 2
jge 0x1003813f
mov edx, dword [ebp + 0x28]
mov ecx, dword [esi]
mov eax, dword [edx]
mov dword [eax + ecx*4], 0x815898f
inc dword [esi]
cmp dword [esi], 2
jl 0x10038008
jmp 0x1003813f
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 0x20]
mov ecx, edi
push ebx
mov eax, dword [eax]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
push eax
call fcn.1003e012
mov esi, dword [ebp - 0x28]
cmp esi, dword [edi]
je 0x1003804c
mov eax, dword [ebx]
cmp eax, dword [esi + 0x10]
jge 0x10038070
push ecx
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], ebx
push eax
push ecx
mov ecx, edi
call fcn.1003e179
push eax
add eax, 0x10
mov ecx, edi
push eax
push esi
lea eax, [ebp - 0x30]
push eax
call fcn.1003e1a9
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x18], eax
jmp 0x1003813f
mov dword [ebp + 0x1c], 0x4ad1
cmp dword [ebp + 0x1c], 0x4c22
jle 0x100380bd
call fcn.100337a3
xor esi, esi
xor edi, edi
mov eax, edi
mov ecx, 0x100788d8
xor eax, esi
cdq
push edx
push eax
call fcn.10001e5c
inc edi
cmp edi, 0x792e
jl 0x1003809a
inc esi
cmp esi, 0x2dc9
jl 0x10038098
mov dword [ebp - 4], 2
cmp dword [ebp + 0x1c], 0x474b
jge 0x100380dc
mov edx, str.qizssp_dwrpditx_ryhsslly_xrwhul_yxrtg_efegif_vodvzyy_cgsbf_rlm_kbtxmuj
mov ecx, 0x100788d8
call fcn.10003d65
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 8], 0
je 0x1003811c
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x1003813f
push ecx
push 0
push ecx
push ecx
mov ecx, 0x721c
call fcn.10038e33
add esp, 0x10
jmp 0x1003813f
mov edx, dword [ebp + 0x10]
mov dword [edx], 0
cmp dword [edx], 3
jge 0x1003813f
mov esi, dword [ebp + 0x24]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 2
inc dword [edx]
cmp dword [edx], 3
jl 0x1003812d
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret