Function at 0x4036ba
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov edi, dword [esp + 0x20]
mov eax, 0xa56b29dd
add eax, dword [0x446d20]
or eax, dword [0x4466ac]
and dword [0x447608], eax
mov eax, dword [0x44480c]
xor dword [0x443c70], eax
mov eax, dword [0x443ad8]
sar eax, 3
xor eax, 0x5a92a213
cmp eax, 0xd1157493
jl 0x403700
mov eax, dword [0x446ee0]
mov esi, dword [esp + 0x1c]
and dword [0x447818], 0x3a11bd8e
lea eax, [edi + 4]
push eax
call sub.msvcrt.dll_malloc
add esp, 4
mov ebx, eax
mov dword [esp], ebx
or word [0x441870], 0x2b1
or dword [0x4473b0], 0xc914c43
jmp 0x4037a0
add dword [0x4469a4], 0x76828900
mov byte [eax], 0
movsx ecx, word [0x442326]
and ecx, 0x676fa609
mov dword [0x4455ac], ecx
inc dword [0x445f4c]
mov esi, dword [eax - 3]
add eax, 0xfffffffd
imul ecx, dword [0x444298], 0x406c79d4
mov dword [0x444298], ecx
mov ecx, dword [0x4443b8]
and ecx, dword [0x446484]
and ecx, 0xe3f4cdc3
mov dword [0x446484], ecx
imul ecx, dword [0x447540], 0x70678b00
and ecx, 0x13956b00
xor dword [0x4459c4], ecx
mov ebx, eax
imul eax, dword [0x446e00], 0xb17d8ebf
mov dword [0x446e00], eax
mov al, byte [esi + 0x43a008]
mov byte [ebx], al
add dword [0x4451c0], 0x61a998c7
mov eax, dword [0x4478dc]
mov al, byte [eax + esi]
xor byte [ebx], al
imul eax, dword [0x44685c], 0x506d68f7
mov dword [0x44685c], eax
add word [0x4433a2], 0x36d1
add dword [0x444674], 0xe771748c
mov al, byte [esi + 0x43a009]
mov byte [ebx + 1], al
mov eax, dword [0x4464e8]
or eax, 0x7161
movzx ecx, word [0x442b46]
xor ecx, eax
mov word [0x442b46], cx
mov eax, dword [0x4478dc]
mov al, byte [eax + esi + 1]
xor byte [ebx + 1], al
imul eax, dword [0x443d9c], 0xaf08f000
xor eax, 0xf27df5fd
or dword [0x4466d4], eax
mov eax, dword [0x443750]
mov ecx, 0x10884100
and eax, ecx
imul eax, dword [0x445600]
mov dword [0x445600], eax
or word [0x44207a], 0x1d2b
movzx edx, word [ebx]
mov dword [esp + 4], edx
mov eax, dword [0x444e20]
mov ecx, 0xb94011a0
or eax, ecx
sub dword [0x4434e0], eax
lea eax, [esi + 0x43a00a]
lea ebp, [edx + 3]
push ebp
push eax
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [0x4468ec], 0x336dc428
mov eax, dword [0x447718]
shl eax, 9
mov ecx, 0xca6cc04d
sub ecx, eax
movsx eax, word [0x44343c]
mov edx, 0x58be716a
sub edx, eax
cmp ecx, edx
jge 0x4038cb
mov eax, dword [0x4457e0]
shr eax, 1
mov ecx, dword [0x4443c4]
sub eax, ecx
movzx ecx, word [0x441418]
add ecx, eax
mov word [0x441418], cx
jmp 0x4038e9
movsx eax, word [0x442134]
sar eax, 3
add eax, 0x244c20fc
movsx ecx, word [0x442f14]
sub eax, ecx
or dword [0x4469a4], eax
add esi, 2
mov eax, dword [0x44499c]
inc eax
mov dword [0x44499c], eax
imul eax, eax, 0x16f09aa1
or eax, 0x9c0c
movzx ecx, word [0x4430b6]
imul ecx, eax
mov word [0x4430b6], cx
mov ecx, dword [0x4478dc]
movsx eax, word [0x441d8a]
xor eax, 0xa6cafe31
cmp eax, 0xa8e0b42c
jg 0x403936
add dword [0x44416c], 0x4a17ee66
lea eax, [ebx + ebp]
add ecx, esi
mov dword [0x444d40], 0x5a31d194
mov dl, byte [ecx]
xor byte [ebx], dl
or dword [0x446484], 0x75028825
inc ebx
inc ecx
dec ebp
jne 0x40393b
or dword [0x4469dc], 0xd0f92676
sub edi, dword [esp + 4]
jne 0x403734
imul eax, dword [0x444418], 0x72d39076
mov dword [0x444418], eax
mov eax, dword [esp]
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret