Function at 0x4036f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
xor ebp, ebp
cmp dword [esp + 0xc], ebp
jbe 0x40399e
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetClipCursor]
push esi
mov esi, dword [sym.imp.USER32.dll_ReleaseDC]
push edi
mov edi, dword [sym.imp.USER32.dll_CloseDesktop]
push 0
push 0
call esi
push 0
call edi
push 0
call ebx
mov ecx, dword [esp + 0x14]
push 0
push 0
xor byte [ecx + ebp], 0x4b
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x10
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x12
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x7a
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
xor byte [eax + ebp], 0x79
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
xor byte [eax + ebp], 0xf7
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xec
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x89
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
xor byte [eax + ebp], 0x45
push 0
push 0
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xf
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x4c
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xb8
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xcf
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x8c
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x79
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x17
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 8
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
add byte [eax + ebp], 0xe
push 0
push 0
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
xor byte [eax + ebp], 0x89
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
xor byte [eax + ebp], 0xdf
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x85
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x9a
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x2f
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x54
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x5c
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xd8
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
xor byte [eax + ebp], 0x9f
push 0
push 0
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xa7
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
add byte [eax + ebp], 0xc7
inc ebp
cmp ebp, dword [esp + 0x18]
jb 0x403712
pop edi
pop esi
pop ebx
pop ebp
ret