Function at 0x436de0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x48
mov dword [esp + 8], 0x9b16990e
mov dword [esp + 0xc], 0x97029508
mov dword [esp + 0x10], 0x93449104
mov dword [esp + 0x14], 0x8f1a8d10
mov dword [esp + 0x18], 0x8b8a891c
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov byte [esp + 0x24], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1c
ja 0x436e8e
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax - 0x6f8638bc]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add eax, ecx
add eax, 0x9079c744
add esi, ecx
lea ecx, [edx + esi]
inc ecx
mov edx, ecx
xor edx, eax
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov dword [esp + 4], ecx
mov eax, dword [esp + 4]
add al, 0x24
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x1d
jb 0x436e40
lea eax, [esp + 8]
push eax
call fcn.00438cc0
add esp, 4
mov ecx, eax
mov dword [0x44ecf4], eax
xor edx, edx
test eax, eax
sete dl
xor eax, eax
jmp dword [edx*4 + 0x4447b4]
jmp dword [0x4447bc]
push 0xde118a15
push ecx
call fcn.00439420
add esp, 8
mov dword [0x44ecfc], eax
push 0x9b1cb500
push dword [0x44ecf4]
call fcn.00439420
add esp, 8
mov dword [0x44ed00], eax
push 0xb3a80508
push dword [0x44ecf4]
call fcn.00439420
add esp, 8
mov dword [0x44ed04], eax
push 0x1f488771
push dword [0x44ecf4]
call fcn.00439420
add esp, 8
mov dword [0x446cd8], eax
mov dword [esp + 8], 0x347014b
mov dword [esp + 0xc], 0x7480556
mov dword [esp + 0x10], 0xb46094d
mov dword [esp + 0x14], 0xf3c0d3f
mov dword [esp + 0x18], 0x1356113e
mov dword [esp + 0x1c], 0x175a1558
mov word [esp + 0x20], 0x1918
mov dword [esp + 0x22], 0
mov dword [esp + 0x26], 0
mov dword [esp + 0x2a], 0
mov byte [esp + 0x2e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x26
ja 0x436fb4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x7d897900
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x27
jb 0x436f80
lea eax, [esp + 8]
push eax
call fcn.00438cc0
add esp, 4
mov dword [0x446cd0], eax
jmp case.0x436eab.2
lea eax, [esp + 8]
push eax
call fcn.00438cc0
add esp, 4
mov dword [0x446cd0], eax
jmp dword [0x4447c8]
push 0xde118a15
push dword [0x44ecf4]
call fcn.00439420
add esp, 8
mov dword [0x44ecfc], eax
push 0x9b1cb500
push dword [0x44ecf4]
call fcn.00439420
add esp, 8
mov dword [0x44ed00], eax
push 0xb3a80508
push dword [0x44ecf4]
call fcn.00439420
add esp, 8
mov dword [0x44ed04], eax
push 0x1f488771
push dword [0x44ecf4]
call fcn.00439420
add esp, 8
mov dword [0x446cd8], eax
mov dword [esp + 8], 0x347014b
mov dword [esp + 0xc], 0x7480556
mov dword [esp + 0x10], 0xb46094d
mov dword [esp + 0x14], 0xf3c0d3f
mov dword [esp + 0x18], 0x1356113e
mov dword [esp + 0x1c], 0x175a1558
mov word [esp + 0x20], 0x1918
mov dword [esp + 0x22], 0
mov dword [esp + 0x26], 0
mov dword [esp + 0x2a], 0
mov byte [esp + 0x2e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x26
ja 0x436fd0
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x7d897900
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x27
jb 0x4370b0
jmp 0x436fd0
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4447cc]
push 0x2df68b61
push eax
call fcn.00439420
add esp, 8
mov dword [0x4459c4], eax
push 0xd4ed4ea7
push dword [0x446cd0]
call fcn.00439420
add esp, 8
mov dword [0x445ac8], eax
push 0xe174828e
push dword [0x446cd0]
call fcn.00439420
add esp, 8
mov dword [0x446cf0], eax
call fcn.00437910
movzx eax, al
jmp dword [eax*4 + 0x4447e4]
mov ecx, dword [case.0x436eab.1]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor eax, eax
jmp dword [0x4447e0]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x34], 0
cmp ecx, 0xb
setne al
jmp dword [eax*4 + 0x4447fc]
mov ecx, 1
jmp dword [0x44480c]
jmp dword [0x444818]
mov dword [esp + 8], 0xabaaadfc
lea eax, [esp + 0xc]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja case.0x436eab.25
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + 0x1a]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x4ed5661a
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x4a
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x437210
jmp case.0x436eab.25
jmp dword [0x444820]
mov dword [esp + 8], 0xabaaadfc
lea eax, [esp + 0xc]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x437250
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + 0x1a]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x4ed5661a
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x4a
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x437290
jmp 0x437250
mov eax, dword [esp + 0x34]
mov eax, dword [eax*4 + 0x43de3c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 8]
mov eax, dword fs:[eax]
mov dword [esp + 0x38], eax
mov eax, dword [0x444830]
nop
jmp eax
xor eax, eax
jmp dword [ecx*4 + 0x44492c]
mov ecx, dword [0x444998]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx