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], 0x9e
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x84
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xa1
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xcc
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
xor byte [eax + ebp], 0xbe
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
xor byte [eax + ebp], 9
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x86
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x18
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
xor byte [eax + ebp], 0x20
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], 0x40
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x5d
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xb7
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x94
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xf1
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xc1
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x41
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xa3
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
add byte [eax + ebp], 0x7e
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], 5
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
xor byte [eax + ebp], 0xc
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x3c
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x3c
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], 0x66
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0xf4
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
push 0
push 0
add byte [eax + ebp], 0x2d
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
xor byte [eax + ebp], 0x40
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], 0x24
call esi
push 0
call edi
push 0
call ebx
mov eax, dword [esp + 0x14]
add byte [eax + ebp], 0xe6
inc ebp
cmp ebp, dword [esp + 0x18]
jb 0x403712
pop edi
pop esi
pop ebx
pop ebp
ret