Function at 0x1800e3e00
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3e8]
sub rsp, 0x4e8
mov rax, qword [0x18032a080]
xor rax, rsp
mov qword [rbp + 0x3d0], rax
mov esi, dword [rbp + 0x450]
mov rbx, rcx
mov qword [rbp - 0x48], rdx
xor r12d, r12d
lea rdx, [rbp - 0x78]
mov qword [rbp - 0x38], r9
mov qword [rbp - 0x40], r8
mov dword [rbp - 0x7c], esi
mov dword [rbp - 0x5c], 0xff
call fcn.1800e3a30
test rax, rax
je 0x1800e4b66
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 0x1800e4b43
cmp dword [rbx], 0x1000000
ja 0x1800e4b43
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 0x1800e3ef1
cmp r13d, 0x18
jge 0x1800e3f09
mov ecx, r14d
mov eax, 0x55555556
sub ecx, edx
sub ecx, 0x18
imul ecx
mov r12d, edx
shr r12d, 0x1f
add r12d, edx
jmp 0x1800e3f04
cmp r13d, 0x10
jge 0x1800e3f09
mov r12d, r14d
sub r12d, edx
sub r12d, eax
sar r12d, 2
test r12d, r12d
jne 0x1800e3f42
movsxd rcx, dword [rbx + 0xb8]
sub rcx, qword [rbx + 0xd0]
add rcx, qword [rbx + 0xc0]
cmp r14, rcx
je 0x1800e3f42
mov edx, dword [0x1803325b0]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.bad_offset
jmp 0x1800e4b5d
cmp r13d, 0x18
jne 0x1800e3f57
cmp r8d, 0xff000000
jne 0x1800e3f57
lea r15d, [r13 - 0x15]
jmp 0x1800e3f65
xor r15d, r15d
test r8d, r8d
setne r15b
add r15d, 3
mov dword [rbx + 8], r15d
cmp esi, 3
mov r8d, dword [rbx + 4]
mov ecx, dword [rbx]
cmovge r15d, esi
mov dword [rsp + 0x3c], r15d
test r15d, r15d
js 0x1800e4b43
test ecx, ecx
js 0x1800e4b43
je 0x1800e3f9f
mov eax, 0x7fffffff
cdq
idiv ecx
cmp r15d, eax
jg 0x1800e4b43
mov r9d, ecx
imul r9d, r15d
test r9d, r9d
js 0x1800e4b43
test r8d, r8d
js 0x1800e4b43
je 0x1800e3fcc
mov eax, 0x7fffffff
cdq
idiv r8d
cmp r9d, eax
jg 0x1800e4b43
test ecx, ecx
js 0x1800e4b27
je 0x1800e3fe7
mov eax, 0x7fffffff
cdq
idiv ecx
cmp r15d, eax
jg 0x1800e4b27
test r9d, r9d
js 0x1800e4b27
test r8d, r8d
js 0x1800e4b27
je 0x1800e400d
mov eax, 0x7fffffff
cdq
idiv r8d
cmp r9d, eax
jg 0x1800e4b27
imul ecx, r8d
imul ecx, r15d
movsxd rcx, ecx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rbp - 0x50], rax
mov rsi, rax
test rax, rax
je 0x1800e4b27
cmp r13d, 0x10
jge 0x1800e4504
xor edi, edi
test r12d, r12d
je 0x1800e44dc
cmp r12d, 0x100
jg 0x1800e44dc
test r12d, r12d
jle 0x1800e4196
mov rax, qword [rbx + 0xc0]
xor r14d, r14d
mov r13d, dword [rsp + 0x40]
movsxd r15, r12d
nop dword [rax + rax]
mov rcx, qword [rbx + 0xc8]
cmp rax, rcx
jae 0x1800e408b
movzx edx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e40b7
cmp dword [rbx + 0x30], edi
je 0x1800e40b5
mov rcx, rbx
call fcn.1800d9a40
mov rax, qword [rbx + 0xc0]
mov rcx, qword [rbx + 0xc8]
movzx edx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e40b7
xor dl, dl
mov byte [rbp + r14*4 - 0x2e], dl
cmp rax, rcx
jae 0x1800e40d0
movzx edx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e40fc
cmp dword [rbx + 0x30], edi
je 0x1800e40fa
mov rcx, rbx
call fcn.1800d9a40
mov rax, qword [rbx + 0xc0]
mov rcx, qword [rbx + 0xc8]
movzx edx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e40fc
xor dl, dl
mov byte [rbp + r14*4 - 0x2f], dl
cmp rax, rcx
jae 0x1800e4115
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e413a
cmp dword [rbx + 0x30], edi
je 0x1800e4138
mov rcx, rbx
call fcn.1800d9a40
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e413a
xor cl, cl
mov byte [rbp + r14*4 - 0x30], cl
cmp r13d, 0xc
je 0x1800e4175
cmp rax, qword [rbx + 0xc8]
jae 0x1800e415a
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e4175
cmp dword [rbx + 0x30], edi
je 0x1800e4175
mov rcx, rbx
call fcn.1800d9a40
inc qword [rbx + 0xc0]
mov rax, qword [rbx + 0xc0]
mov byte [rbp + r14*4 - 0x2d], 0xff
inc r14
cmp r14, r15
jl 0x1800e4070
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.1800d9ac0
cmp r13d, 1
jne 0x1800e41d2
mov r12d, dword [rbx]
add r12d, 7
shr r12d, 3
jmp 0x1800e41f0
cmp r13d, 4
jne 0x1800e41e3
mov r12d, dword [rbx]
inc r12d
shr r12d, 1
jmp 0x1800e41f0
cmp r13d, 8
jne 0x1800e44b4
mov r12d, dword [rbx]
mov eax, dword [rbx + 4]
neg r12d
and r12d, 3
mov dword [rsp + 0x30], edi
cmp r13d, 1
jne 0x1800e4337
test eax, eax
jle 0x1800e4a15
mov r13d, r12d
mov rax, qword [rbx + 0xc0]
mov r12d, 7
cmp rax, qword [rbx + 0xc8]
jae 0x1800e4238
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e425e
cmp dword [rbx + 0x30], 0
je 0x1800e425c
mov rcx, rbx
call fcn.1800d9a40
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e425e
xor cl, cl
xor r14d, r14d
movzx edx, cl
cmp dword [rbx], r14d
jle 0x1800e4312
nop dword [rax]
mov eax, edx
mov ecx, r12d
sar eax, cl
and eax, 1
lea rcx, [rax*4]
movzx eax, byte [rbp + rcx - 0x30]
mov byte [rdi + rsi], al
movzx eax, byte [rbp + rcx - 0x2f]
mov byte [rdi + rsi + 1], al
movzx eax, byte [rbp + rcx - 0x2e]
mov byte [rdi + rsi + 2], al
add rdi, 3
cmp r15d, 4
jne 0x1800e42ad
mov byte [rdi + rsi], 0xff
inc rdi
inc r14d
cmp r14d, dword [rbx]
je 0x1800e4312
sub r12d, 1
jns 0x1800e4309
mov rax, qword [rbx + 0xc0]
mov r12d, 7
cmp rax, qword [rbx + 0xc8]
jae 0x1800e42e0
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e4306
cmp dword [rbx + 0x30], 0
je 0x1800e4304
mov rcx, rbx
call fcn.1800d9a40
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e4306
xor cl, cl
movzx edx, cl
cmp r14d, dword [rbx]
jl 0x1800e4270
mov edx, r13d
mov rcx, rbx
call fcn.1800d9ac0
mov ecx, dword [rsp + 0x30]
mov eax, dword [rbx + 4]
inc ecx
mov dword [rsp + 0x30], ecx
cmp ecx, eax
jl 0x1800e4213
jmp 0x1800e4a15
test eax, eax
jle 0x1800e4a15
nop
xor r14d, r14d
cmp dword [rbx], r14d
jle 0x1800e448f
nop dword [rax]
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x1800e436f
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e4395
cmp dword [rbx + 0x30], 0
je 0x1800e4393
mov rcx, rbx
call fcn.1800d9a40
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e4395
xor cl, cl
xor r8d, r8d
movzx eax, cl
cmp r13d, 4
jne 0x1800e43ab
mov r8d, eax
and r8d, 0xf
shr eax, 4
movsxd rcx, edi
lea rdx, [rax*4]
movzx eax, byte [rbp + rdx - 0x30]
inc edi
mov byte [rcx + rsi], al
movzx eax, byte [rbp + rdx - 0x2f]
movsxd rcx, edi
inc edi
mov byte [rcx + rsi], al
movzx eax, byte [rbp + rdx - 0x2e]
movsxd rcx, edi
inc edi
mov byte [rcx + rsi], al
cmp r15d, 4
jne 0x1800e43e9
movsxd rax, edi
inc edi
mov byte [rax + rsi], 0xff
lea eax, [r14 + 1]
cmp eax, dword [rbx]
je 0x1800e448f
cmp r13d, 8
jne 0x1800e4444
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x1800e441a
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e4440
cmp dword [rbx + 0x30], 0
je 0x1800e443e
mov rcx, rbx
call fcn.1800d9a40
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e4440
xor cl, cl
movzx r8d, cl
movsxd rcx, edi
lea rdx, [r8*4]
movzx eax, byte [rbp + rdx - 0x30]
inc edi
mov byte [rcx + rsi], al
movzx eax, byte [rbp + rdx - 0x2f]
movsxd rcx, edi
inc edi
mov byte [rcx + rsi], al
movzx eax, byte [rbp + rdx - 0x2e]
movsxd rcx, edi
inc edi
mov byte [rcx + rsi], al
cmp r15d, 4
jne 0x1800e4482
movsxd rax, edi
inc edi
mov byte [rax + rsi], 0xff
add r14d, 2
cmp r14d, dword [rbx]
jl 0x1800e4350
mov edx, r12d
mov rcx, rbx
call fcn.1800d9ac0
mov ecx, dword [rsp + 0x30]
mov eax, dword [rbx + 4]
inc ecx
mov dword [rsp + 0x30], ecx
cmp ecx, eax
jl 0x1800e4340
jmp 0x1800e4a15
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edx, dword [0x1803325b0]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.bad_bpp
jmp 0x1800e4b5d
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edx, dword [0x1803325b0]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.invalid
jmp 0x1800e4b5d
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.1800d9ac0
cmp r13d, 0x18
jne 0x1800e454a
mov eax, dword [rbx]
lea eax, [rax + rax*2]
jmp 0x1800e4558
cmp r13d, 0x10
jne 0x1800e4556
mov eax, dword [rbx]
add eax, eax
jmp 0x1800e4558
xor eax, eax
neg eax
and eax, 3
mov dword [rsp + 0x40], eax
cmp r13d, 0x18
jne 0x1800e4576
mov edx, 1
mov qword [rsp + 0x78], rdx
jmp 0x1800e477c
mov r11d, dword [rsp + 0x30]
mov r10d, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x34]
cmp r13d, 0x20
jne 0x1800e45c1
cmp r11d, 0xff
jne 0x1800e45c1
cmp r10d, 0xff00
jne 0x1800e45c1
cmp ecx, 0xff0000
jne 0x1800e45c1
mov r9d, dword [rsp + 0x54]
cmp r9d, 0xff000000
jne 0x1800e45e0
mov edx, 2
mov qword [rsp + 0x78], rdx
jmp 0x1800e477c
test ecx, ecx
je 0x1800e4b02
test r10d, r10d
je 0x1800e4b02
test r11d, r11d
je 0x1800e4b02
mov r9d, dword [rsp + 0x54]
call fcn.1800e3900
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.1800e3900
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.1800e3900
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.1800e3900
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 0x1800e4b02
cmp dword [rsp + 0x5c], 8
ja 0x1800e4b02
cmp r10d, 8
ja 0x1800e4b02
xor edx, edx
mov qword [rsp + 0x78], rdx
cmp r12d, 8
ja 0x1800e4b02
mov eax, dword [rbx + 4]
mov dword [rsp + 0x44], r14d
test eax, eax
jle 0x1800e4a19
nop dword [rax]
mov eax, dword [rbx]
movsxd rcx, r14d
test rdx, rdx
je 0x1800e4931
mov dword [rsp + 0x48], 0
test eax, eax
jle 0x1800e49eb
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 0x1800e47df
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e4805
cmp dword [rbx + 0x30], 0
je 0x1800e4803
mov rcx, rbx
call fcn.1800d9a40
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e4805
xor cl, cl
mov byte [r13], cl
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x1800e4828
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e484e
cmp dword [rbx + 0x30], 0
je 0x1800e484c
mov rcx, rbx
call fcn.1800d9a40
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e484e
xor cl, cl
mov byte [r12], cl
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x1800e4871
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e4897
cmp dword [rbx + 0x30], 0
je 0x1800e4895
mov rcx, rbx
call fcn.1800d9a40
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e4897
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 0x1800e48f8
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x1800e48d0
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e48fa
cmp dword [rbx + 0x30], 0
je 0x1800e48f4
mov rcx, rbx
call fcn.1800d9a40
mov rax, qword [rbx + 0xc0]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xc0], rax
jmp 0x1800e48fa
xor cl, cl
jmp 0x1800e48fa
mov cl, 0xff
movzx eax, cl
or dword [rsp + 0x38], eax
cmp r15d, 4
jne 0x1800e4915
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 0x1800e47c0
mov r13d, dword [rsp + 0x50]
jmp 0x1800e49eb
xor r12d, r12d
test eax, eax
jle 0x1800e49eb
lea rdi, [rsi + rcx]
mov esi, dword [rsp + 0x54]
mov rcx, rbx
cmp r13d, 0x10
jne 0x1800e4954
call fcn.1800d9cd0
jmp 0x1800e4959
call fcn.1800d9d80
mov edx, dword [rsp + 0x60]
mov ecx, eax
and ecx, dword [rsp + 0x34]
mov r10d, eax
mov r8d, dword [rsp + 0x58]
call fcn.1800e3970
mov edx, dword [rsp + 0x64]
mov ecx, r10d
and ecx, dword [rsp + 0x4c]
mov r8d, dword [rsp + 0x5c]
mov byte [rdi], al
call fcn.1800e3970
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.1800e3970
mov byte [rdi + 2], al
add r14d, 3
add rdi, 3
test esi, esi
je 0x1800e49c4
mov edx, dword [rsp + 0x3c]
and r10d, esi
mov r8d, dword [rsp + 0x70]
mov ecx, r10d
call fcn.1800e3970
jmp 0x1800e49c9
mov eax, 0xff
or dword [rsp + 0x38], eax
cmp r15d, 4
jne 0x1800e49db
inc r14d
mov byte [rdi], al
inc rdi
inc r12d
cmp r12d, dword [rbx]
jl 0x1800e4944
mov rsi, qword [rbp - 0x50]
mov edx, dword [rsp + 0x40]
mov rcx, rbx
call fcn.1800d9ac0
mov r8d, dword [rsp + 0x44]
mov eax, dword [rbx + 4]
inc r8d
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x44], r8d
cmp r8d, eax
jl 0x1800e4790
mov edi, dword [rsp + 0x38]
cmp r15d, 4
jne 0x1800e4a3e
test edi, edi
jne 0x1800e4a3e
imul eax, dword [rbx]
lea eax, [rax*4 - 1]
movsxd rcx, eax
test eax, eax
js 0x1800e4a3e
mov byte [rcx + rsi], 0xff
sub rcx, 4
jns 0x1800e4a34
cmp dword [rbp - 0x80], 0
jle 0x1800e4aaf
mov edx, dword [rbx + 4]
xor r10d, r10d
test edx, 0xfffffffe
jle 0x1800e4aaf
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 0x1800e4aa0
sub r9, rax
nop
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 0x1800e4a80
mov edx, dword [rbx + 4]
inc r10d
mov eax, edx
sar eax, 1
cmp r10d, eax
jl 0x1800e4a52
mov r8d, dword [rbp - 0x7c]
test r8d, r8d
je 0x1800e4ade
cmp r8d, r15d
je 0x1800e4ade
mov eax, dword [rbx + 4]
mov edx, r15d
mov r9d, dword [rbx]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.1800d9db0
mov rsi, rax
test rax, rax
je 0x1800e4b66
mov eax, dword [rbx]
mov rcx, qword [rbp - 0x48]
mov dword [rcx], eax
mov rcx, qword [rbp - 0x40]
mov eax, dword [rbx + 4]
mov dword [rcx], eax
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x1800e4afd
mov eax, dword [rbx + 8]
mov dword [rcx], eax
mov rax, rsi
jmp 0x1800e4b68
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edx, dword [0x1803325b0]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.bad_masks
jmp 0x1800e4b5d
mov edx, dword [0x1803325b0]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.outofmem
jmp 0x1800e4b5d
mov edx, dword [0x1803325b0]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdx*8]
lea rdx, str.too_large
mov ecx, 0x20
mov qword [rcx + rax], rdx
xor eax, eax
mov rcx, qword [rbp + 0x3d0]
xor rcx, rsp
call fcn.18022a7d0
add rsp, 0x4e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret