Function at 0x10036f97
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005be1f
call fcn.1005a9e0
sub esp, 0x38
cmp byte [ebp + 0x2c], 0
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
je 0x100371d9
mov dword [ebp - 0x18], 0x7875
cmp dword [ebp - 0x18], 0x7a41
jle 0x1003701f
call dword [sym.imp.USER32.dll_GetMessageTime]
xor esi, esi
mov ebx, esi
mov dword [ebp + 0x2c], 0x2f42
xor edi, edi
mov eax, ebx
mov ecx, 0x10076818
xor eax, edi
cdq
push edx
push eax
call fcn.10001a30
inc edi
cmp edi, 0x49c0
jl 0x10036fdc
dec ebx
dec dword [ebp + 0x2c]
jne 0x10036fda
inc esi
cmp esi, 0x801a
jl 0x10036fd1
push 0
push 0x143
push 0x95e
push 0x1e54
call dword [sym.imp.GDI32.dll_GetDIBColorTable]
mov edi, dword [ebp - 0x1c]
and dword [ebp - 4], 0
cmp dword [ebp - 0x18], 0x75d7
jge 0x1003705a
mov edx, str.leasbr_vkk_ndanyi_lcjeia_hukoemub_wrkdedpp
mov ecx, 0x10076818
call fcn.1000349f
jmp 0x1003705a
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 0x30], 0
je 0x10037126
mov dword [ebp - 0x24], 0x15c2
cmp dword [ebp - 0x24], 0x18b9
jle 0x100370ff
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0x20], esi
inc ebx
xor edi, edi
mov dword [ebp - 0x18], edi
mov eax, esi
xor ecx, ecx
cdq
idiv edi
mov dword [ebp + 0x2c], ecx
mov eax, edx
mov dword [ebp - 0x28], eax
cdq
mov edi, 0x16f2
idiv ecx
mov esi, edx
mov eax, esi
lea ecx, [ebp - 0x40]
cdq
push edx
push eax
call fcn.10003aad
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100370b9
mov eax, dword [eax]
push eax
call fcn.100445e8
pop ecx
push 0
push ebx
lea ecx, [ebp - 0x40]
call fcn.10001e5d
inc esi
dec edi
jne 0x100370a2
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp - 0x28]
inc ecx
mov dword [ebp + 0x2c], ecx
cmp ecx, 0x17ca
jl 0x10037098
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x20]
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x163
jl 0x10037089
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x667
jl 0x10037084
mov eax, dword [ebp + 0x34]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x14]
sub dword [eax], ecx
cmp dword [ebp - 0x24], 0x1527
jge 0x10037203
push str.wyrymrkr_brlnlbk_lisi_wzyc_qxbepqd_iuhj_imy_lmd_rmc_czuohp_wad_dusvkg_wmay_ckc
call fcn.100445e8
pop ecx
jmp 0x10037203
mov edx, dword [ebp + 0x3c]
cmp dword [edx], 0
je 0x10037130
mov eax, dword [edi]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov dword [ecx], eax
mov eax, dword [ecx]
mov eax, dword [edx]
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, 0xfffffffe
mov eax, dword [ebp + 0x18]
setne cl
cmp dword [edx], ecx
jle 0x10037158
cmp dword [eax], 0
je 0x10037158
xor ebx, ebx
inc ebx
mov edx, ebx
jmp 0x1003715d
xor ebx, ebx
xor edx, edx
inc ebx
mov esi, dword [ebp + 0x38]
mov ecx, dword [esi]
mov eax, dword [eax]
imul ecx, edx
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp + 0x3c]
setg dl
xor ecx, ecx
mov eax, dword [eax]
cmp edx, eax
mov eax, dword [ebp + 0x28]
sete cl
xor edx, edx
cmp ecx, 0x82bc
mov eax, dword [eax]
setg dl
add eax, edx
mov dword [esi], eax
mov eax, dword [ebp + 0x20]
mov ecx, dword [esi]
add ecx, dword [eax]
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
cmp ecx, dword [eax + 8]
je 0x100371a4
cmp dword [edi], 0
jne 0x100371a6
xor ebx, ebx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x28]
mov edi, dword [eax]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ecx]
mov edx, dword [eax]
mov eax, dword [eax]
mov esi, dword [eax + ecx*4]
xor eax, eax
cmp ebx, 0x7c3cb878
mov dword [edx + edi*4], esi
setl al
xor ecx, ecx
cmp esi, eax
mov eax, dword [ebp + 0x1c]
sete cl
mov eax, dword [eax]
mov dword [eax + 8], ecx
jmp 0x10037203
cmp byte [ebp + 0x24], 0
je 0x100371fb
cmp byte [edx], 0
je 0x10037203
push ecx
push 1
push 0x3412
mov edx, 0x423d
call fcn.10036e25
add esp, 0xc
jmp 0x10037203
push 0
call dword [sym.imp.USER32.dll_CreateIconIndirect]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret