Function at 0x180045520
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3c0]
sub rsp, 0x4c0
lea rdx, [rbp - 0x78]
mov dword [rbp - 0x5c], 0xff
mov rbx, rcx
xor r12d, r12d
call fcn.1800462b0
test rax, rax
je 0x180046291
mov eax, dword [rbx + 4]
mov dword [rbp - 0x80], eax
cdq
xor eax, edx
sub eax, edx
mov dword [rbx + 4], eax
cmp eax, 0x1000000
ja 0x18004626e
cmp dword [rbx], 0x1000000
ja 0x18004626e
mov eax, dword [rbp - 0x6c]
movsxd r14, dword [rbp - 0x74]
mov ecx, dword [rbp - 0x64]
mov r8d, dword [rbp - 0x60]
mov edi, dword [rbp - 0x5c]
mov edx, dword [rbp - 0x58]
mov r13d, dword [rbp - 0x78]
mov dword [rsp + 0x34], eax
mov eax, dword [rbp - 0x68]
mov dword [rsp + 0x4c], eax
mov eax, dword [rbp - 0x70]
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x54], r8d
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x48], edx
mov dword [rsp + 0x44], r14d
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x50], r13d
cmp eax, 0xc
jne 0x1800455fd
cmp r13d, 0x18
jge 0x180045615
mov ecx, r14d
mov eax, 0x55555556
sub ecx, edx
sub ecx, 0x18
imul ecx
mov r12d, edx
shr r12d, 0x1f
add r12d, edx
jmp 0x180045610
cmp r13d, 0x10
jge 0x180045615
mov r12d, r14d
sub r12d, edx
sub r12d, eax
sar r12d, 2
test r12d, r12d
jne 0x18004564e
movsxd rcx, dword [rbx + 0xb8]
add rcx, qword [rbx + 0xc0]
sub rcx, rbx
sub rcx, 0x38
cmp r14, rcx
je 0x18004564e
mov edx, dword [0x1801bd240]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.bad_offset
jmp 0x180046288
cmp r13d, 0x18
jne 0x180045663
cmp r8d, 0xff000000
jne 0x180045663
lea r15d, [r13 - 0x15]
jmp 0x180045671
xor r15d, r15d
test r8d, r8d
setne r15b
add r15d, 3
cmp dword [rbp + 0x420], 3
mov dword [rbx + 8], r15d
cmovge r15d, dword [rbp + 0x420]
mov r8d, dword [rbx + 4]
mov ecx, dword [rbx]
mov dword [rsp + 0x3c], r15d
test r15d, r15d
js 0x18004626e
test ecx, ecx
js 0x18004626e
je 0x1800456b3
mov eax, 0x7fffffff
cdq
idiv ecx
cmp r15d, eax
jg 0x18004626e
mov r9d, ecx
imul r9d, r15d
test r9d, r9d
js 0x18004626e
test r8d, r8d
js 0x18004626e
je 0x1800456e0
mov eax, 0x7fffffff
cdq
idiv r8d
cmp r9d, eax
jg 0x18004626e
test ecx, ecx
js 0x180046252
je 0x1800456fb
mov eax, 0x7fffffff
cdq
idiv ecx
cmp r15d, eax
jg 0x180046252
test r9d, r9d
js 0x180046252
test r8d, r8d
js 0x180046252
je 0x180045721
mov eax, 0x7fffffff
cdq
idiv r8d
cmp r9d, eax
jg 0x180046252
imul ecx, r8d
imul ecx, r15d
movsxd rcx, ecx
call fcn.180074b18
mov qword [rbp - 0x50], rax
mov rsi, rax
test rax, rax
je 0x180046252
cmp r13d, 0x10
jge 0x180045c12
xor edi, edi
test r12d, r12d
je 0x180045beb
cmp r12d, 0x100
jg 0x180045beb
test r12d, r12d
jle 0x1800458a6
mov rax, qword [rbx + 0xc0]
xor r14d, r14d
mov r13d, dword [rsp + 0x40]
movsxd r15, r12d
nop
mov rcx, qword [rbx + 0xc8]
cmp rax, rcx
jae 0x18004579b
movzx edx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800457c7
cmp dword [rbx + 0x30], edi
je 0x1800457c5
mov rcx, rbx
call fcn.180053600
mov rax, qword [rbx + 0xc0]
mov rcx, qword [rbx + 0xc8]
movzx edx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800457c7
xor dl, dl
mov byte [rbp + r14*4 - 0x3e], dl
cmp rax, rcx
jae 0x1800457e0
movzx edx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x18004580c
cmp dword [rbx + 0x30], edi
je 0x18004580a
mov rcx, rbx
call fcn.180053600
mov rax, qword [rbx + 0xc0]
mov rcx, qword [rbx + 0xc8]
movzx edx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x18004580c
xor dl, dl
mov byte [rbp + r14*4 - 0x3f], dl
cmp rax, rcx
jae 0x180045825
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x18004584a
cmp dword [rbx + 0x30], edi
je 0x180045848
mov rcx, rbx
call fcn.180053600
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x18004584a
xor cl, cl
mov byte [rbp + r14*4 - 0x40], cl
cmp r13d, 0xc
je 0x180045885
cmp rax, qword [rbx + 0xc8]
jae 0x18004586a
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045885
cmp dword [rbx + 0x30], edi
je 0x180045885
mov rcx, rbx
call fcn.180053600
inc qword [rbx + 0xc0]
mov rax, qword [rbx + 0xc0]
mov byte [rbp + r14*4 - 0x3d], 0xff
inc r14
cmp r14, r15
jl 0x180045780
mov r15d, dword [rsp + 0x3c]
mov r13d, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x44]
xor eax, eax
mov rcx, rbx
cmp dword [rsp + 0x40], 0xc
setne al
add eax, 3
imul eax, r12d
sub r14d, eax
sub r14d, dword [rsp + 0x48]
sub r14d, dword [rsp + 0x40]
mov edx, r14d
call fcn.180053d60
cmp r13d, 1
jne 0x1800458e2
mov r12d, dword [rbx]
add r12d, 7
shr r12d, 3
jmp 0x180045900
cmp r13d, 4
jne 0x1800458f3
mov r12d, dword [rbx]
inc r12d
shr r12d, 1
jmp 0x180045900
cmp r13d, 8
jne 0x180045bc4
mov r12d, dword [rbx]
mov ecx, dword [rbx + 4]
neg r12d
and r12d, 3
mov dword [rsp + 0x30], edi
cmp r13d, 1
jne 0x180045a47
test ecx, ecx
jle 0x180046125
mov r13d, r12d
mov rax, qword [rbx + 0xc0]
mov r12d, 7
cmp rax, qword [rbx + 0xc8]
jae 0x180045948
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x18004596e
cmp dword [rbx + 0x30], 0
je 0x18004596c
mov rcx, rbx
call fcn.180053600
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x18004596e
xor cl, cl
xor r14d, r14d
movzx edx, cl
cmp dword [rbx], r14d
jle 0x180045a22
nop dword [rax]
mov eax, edx
mov ecx, r12d
sar eax, cl
and eax, 1
lea rcx, [rax*4]
movzx eax, byte [rbp + rcx - 0x40]
mov byte [rdi + rsi], al
movzx eax, byte [rbp + rcx - 0x3f]
mov byte [rdi + rsi + 1], al
movzx eax, byte [rbp + rcx - 0x3e]
mov byte [rdi + rsi + 2], al
add rdi, 3
cmp r15d, 4
jne 0x1800459bd
mov byte [rdi + rsi], 0xff
inc rdi
inc r14d
cmp r14d, dword [rbx]
je 0x180045a22
sub r12d, 1
jns 0x180045a19
mov rax, qword [rbx + 0xc0]
mov r12d, 7
cmp rax, qword [rbx + 0xc8]
jae 0x1800459f0
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045a16
cmp dword [rbx + 0x30], 0
je 0x180045a14
mov rcx, rbx
call fcn.180053600
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045a16
xor cl, cl
movzx edx, cl
cmp r14d, dword [rbx]
jl 0x180045980
mov edx, r13d
mov rcx, rbx
call fcn.180053d60
mov edx, dword [rsp + 0x30]
mov ecx, dword [rbx + 4]
inc edx
mov dword [rsp + 0x30], edx
cmp edx, ecx
jl 0x180045923
jmp 0x180046125
test ecx, ecx
jle 0x180046125
nop
xor r14d, r14d
cmp dword [rbx], r14d
jle 0x180045b9f
nop dword [rax]
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x180045a7f
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045aa5
cmp dword [rbx + 0x30], 0
je 0x180045aa3
mov rcx, rbx
call fcn.180053600
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045aa5
xor cl, cl
xor r8d, r8d
movzx eax, cl
cmp r13d, 4
jne 0x180045abb
mov r8d, eax
and r8d, 0xf
shr eax, 4
movsxd rcx, edi
lea rdx, [rax*4]
movzx eax, byte [rbp + rdx - 0x40]
inc edi
mov byte [rcx + rsi], al
movzx eax, byte [rbp + rdx - 0x3f]
movsxd rcx, edi
inc edi
mov byte [rcx + rsi], al
movzx eax, byte [rbp + rdx - 0x3e]
movsxd rcx, edi
inc edi
mov byte [rcx + rsi], al
cmp r15d, 4
jne 0x180045af9
movsxd rax, edi
inc edi
mov byte [rax + rsi], 0xff
lea eax, [r14 + 1]
cmp eax, dword [rbx]
je 0x180045b9f
cmp r13d, 8
jne 0x180045b54
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x180045b2a
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045b50
cmp dword [rbx + 0x30], 0
je 0x180045b4e
mov rcx, rbx
call fcn.180053600
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045b50
xor cl, cl
movzx r8d, cl
movsxd rcx, edi
lea rdx, [r8*4]
movzx eax, byte [rbp + rdx - 0x40]
inc edi
mov byte [rcx + rsi], al
movzx eax, byte [rbp + rdx - 0x3f]
movsxd rcx, edi
inc edi
mov byte [rcx + rsi], al
movzx eax, byte [rbp + rdx - 0x3e]
movsxd rcx, edi
inc edi
mov byte [rcx + rsi], al
cmp r15d, 4
jne 0x180045b92
movsxd rax, edi
inc edi
mov byte [rax + rsi], 0xff
add r14d, 2
cmp r14d, dword [rbx]
jl 0x180045a60
mov edx, r12d
mov rcx, rbx
call fcn.180053d60
mov eax, dword [rsp + 0x30]
mov ecx, dword [rbx + 4]
inc eax
mov dword [rsp + 0x30], eax
cmp eax, ecx
jl 0x180045a50
jmp 0x180046125
mov rcx, rsi
call fcn.180074b04
mov edx, dword [0x1801bd240]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.bad_bpp
jmp 0x180046288
mov rcx, rsi
call fcn.180074b04
mov edx, dword [0x1801bd240]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.invalid
jmp 0x180046288
mov edx, dword [rsp + 0x44]
xor eax, eax
sub edx, dword [rsp + 0x48]
mov rcx, rbx
sub edx, dword [rsp + 0x40]
mov r14d, eax
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x64], eax
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x70], eax
call fcn.180053d60
cmp r13d, 0x18
jne 0x180045c58
mov eax, dword [rbx]
lea eax, [rax + rax*2]
jmp 0x180045c66
cmp r13d, 0x10
jne 0x180045c64
mov eax, dword [rbx]
add eax, eax
jmp 0x180045c66
xor eax, eax
neg eax
and eax, 3
mov dword [rsp + 0x40], eax
cmp r13d, 0x18
jne 0x180045c84
mov edx, 1
mov qword [rsp + 0x78], rdx
jmp 0x180045e8a
mov r11d, dword [rsp + 0x30]
mov r10d, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x34]
cmp r13d, 0x20
jne 0x180045ccf
cmp r11d, 0xff
jne 0x180045ccf
cmp r10d, 0xff00
jne 0x180045ccf
cmp ecx, 0xff0000
jne 0x180045ccf
mov r9d, dword [rsp + 0x54]
cmp r9d, 0xff000000
jne 0x180045cee
mov edx, 2
mov qword [rsp + 0x78], rdx
jmp 0x180045e8a
test ecx, ecx
je 0x18004622e
test r10d, r10d
je 0x18004622e
test r11d, r11d
je 0x18004622e
mov r9d, dword [rsp + 0x54]
call fcn.18004b4a0
mov edx, dword [rsp + 0x34]
sub eax, 7
mov ecx, dword [rsp + 0x34]
shr edx, 1
and ecx, 0x55555555
and edx, 0x55555555
mov dword [rsp + 0x60], eax
add edx, ecx
mov ecx, edx
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
mov edx, ecx
shr edx, 4
add edx, ecx
mov ecx, r10d
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 8
add edx, eax
mov eax, edx
shr eax, 0x10
add eax, edx
movzx eax, al
mov dword [rsp + 0x58], eax
call fcn.18004b4a0
sub eax, 7
mov edx, r10d
shr edx, 1
mov ecx, r10d
and edx, 0x55555555
mov dword [rsp + 0x64], eax
and ecx, 0x55555555
add edx, ecx
mov ecx, edx
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
mov edx, ecx
shr edx, 4
add edx, ecx
mov ecx, r11d
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 8
add edx, eax
mov eax, edx
shr eax, 0x10
add eax, edx
movzx eax, al
mov dword [rsp + 0x5c], eax
call fcn.18004b4a0
sub eax, 7
mov edx, r11d
shr edx, 1
mov ecx, r11d
and edx, 0x55555555
mov dword [rsp + 0x6c], eax
and ecx, 0x55555555
add edx, ecx
mov ecx, edx
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
mov edx, ecx
shr edx, 4
add edx, ecx
mov ecx, r9d
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 8
add edx, eax
mov eax, edx
shr eax, 0x10
add eax, edx
movzx r10d, al
mov dword [rsp + 0x68], r10d
call fcn.18004b4a0
sub eax, 7
mov edx, r9d
shr edx, 1
mov ecx, r9d
and edx, 0x55555555
mov dword [rsp + 0x3c], eax
and ecx, 0x55555555
add edx, ecx
mov ecx, edx
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
mov edx, ecx
shr edx, 4
add edx, ecx
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 8
add edx, eax
mov eax, edx
shr eax, 0x10
add eax, edx
cmp dword [rsp + 0x58], 8
movzx r12d, al
mov dword [rsp + 0x70], r12d
ja 0x18004622e
cmp dword [rsp + 0x5c], 8
ja 0x18004622e
cmp r10d, 8
ja 0x18004622e
xor edx, edx
mov qword [rsp + 0x78], rdx
cmp r12d, 8
ja 0x18004622e
mov ecx, dword [rbx + 4]
mov dword [rsp + 0x44], r14d
test ecx, ecx
jle 0x180046129
nop word [rax + rax]
mov eax, dword [rbx]
movsxd rcx, r14d
test rdx, rdx
je 0x180046041
mov dword [rsp + 0x48], 0
test eax, eax
jle 0x1800460fb
lea rdi, [rsi + rcx]
lea r12, [rdi + 1]
lea r13, [rdi + 2]
nop word [rax + rax]
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x180045eef
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045f15
cmp dword [rbx + 0x30], 0
je 0x180045f13
mov rcx, rbx
call fcn.180053600
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045f15
xor cl, cl
mov byte [r13], cl
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x180045f38
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045f5e
cmp dword [rbx + 0x30], 0
je 0x180045f5c
mov rcx, rbx
call fcn.180053600
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045f5e
xor cl, cl
mov byte [r12], cl
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x180045f81
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045fa7
cmp dword [rbx + 0x30], 0
je 0x180045fa5
mov rcx, rbx
call fcn.180053600
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x180045fa7
xor cl, cl
mov byte [rdi], cl
add r14d, 3
add rdi, 3
add r13, 3
add r12, 3
cmp qword [rsp + 0x78], 2
jne 0x180046008
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x180045fe0
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x18004600a
cmp dword [rbx + 0x30], 0
je 0x180046004
mov rcx, rbx
call fcn.180053600
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x18004600a
xor cl, cl
jmp 0x18004600a
mov cl, 0xff
movzx eax, cl
or dword [rsp + 0x38], eax
cmp r15d, 4
jne 0x180046025
inc r14d
mov byte [rdi], cl
inc r13
inc r12
inc rdi
mov ecx, dword [rsp + 0x48]
inc ecx
mov dword [rsp + 0x48], ecx
cmp ecx, dword [rbx]
jl 0x180045ed0
mov r13d, dword [rsp + 0x50]
jmp 0x1800460fb
xor r12d, r12d
test eax, eax
jle 0x1800460fb
lea rdi, [rsi + rcx]
mov esi, dword [rsp + 0x54]
mov rcx, rbx
cmp r13d, 0x10
jne 0x180046064
call fcn.180049210
jmp 0x180046069
call fcn.1800492f0
mov edx, dword [rsp + 0x60]
mov ecx, eax
and ecx, dword [rsp + 0x34]
mov r10d, eax
mov r8d, dword [rsp + 0x58]
call fcn.180053d10
mov edx, dword [rsp + 0x64]
mov ecx, r10d
and ecx, dword [rsp + 0x4c]
mov r8d, dword [rsp + 0x5c]
mov byte [rdi], al
call fcn.180053d10
mov edx, dword [rsp + 0x6c]
mov ecx, r10d
and ecx, dword [rsp + 0x30]
mov r8d, dword [rsp + 0x68]
mov byte [rdi + 1], al
call fcn.180053d10
mov byte [rdi + 2], al
add r14d, 3
add rdi, 3
test esi, esi
je 0x1800460d4
mov edx, dword [rsp + 0x3c]
and r10d, esi
mov r8d, dword [rsp + 0x70]
mov ecx, r10d
call fcn.180053d10
jmp 0x1800460d9
mov eax, 0xff
or dword [rsp + 0x38], eax
cmp r15d, 4
jne 0x1800460eb
inc r14d
mov byte [rdi], al
inc rdi
inc r12d
cmp r12d, dword [rbx]
jl 0x180046054
mov rsi, qword [rbp - 0x50]
mov edx, dword [rsp + 0x40]
mov rcx, rbx
call fcn.180053d60
mov r8d, dword [rsp + 0x44]
mov ecx, dword [rbx + 4]
inc r8d
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x44], r8d
cmp r8d, ecx
jl 0x180045ea0
mov edi, dword [rsp + 0x38]
cmp r15d, 4
jne 0x180046150
test edi, edi
jne 0x180046150
mov eax, dword [rbx]
imul eax, ecx
lea eax, [rax*4 - 1]
movsxd rcx, eax
test eax, eax
js 0x180046150
mov byte [rcx + rsi], 0xff
sub rcx, 4
jns 0x180046146
cmp dword [rbp - 0x80], 0
jle 0x1800461cf
mov edx, dword [rbx + 4]
xor r10d, r10d
test edx, 0xfffffffe
jle 0x1800461cf
nop dword [rax]
nop dword [rax + rax]
mov ecx, dword [rbx]
sub edx, r10d
dec edx
mov r9d, ecx
imul edx, ecx
xor r8d, r8d
imul r9d, r10d
imul ecx, r15d
imul edx, r15d
imul r9d, r15d
mov eax, edx
add rdx, rsi
test ecx, ecx
jle 0x1800461c0
sub r9, rax
nop dword [rax]
movzx eax, byte [rdx]
inc r8d
movzx ecx, byte [r9 + rdx]
mov byte [r9 + rdx], al
mov byte [rdx], cl
lea rdx, [rdx + 1]
mov eax, dword [rbx]
imul eax, r15d
cmp r8d, eax
jl 0x1800461a0
mov edx, dword [rbx + 4]
inc r10d
mov eax, edx
sar eax, 1
cmp r10d, eax
jl 0x180046170
mov r8d, dword [rbp + 0x420]
test r8d, r8d
je 0x180046201
cmp r8d, r15d
je 0x180046201
mov eax, dword [rbx + 4]
mov edx, r15d
mov r9d, dword [rbx]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.180047210
mov rsi, rax
test rax, rax
je 0x180046291
mov eax, dword [rbx]
mov rcx, qword [rbp + 0x408]
mov dword [rcx], eax
mov rcx, qword [rbp + 0x410]
mov eax, dword [rbx + 4]
mov dword [rcx], eax
mov rcx, qword [rbp + 0x418]
test rcx, rcx
je 0x180046229
mov eax, dword [rbx + 8]
mov dword [rcx], eax
mov rax, rsi
jmp 0x180046293
mov rcx, rsi
call fcn.180074b04
mov edx, dword [0x1801bd240]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.bad_masks
jmp 0x180046288
mov edx, dword [0x1801bd240]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.outofmem
jmp 0x180046288
mov edx, dword [0x1801bd240]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.too_large
mov ecx, 0x10
mov qword [rcx + rax], rdx
xor eax, eax
mov rbx, qword [rsp + 0x500]
add rsp, 0x4c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret