Function at 0x180040200
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov rax, qword [0x180099040]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov rax, qword [rcx + 0xc0]
mov rbx, rcx
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], rdx
cmp rax, qword [rcx + 0xc8]
jae 0x180040252
movzx edx, byte [rax]
inc rax
mov qword [rcx + 0xc0], rax
jmp 0x180040275
cmp dword [rcx + 0x30], 0
je 0x180040273
call fcn.1800346c0
mov rax, qword [rbx + 0xc0]
movzx edx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180040275
xor dl, dl
mov ecx, 0x30
mov r8, rbx
movzx r13d, dl
lea rsi, [rcx + rbx]
cmp rax, qword [rbx + 0xc8]
jae 0x1800402a1
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
mov byte [rsp + 0x30], cl
jmp 0x1800402cd
cmp dword [rsi], 0
je 0x1800402c8
mov rcx, rbx
call fcn.1800346c0
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
mov byte [rsp + 0x30], cl
jmp 0x1800402cd
mov byte [rsp + 0x30], 0
cmp rax, qword [rbx + 0xc8]
jae 0x1800402e5
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x18004030a
cmp dword [rsi], 0
je 0x180040308
mov rcx, rbx
call fcn.1800346c0
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x18004030a
xor cl, cl
movzx eax, cl
mov rcx, rbx
mov dword [rsp + 0x40], eax
mov ebp, eax
mov dword [rsp + 0x34], eax
call fcn.1800348d0
mov rcx, rbx
movsxd r15, eax
call fcn.1800348d0
mov rcx, qword [rbx + 0xc0]
mov dword [rsp + 0x60], eax
cmp rcx, qword [rbx + 0xc8]
jae 0x18004034d
movzx edx, byte [rcx]
inc rcx
mov qword [rbx + 0xc0], rcx
jmp 0x180040372
cmp dword [rsi], 0
je 0x180040370
mov rcx, rbx
call fcn.1800346c0
mov rax, qword [rbx + 0xc0]
movzx edx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180040372
xor dl, dl
mov rcx, rbx
movzx edi, dl
call fcn.1800348d0
mov rcx, rbx
call fcn.1800348d0
mov rcx, rbx
call fcn.1800348d0
mov rcx, rbx
mov dword [rsp + 0x3c], eax
call fcn.1800348d0
mov dword [rsp + 0x38], eax
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x1800403bc
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800403e1
cmp dword [rsi], 0
je 0x1800403df
mov rcx, rbx
call fcn.1800346c0
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800403e1
xor cl, cl
movzx edx, cl
mov dword [rsp + 0x68], edx
cmp rax, qword [rbx + 0xc8]
jae 0x180040400
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180040429
cmp dword [rsi], 0
je 0x180040427
mov rcx, rbx
call fcn.1800346c0
mov rax, qword [rbx + 0xc0]
mov edx, dword [rsp + 0x68]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180040429
xor cl, cl
mov esi, dword [rsp + 0x38]
xor r14d, r14d
movzx eax, cl
mov qword [rsp + 0x58], r14
mov dword [rsp + 0x74], r14d
mov dword [rsp + 0x64], r14d
lea r12d, [r14 + 1]
cmp esi, 0x1000000
jg 0x180040c1a
mov r8d, dword [rsp + 0x3c]
cmp r8d, 0x1000000
jg 0x180040c1a
cmp ebp, 8
jb 0x180040470
sub ebp, 8
mov dword [rsp + 0x34], ebp
shr eax, 5
mov ecx, r12d
and eax, r12d
mov ebp, r14d
sub ecx, eax
mov dword [rsp + 0x6c], ecx
cmp byte [rsp + 0x30], r14b
je 0x1800404ab
mov ecx, edi
sub ecx, 8
je 0x1800404a6
sub ecx, 7
je 0x1800404fc
sub ecx, r12d
je 0x1800404fc
sub ecx, 8
je 0x1800404c8
cmp ecx, 8
jne 0x1800404cf
jmp 0x1800404c8
mov edi, r12d
jmp 0x1800404cb
mov ecx, edx
sub ecx, 8
je 0x180040506
sub ecx, 7
je 0x1800404fc
sub ecx, r12d
je 0x1800404ee
sub ecx, 8
je 0x1800404c6
cmp ecx, 8
jne 0x1800404cf
mov edi, edx
shr edi, 3
test edi, edi
jne 0x180040509
mov edx, dword [0x180099fd4]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.bad_format
jmp 0x180040c34
cmp dword [rsp + 0x34], 3
jne 0x1800404fc
mov edi, 2
jmp 0x180040509
mov ebp, r12d
mov edi, 3
jmp 0x180040509
mov edi, r12d
mov rax, qword [rsp + 0x48]
mov dword [rax], r8d
mov rax, qword [rsp + 0x50]
mov dword [rax], esi
test r8d, r8d
js 0x180040c1a
test esi, esi
js 0x180040c1a
je 0x18004053c
mov eax, 0x7fffffff
cdq
idiv esi
cmp r8d, eax
jg 0x180040c1a
mov ecx, esi
imul ecx, r8d
test ecx, ecx
js 0x180040c1a
xor edx, edx
mov eax, 0x7fffffff
div edi
cmp ecx, eax
jg 0x180040c1a
test esi, esi
je 0x180040570
mov eax, 0x7fffffff
cdq
idiv esi
cmp r8d, eax
jg 0x180040bfe
mov eax, esi
imul eax, edi
imul eax, r8d
movsxd rcx, eax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsp + 0x48], rax
mov rdx, rax
test rax, rax
je 0x180040bfe
test r13d, r13d
je 0x1800405d8
cmp qword [rbx + 0x10], r14
je 0x1800405d1
mov ecx, dword [rbx + 0xc8]
sub ecx, dword [rbx + 0xc0]
cmp ecx, r13d
jge 0x1800405d1
mov rax, qword [rbx + 0xc8]
sub r13d, ecx
mov rcx, qword [rbx + 0x28]
mov edx, r13d
mov qword [rbx + 0xc0], rax
call qword [rbx + 0x18]
mov rdx, qword [rsp + 0x48]
jmp 0x1800405d8
add qword [rbx + 0xc0], r13
cmp byte [rsp + 0x30], r14b
jne 0x180040695
mov r8d, dword [rsp + 0x40]
mov r13d, edi
mov dword [rsp + 0x34], ebp
cmp r8d, 8
jae 0x18004085b
mov dword [rsp + 0x34], ebp
test ebp, ebp
jne 0x18004085b
test esi, esi
jle 0x18004068b
mov r15d, edi
imul r15d, dword [rsp + 0x3c]
cmp dword [rsp + 0x6c], r14d
mov r14d, dword [rsp + 0x38]
je 0x180040665
mov eax, r15d
neg eax
movsxd r12, eax
lea eax, [rsi - 1]
imul eax, edi
imul eax, dword [rsp + 0x3c]
movsxd rsi, eax
add rsi, rdx
nop dword [rax + rax]
mov r8d, r15d
mov rdx, rsi
mov rcx, rbx
call fcn.180034740
add rsi, r12
sub r14, 1
jne 0x180040640
mov esi, dword [rsp + 0x38]
mov r15, qword [rsp + 0x48]
jmp 0x180040b8d
movsxd r12, r15d
mov rsi, rdx
nop dword [rax + rax]
mov r8d, r15d
mov rdx, rsi
mov rcx, rbx
call fcn.180034740
add rsi, r12
sub r14, 1
jne 0x180040670
mov esi, dword [rsp + 0x38]
mov r15, qword [rsp + 0x48]
jmp 0x180040b8d
cmp dword [rsp + 0x60], r14d
jne 0x1800406c4
mov rcx, rdx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edx, dword [0x180099fd4]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.bad_palette
jmp 0x180040c34
test r15d, r15d
je 0x180040716
jns 0x1800406db
mov rax, qword [rbx + 0xc8]
mov qword [rbx + 0xc0], rax
jmp 0x180040716
cmp qword [rbx + 0x10], r14
je 0x18004070f
mov ecx, dword [rbx + 0xc8]
sub ecx, dword [rbx + 0xc0]
cmp ecx, r15d
jge 0x18004070f
mov rax, qword [rbx + 0xc8]
sub r15d, ecx
mov rcx, qword [rbx + 0x28]
mov edx, r15d
mov qword [rbx + 0xc0], rax
call qword [rbx + 0x18]
jmp 0x180040716
add qword [rbx + 0xc0], r15
mov r15d, dword [rsp + 0x60]
test r15d, r15d
js 0x180040bf3
xor edx, edx
mov eax, 0x7fffffff
div edi
cmp r15d, eax
jg 0x180040bf3
mov esi, edi
imul esi, r15d
movsxd rcx, esi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsp + 0x58], rax
test rax, rax
je 0x180040bf3
test ebp, ebp
je 0x180040821
mov rsi, rax
cmp edi, 3
je 0x18004077d
mov r8d, 0x16db
lea rdx, str.C:UsersDisoxDesktop_redENGINE_FiveM_main_stb_image.h
lea rcx, str.tga_comp__STBI_rgb
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov dword [rsp + 0x34], ebp
test r15d, r15d
jle 0x18004080e
mov r13d, edi
nop dword [rax]
mov rcx, rbx
call fcn.1800348d0
movzx r8d, ax
mov eax, r8d
shr eax, 0xa
and eax, 0x1f
imul ecx, eax, 0xff
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
shr eax, 5
and r8d, 0x1f
and eax, 0x1f
mov byte [rsi], dl
imul ecx, eax, 0xff
mov eax, 0x84210843
imul ecx
add edx, ecx
imul ecx, r8d, 0xff
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x84210843
mov byte [rsi + 1], dl
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov byte [rsi + 2], dl
add rsi, r13
sub r15, r12
jne 0x180040790
mov esi, dword [rsp + 0x38]
mov r13d, edi
mov rdi, qword [rsp + 0x58]
mov r8d, dword [rsp + 0x40]
jmp 0x18004085e
mov r13d, edi
mov dword [rsp + 0x34], ebp
mov r8d, esi
mov rdx, rax
mov rcx, rbx
mov rdi, rax
call fcn.180034740
test eax, eax
jne 0x180040850
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, rdi
jmp 0x18004069f
mov esi, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x40]
jmp 0x18004085e
mov rdi, r14
mov ecx, dword [rsp + 0x3c]
mov eax, esi
mov r15, qword [rsp + 0x48]
imul eax, ecx
mov esi, r13d
test eax, eax
je 0x180040b07
lea rdx, [rsp + 0x74]
movsxd rcx, r13d
sub r15, rdx
mov qword [rsp + 0x50], rax
mov ebp, r14d
nop word [rax + rax]
cmp r8d, 8
jb 0x180040902
test ebp, ebp
jne 0x1800408f2
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x1800408b9
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800408df
cmp dword [rbx + 0x30], r14d
je 0x1800408dd
mov rcx, rbx
call fcn.1800346c0
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800408df
xor cl, cl
movzx eax, cl
mov ebp, eax
and ebp, 0x7f
inc ebp
shr eax, 7
mov dword [rsp + 0x64], eax
jmp 0x180040902
cmp dword [rsp + 0x64], r14d
je 0x180040902
test r12d, r12d
je 0x180040aac
cmp byte [rsp + 0x30], r14b
je 0x18004099b
cmp dword [rsp + 0x68], 8
jne 0x180040964
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x180040936
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
movzx eax, cl
jmp 0x18004096c
cmp dword [rbx + 0x30], r14d
je 0x18004095d
mov rcx, rbx
call fcn.1800346c0
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
movzx eax, cl
jmp 0x18004096c
xor cl, cl
movzx eax, cl
jmp 0x18004096c
mov rcx, rbx
call fcn.1800348d0
test r13d, r13d
je 0x180040aa1
cmp eax, dword [rsp + 0x60]
mov ecx, r14d
mov r8, rsi
cmovl ecx, eax
imul ecx, r13d
movsxd rdx, ecx
lea rcx, [rsp + 0x74]
add rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
jmp 0x180040aa1
cmp dword [rsp + 0x34], r14d
je 0x180040a42
cmp r13d, 3
je 0x1800409c6
mov r8d, 0x1710
lea rdx, str.C:UsersDisoxDesktop_redENGINE_FiveM_main_stb_image.h
lea rcx, str.tga_comp__STBI_rgb
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov rcx, rbx
call fcn.1800348d0
movzx r8d, ax
mov eax, r8d
shr eax, 0xa
and eax, 0x1f
imul ecx, eax, 0xff
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
shr eax, 5
and r8d, 0x1f
and eax, 0x1f
mov byte [rsp + 0x74], dl
imul ecx, eax, 0xff
mov eax, 0x84210843
imul ecx
add edx, ecx
imul ecx, r8d, 0xff
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x84210843
mov byte [rsp + 0x75], dl
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov byte [rsp + 0x76], dl
jmp 0x180040aa1
mov rdi, r14
test r13d, r13d
je 0x180040aa1
nop word [rax + rax]
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x180040a6f
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180040a95
cmp dword [rbx + 0x30], r14d
je 0x180040a93
mov rcx, rbx
call fcn.1800346c0
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180040a95
xor cl, cl
mov byte [rsp + rdi + 0x74], cl
inc rdi
cmp rdi, rsi
jl 0x180040a50
mov rax, qword [rsp + 0x50]
mov r12d, r14d
movsxd rcx, r13d
mov rdi, r14
test r13d, r13d
je 0x180040ae0
lea rcx, [rsp + 0x74]
mov r8, rsi
add rcx, r15
lea rdx, [rsp + 0x74]
call sub.VCRUNTIME140.dll_memcpy
nop dword [rax]
inc rdi
cmp rdi, rsi
jl 0x180040ad0
mov rax, qword [rsp + 0x50]
movsxd rcx, r13d
mov rdi, qword [rsp + 0x58]
dec ebp
mov r8d, dword [rsp + 0x40]
add r15, rcx
sub rax, 1
mov qword [rsp + 0x50], rax
jne 0x180040890
mov r15, qword [rsp + 0x48]
mov ecx, dword [rsp + 0x3c]
mov esi, dword [rsp + 0x38]
cmp dword [rsp + 0x6c], r14d
je 0x180040b79
test esi, esi
jle 0x180040b79
lea r10d, [rsi - 1]
mov r11d, r13d
imul r10d, r13d
mov ebx, r14d
imul r11d, ecx
imul r10d, ecx
nop dword [rax]
mov r8d, r11d
test r11d, r11d
jle 0x180040b6a
movsxd rax, ebx
movsxd r9, r10d
sub r9, rax
lea rdx, [rax + r15]
nop word [rax + rax]
movzx eax, byte [rdx + r9]
dec r8d
movzx ecx, byte [rdx]
mov byte [rdx], al
mov byte [rdx + r9], cl
lea rdx, [rdx + 1]
test r8d, r8d
jg 0x180040b50
add ebx, r11d
sub r10d, r11d
add r14d, 2
cmp r14d, esi
jl 0x180040b30
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x180040b89
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ebp, dword [rsp + 0x34]
cmp r13d, 3
jb 0x180040bc9
mov ecx, dword [rsp + 0x3c]
test ebp, ebp
jne 0x180040bcd
mov eax, esi
mov r8, r15
imul eax, ecx
test eax, eax
je 0x180040bcd
mov r11d, r13d
mov r10d, eax
nop dword [rax]
movzx ecx, byte [r8]
movzx eax, byte [r8 + 2]
mov byte [r8], al
mov byte [r8 + 2], cl
add r8, r11
sub r10, 1
jne 0x180040bb0
mov ecx, dword [rsp + 0x3c]
cmp r13d, 4
je 0x180040bee
mov r9d, ecx
mov dword [rsp + 0x20], esi
mov rcx, r15
mov r8d, 4
mov edx, r13d
call fcn.180034990
mov r15, rax
mov rax, r15
jmp 0x180040c3f
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edx, dword [0x180099fd4]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.outofmem
jmp 0x180040c34
mov edx, dword [0x180099fd4]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.too_large
mov ecx, 0x18
mov qword [rcx + rax], rdx
xor eax, eax
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.18005f740
mov rbx, qword [rsp + 0xd8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret