Function at 0x439ac0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
push rbx
sub rsp, 0x38
mov rbx, qword [0x006d1040]
mov r8, qword [rdx + 8]
mov rdx, qword [rdx]
mov rsi, rcx
mov rax, qword [rbx]
mov qword [rsp + 0x28], rax
xor eax, eax
call fcn.00438e30
mov rcx, qword [rsp + 0x28]
xor rcx, qword [rbx]
mov rax, rsi
jne 0x43926a
add rsp, 0x38
pop rbx
pop rsi
ret
call fcn.00582f30
nop
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, qword [0x006d1040]
lea rbp, [rcx + 0x10]
mov r12, r8
lea r8, [0x0068eafc]
mov rsi, rdx
mov rbx, rcx
mov rdi, qword [rax]
mov qword [rsp + 0x48], rdi
xor edi, edi
mov rdx, r8
mov qword [rcx], rbp
call fcn.00437c30
lea rdx, [r12 + 4]
movabs rcx, 0xcccccccccccccccd
mov rax, rdx
mul rcx
mov rcx, rbx
shr rdx, 2
shl rdx, 3
call fcn.00642500
add r12, rsi
cmp rsi, r12
jae 0x4395d5
lea rdi, [rsi + 1]
lea r13, str.abcdefghijklmnopqrstuvwxyz234567
movzx esi, byte [rsi]
jmp 0x439580
movzx ecx, byte [rsp + 0x3f]
shl esi, 2
and esi, 0x1c
cmp r12, rdi
mov byte [rax + r14], cl
mov rax, qword [rbx]
mov qword [rbx + 8], r15
mov byte [rax + r14 + 1], 0
jbe 0x4397e0
movzx r14d, byte [rdi]
mov edx, 0xf
mov r15d, r14d
sar r15d, 6
or esi, r15d
movsxd rsi, esi
movzx eax, byte [r13 + rsi]
mov rsi, qword [rbx + 8]
lea r15, [rsi + 1]
mov byte [rsp + 0x3f], al
mov rax, qword [rbx]
cmp rbp, rax
je 0x43934d
mov rdx, qword [rbx + 0x10]
cmp r15, rdx
ja 0x4396e0
movzx ecx, byte [rsp + 0x3f]
mov edx, 0xf
mov byte [rax + rsi], cl
mov rax, qword [rbx]
mov qword [rbx + 8], r15
mov byte [rax + rsi + 1], 0
mov eax, r14d
mov rsi, qword [rbx + 8]
sar eax, 1
and eax, 0x1f
movzx eax, byte [r13 + rax]
lea r15, [rsi + 1]
mov byte [rsp + 0x3f], al
mov rax, qword [rbx]
cmp rbp, rax
je 0x439395
mov rdx, qword [rbx + 0x10]
cmp r15, rdx
ja 0x4396b4
movzx ecx, byte [rsp + 0x3f]
mov byte [rax + rsi], cl
mov rax, qword [rbx]
mov qword [rbx + 8], r15
mov byte [rax + rsi + 1], 0
mov esi, r14d
lea rax, [rdi + 1]
shl esi, 4
and esi, 0x10
cmp r12, rax
jbe 0x439702
movzx r15d, byte [rdi + 1]
mov edx, 0xf
mov r14d, r15d
sar r14d, 4
or esi, r14d
movsxd rsi, esi
movzx eax, byte [r13 + rsi]
mov rsi, qword [rbx + 8]
lea r14, [rsi + 1]
mov byte [rsp + 0x3f], al
mov rax, qword [rbx]
cmp rbp, rax
je 0x4393fd
mov rdx, qword [rbx + 0x10]
cmp r14, rdx
ja 0x439692
movzx ecx, byte [rsp + 0x3f]
mov byte [rax + rsi], cl
mov rax, qword [rbx]
mov qword [rbx + 8], r14
mov byte [rax + rsi + 1], 0
lea esi, [r15 + r15]
lea rax, [rdi + 2]
and esi, 0x1e
cmp r12, rax
jbe 0x4397c0
movzx r15d, byte [rdi + 2]
mov edx, 0xf
mov r14d, r15d
sar r14d, 7
or esi, r14d
movsxd rsi, esi
movzx eax, byte [r13 + rsi]
mov rsi, qword [rbx + 8]
lea r14, [rsi + 1]
mov byte [rsp + 0x3f], al
mov rax, qword [rbx]
cmp rbp, rax
je 0x439463
mov rdx, qword [rbx + 0x10]
cmp r14, rdx
ja 0x439670
movzx ecx, byte [rsp + 0x3f]
mov edx, 0xf
mov byte [rax + rsi], cl
mov rax, qword [rbx]
mov qword [rbx + 8], r14
mov byte [rax + rsi + 1], 0
mov eax, r15d
mov rsi, qword [rbx + 8]
sar eax, 2
and eax, 0x1f
movzx eax, byte [r13 + rax]
lea r14, [rsi + 1]
mov byte [rsp + 0x3f], al
mov rax, qword [rbx]
cmp rbp, rax
je 0x4394ac
mov rdx, qword [rbx + 0x10]
cmp r14, rdx
ja 0x439644
movzx ecx, byte [rsp + 0x3f]
mov byte [rax + rsi], cl
mov rax, qword [rbx]
mov qword [rbx + 8], r14
mov byte [rax + rsi + 1], 0
lea esi, [r15*8]
lea rax, [rdi + 3]
and esi, 0x18
cmp r12, rax
jbe 0x4397d0
movzx r15d, byte [rdi + 3]
mov edx, 0xf
mov r14d, r15d
sar r15d, 5
or esi, r15d
movsxd rsi, esi
movzx eax, byte [r13 + rsi]
mov rsi, qword [rbx + 8]
lea r15, [rsi + 1]
mov byte [rsp + 0x3f], al
mov rax, qword [rbx]
cmp rbp, rax
je 0x439516
mov rdx, qword [rbx + 0x10]
cmp r15, rdx
ja 0x439622
movzx ecx, byte [rsp + 0x3f]
and r14d, 0x1f
mov edx, 0xf
mov byte [rax + rsi], cl
mov rax, qword [rbx]
mov qword [rbx + 8], r15
movzx r15d, byte [r13 + r14]
mov byte [rax + rsi + 1], 0
mov rax, qword [rbx]
mov rsi, qword [rbx + 8]
cmp rbp, rax
lea r14, [rsi + 1]
je 0x439556
mov rdx, qword [rbx + 0x10]
cmp r14, rdx
ja 0x439600
mov byte [rax + rsi], r15b
mov rax, qword [rbx]
mov qword [rbx + 8], r14
mov byte [rax + rsi + 1], 0
lea rax, [rdi + 4]
cmp r12, rax
jbe 0x4395d5
add rdi, 5
movzx esi, byte [rdi - 1]
mov eax, esi
mov r14, qword [rbx + 8]
mov edx, 0xf
sar eax, 3
cdqe
movzx eax, byte [r13 + rax]
lea r15, [r14 + 1]
mov byte [rsp + 0x3f], al
mov rax, qword [rbx]
cmp rbp, rax
je 0x4395aa
mov rdx, qword [rbx + 0x10]
cmp r15, rdx
jbe 0x4392f4
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov rcx, rbx
call fcn.006428e0
mov rax, qword [rbx]
jmp 0x4392f4
mov rcx, qword [0x006d1040]
mov rax, rbx
mov rdi, qword [rsp + 0x48]
xor rdi, qword [rcx]
jne 0x439812
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.006428e0
mov rax, qword [rbx]
jmp 0x43955f
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.006428e0
mov rax, qword [rbx]
jmp 0x43951f
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.006428e0
mov rax, qword [rbx]
jmp 0x4394b5
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.006428e0
mov rax, qword [rbx]
jmp 0x43946c
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.006428e0
mov rax, qword [rbx]
jmp 0x439406
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.006428e0
mov rax, qword [rbx]
jmp 0x43939e
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.006428e0
mov rax, qword [rbx]
jmp 0x439356
mov edi, 2
mov rax, qword [rbx]
mov edx, 0xf
cmp rbp, rax
je 0x439718
mov rdx, qword [rbx + 0x10]
movsxd rsi, esi
movzx r13d, byte [r13 + rsi]
mov rsi, qword [rbx + 8]
lea r12, [rsi + 1]
cmp r12, rdx
ja 0x4397f0
mov byte [rax + rsi], r13b
mov rax, qword [rbx]
mov qword [rbx + 8], r12
mov byte [rax + rsi + 1], 0
lea rax, [0x0068f0a0]
mov r13d, dword [rax + rdi*4]
test r13d, r13d
jle 0x4395d5
xor edi, edi
jmp 0x43977c
mov byte [rax + rsi], 0x3d
mov rax, qword [rbx]
add edi, 1
cmp edi, r13d
mov qword [rbx + 8], r12
mov byte [rax + rsi + 1], 0
je 0x4395d5
mov rax, qword [rbx]
mov rsi, qword [rbx + 8]
mov edx, 0xf
cmp rbp, rax
lea r12, [rsi + 1]
je 0x439795
mov rdx, qword [rbx + 0x10]
cmp r12, rdx
jbe 0x439760
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.006428e0
mov rax, qword [rbx]
jmp 0x439760
mov edi, 3
jmp 0x439707
mov edi, 4
jmp 0x439707
mov edi, 1
jmp 0x439707
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.006428e0
mov rax, qword [rbx]
jmp 0x439732
call fcn.00582f30
mov rcx, qword [rbx]
mov rsi, rax
cmp rcx, rbp
je 0x439827
call fcn.00670500
mov rcx, rsi
call fcn.0058e700
nop
push rsi
push rbx
sub rsp, 0x38
mov rbx, qword [0x006d1040]
mov r8, qword [rdx + 8]
mov rdx, qword [rdx]
mov rsi, rcx
mov rax, qword [rbx]
mov qword [rsp + 0x28], rax
xor eax, eax
call 0x439270
mov rcx, qword [rsp + 0x28]
xor rcx, qword [rbx]
mov rax, rsi
jne 0x43986a
add rsp, 0x38
pop rbx
pop rsi
ret
call fcn.00582f30
nop
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov r14, qword [0x006d1040]
mov rdi, rcx
mov rbx, rdx
mov r13, r8
mov rax, qword [r14]
mov qword [rsp + 0x28], rax
xor eax, eax
test r8, r8
je 0x4398a3
mov byte [r8], 0
mov rcx, rbx
mov qword [rdi], 0
mov qword [rdi + 8], 0
mov qword [rdi + 0x10], 0
call sub.msvcrt.dll_strlen
lea rdx, [rax + rax*2]
mov rcx, rdi
shr rdx, 2
call fcn.0063f5a0
movzx eax, byte [rbx]
lea rsi, [0x0068f0c0]
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x4399a0
movzx edx, byte [rbx + 1]
lea rbp, [rbx + 1]
mov ebx, dword [rsi + rdx*4]
cmp ebx, 0xffffffff
je 0x439996
lea r12, [rsp + 0x27]
mov edx, ebx
shl eax, 2
mov rcx, rdi
sar edx, 4
or eax, edx
mov rdx, r12
mov byte [rsp + 0x27], al
call fcn.0063f470
movzx edx, byte [rbp + 1]
and ebx, 0xf
mov r15d, dword [rsi + rdx*4]
mov rax, rdx
cmp r15d, 0xffffffff
je 0x4399d1
mov eax, r15d
shl ebx, 4
mov rdx, r12
sar eax, 2
mov rcx, rdi
or ebx, eax
mov byte [rsp + 0x27], bl
call fcn.0063f470
movzx eax, byte [rbp + 2]
and r15d, 3
mov rdx, rax
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x4399c0
shl r15d, 6
mov rdx, r12
mov rcx, rdi
or r15d, eax
mov byte [rsp + 0x27], r15b
call fcn.0063f470
movzx eax, byte [rbp + 3]
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x4399a0
add rbp, 4
movzx edx, byte [rbp]
mov ebx, dword [rsi + rdx*4]
cmp ebx, 0xffffffff
jne 0x439901
test r13, r13
je 0x4399a0
mov byte [r13], 1
mov rcx, qword [rsp + 0x28]
xor rcx, qword [r14]
mov rax, rdi
jne 0x4399f0
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r13, r13
je 0x4399a0
test r15d, r15d
jne 0x43999b
cmp dl, 0x3d
jne 0x43999b
jmp 0x4399e4
test r13, r13
je 0x4399a0
cmp al, 0x3d
jne 0x43999b
test ebx, ebx
jne 0x43999b
cmp byte [rbp + 2], 0x3d
jne 0x43999b
movzx eax, byte [rbp + 3]
cmp dword [rsi + rax*4], 0xffffffff
jne 0x43999b
jmp 0x4399a0
call fcn.00582f30
mov rcx, qword [rdi]
mov rbx, rax
test rcx, rcx
je 0x439a05
call fcn.00670500
mov rcx, rbx
call fcn.0058e700
nop
nop
push rsi
push rbx
sub rsp, 0x48
mov rsi, qword [0x006d1040]
mov rdx, qword [rdx]
xor r8d, r8d
mov rbx, rcx
lea rcx, [rsp + 0x20]
mov rax, qword [rsi]
mov qword [rsp + 0x38], rax
xor eax, eax
call 0x439870
mov rcx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x28]
lea rax, [rbx + 0x10]
mov qword [rbx], rax
cmp rcx, r8
jne 0x439a80
mov qword [rbx + 8], 0
mov byte [rbx + 0x10], 0
test rcx, rcx
je 0x439a66
call fcn.00670500
mov rdx, qword [rsp + 0x38]
xor rdx, qword [rsi]
mov rax, rbx
jne 0x439a92
add rsp, 0x48
pop rbx
pop rsi
ret
mov rdx, rcx
mov rcx, rbx
call fcn.00437c30
mov rcx, qword [rsp + 0x20]
jmp 0x439a5c
call fcn.00582f30
mov rcx, qword [rsp + 0x20]
mov rbx, rax
test rcx, rcx
je 0x439aa9
call fcn.00670500
mov rcx, rbx
call fcn.0058e700
nop
nop dword [rax]
nop word cs:[rax + rax]
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov r14, qword [0x006d1040]
mov rdi, rcx
mov rbx, rdx
mov r13, r8
mov rax, qword [r14]
mov qword [rsp + 0x28], rax
xor eax, eax
test r8, r8
je 0x439af3
mov byte [r8], 0
mov rcx, rbx
mov qword [rdi], 0
mov qword [rdi + 8], 0
mov qword [rdi + 0x10], 0
call sub.msvcrt.dll_strlen
lea rdx, [rax + rax*4]
mov rcx, rdi
shr rdx, 3
call fcn.0063f5a0
movzx eax, byte [rbx]
lea rsi, [0x0068eca0]
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x439c7a
movzx edx, byte [rbx + 1]
lea rbp, [rbx + 1]
mov ebx, dword [rsi + rdx*4]
cmp ebx, 0xffffffff
je 0x439c70
lea r12, [rsp + 0x27]
mov edx, ebx
shl eax, 3
mov rcx, rdi
sar edx, 2
or eax, edx
mov rdx, r12
mov byte [rsp + 0x27], al
call fcn.0063f470
movzx eax, byte [rbp + 1]
and ebx, 3
mov rdx, rax
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x439d00
shl ebx, 5
or ebx, eax
movzx eax, byte [rbp + 2]
mov r15d, dword [rsi + rax*4]
cmp r15d, 0xffffffff
je 0x439c70
mov eax, r15d
add ebx, ebx
mov rdx, r12
sar eax, 4
mov rcx, rdi
or ebx, eax
mov byte [rsp + 0x27], bl
call fcn.0063f470
movzx edx, byte [rbp + 3]
and r15d, 0xf
mov ebx, dword [rsi + rdx*4]
mov rax, rdx
cmp ebx, 0xffffffff
je 0x439ce0
mov eax, ebx
shl r15d, 4
mov rdx, r12
sar eax, 1
mov rcx, rdi
or r15d, eax
mov byte [rsp + 0x27], r15b
call fcn.0063f470
movzx eax, byte [rbp + 4]
and ebx, 1
mov rdx, rax
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x439cb1
shl ebx, 5
or ebx, eax
movzx eax, byte [rbp + 5]
mov r15d, dword [rsi + rax*4]
cmp r15d, 0xffffffff
je 0x439c70
mov eax, r15d
shl ebx, 2
mov rdx, r12
sar eax, 3
mov rcx, rdi
or ebx, eax
mov byte [rsp + 0x27], bl
call fcn.0063f470
movzx eax, byte [rbp + 6]
and r15d, 7
mov rdx, rax
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x439ca0
shl r15d, 5
mov rdx, r12
mov rcx, rdi
or r15d, eax
mov byte [rsp + 0x27], r15b
call fcn.0063f470
movzx eax, byte [rbp + 7]
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x439c7a
add rbp, 8
movzx edx, byte [rbp]
mov ebx, dword [rsi + rdx*4]
cmp ebx, 0xffffffff
jne 0x439b51
nop
test r13, r13
je 0x439c7a
mov byte [r13], 1
mov rcx, qword [rsp + 0x28]
xor rcx, qword [r14]
mov rax, rdi
jne 0x439d30
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r13, r13
je 0x439c7a
cmp dl, 0x3d
jne 0x439c75
test r15d, r15d
jne 0x439c75
jmp 0x439ccb
test r13, r13
je 0x439c7a
cmp dl, 0x3d
jne 0x439c75
test bl, bl
jne 0x439c75
cmp byte [rbp + 5], 0x3d
jne 0x439c75
cmp byte [rbp + 6], 0x3d
jne 0x439c75
movzx eax, byte [rbp + 7]
cmp dword [rsi + rax*4], 0xffffffff
jne 0x439c75
jmp 0x439c7a
test r13, r13
je 0x439c7a
cmp al, 0x3d
jne 0x439c75
test r15d, r15d
jne 0x439c75
cmp byte [rbp + 4], 0x3d
jne 0x439c75
jmp 0x439cbf
test r13, r13
je 0x439c7a
cmp dl, 0x3d
jne 0x439c75
test ebx, ebx
jne 0x439c75
cmp byte [rbp + 2], 0x3d
jne 0x439c75
cmp byte [rbp + 3], 0x3d
jne 0x439c75
jmp 0x439cee
call fcn.00582f30
mov rcx, qword [rdi]
mov rbx, rax
test rcx, rcx
je 0x439d45
call fcn.00670500
mov rcx, rbx
call fcn.0058e700
nop
nop
push rsi
push rbx
sub rsp, 0x48
mov rsi, qword [0x006d1040]
mov rdx, qword [rdx]
xor r8d, r8d
mov rbx, rcx
lea rcx, [rsp + 0x20]
mov rax, qword [rsi]
mov qword [rsp + 0x38], rax
xor eax, eax
call 0x439ac0
mov rcx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x28]
lea rax, [rbx + 0x10]
mov qword [rbx], rax
cmp rcx, r8
jne 0x439dc0
mov qword [rbx + 8], 0
mov byte [rbx + 0x10], 0
test rcx, rcx
je 0x439da6
call fcn.00670500
mov rdx, qword [rsp + 0x38]
xor rdx, qword [rsi]
mov rax, rbx
jne 0x439dd2
add rsp, 0x48
pop rbx
pop rsi
ret
mov rdx, rcx
mov rcx, rbx
call fcn.00437c30
mov rcx, qword [rsp + 0x20]
jmp 0x439d9c
call fcn.00582f30
mov rcx, qword [rsp + 0x20]
mov rbx, rax
test rcx, rcx
je 0x439de9
call fcn.00670500
mov rcx, rbx
call fcn.0058e700
nop
nop dword [rax]
nop word cs:[rax + rax]
push rsi
push rbx
sub rsp, 0x48
mov rbx, qword [0x006d1040]
mov dword [rsp + 0x2c], edx
lea r8, [rsp + 0x2c]
lea rdx, [0x0068ebe4]
mov rsi, rcx
mov rax, qword [rbx]
mov qword [rsp + 0x38], rax
xor eax, eax
call fcn.005a5830
mov rdx, qword [rsp + 0x38]
xor rdx, qword [rbx]
mov rax, rsi
jne 0x439e43
add rsp, 0x48
pop rbx
pop rsi
ret
call fcn.00582f30
nop
nop dword [rax]
push rsi
push rbx
sub rsp, 0x48
mov rbx, qword [0x006d1040]
mov qword [rsp + 0x28], rdx
lea r8, [rsp + 0x28]
lea rdx, [0x0068ebe4]
mov rsi, rcx
mov rax, qword [rbx]
mov qword [rsp + 0x38], rax
xor eax, eax
call fcn.005a67b0
mov rdx, qword [rsp + 0x38]
xor rdx, qword [rbx]
mov rax, rsi
jne 0x439e94
add rsp, 0x48
pop rbx
pop rsi
ret
call fcn.00582f30
nop
nop word [rax + rax]