Function at 0x140099c30
Capabilities:
Encrypt data using rc4 ksa
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x420]
sub rsp, 0x520
mov rax, qword [0x1401f7280]
xor rax, rsp
mov qword [rbp + 0x3f0], rax
mov rdi, qword [rbp + 0x480]
xor eax, eax
mov rsi, rcx
mov rcx, qword [0x1401fbba0]
mov r12, r9
mov dword [rbp - 0x40], r8d
mov r14, rdx
lea r9d, [rax + 0x40]
lea r8, [rbp - 0x10]
mov edx, 0x4e73
mov ebx, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x7c], eax
mov dword [rbp - 0x78], eax
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x38], rax
mov word [rsp + 0x78], ax
call qword [sym.imp.USER32.dll_LoadStringW]
lea r8, [0x14018cda0]
lea rdx, [rbp - 0x10]
mov rcx, r12
call fcn.1400f98c8
mov rcx, qword [0x1401fbba0]
lea r9d, [rbx + 0x20]
mov r8, rdi
mov edx, 0x4cd
call qword [sym.imp.USER32.dll_LoadStringW]
lea rdx, [0x140183378]
mov rcx, rsi
call fcn.1400fafe4
mov r15, rax
mov qword [rsp + 0x60], rax
test rax, rax
jne 0x140099d23
mov rcx, qword [0x1401fbba0]
lea r9d, [rbx + 0x40]
lea r8, [rbp - 0x10]
mov edx, 0x4e70
call qword [sym.imp.USER32.dll_LoadStringW]
lea rdx, [rbp - 0x10]
mov r8, rsi
mov rcx, r12
call fcn.1400f98c8
xor eax, eax
jmp 0x14009b32a
mov edx, 1
lea rcx, [rbp - 0x30]
mov r9, rax
lea r8d, [rdx + 0x1d]
call fcn.1400fabdc
cmp rax, 0x1e
je 0x140099d4d
mov rcx, r15
call fcn.1400fa904
xor eax, eax
jmp 0x14009b32a
mov ecx, dword [rbp - 0x1e]
movzx r8d, word [rbp - 0x2c]
movzx edx, word [rbp - 0x24]
rol dx, 8
movzx r9d, word [rbp - 0x1a]
movzx r15d, word [rbp - 0x18]
mov r10d, ecx
mov eax, ecx
mov qword [rsp + 0x570], r13
shr eax, 0x10
rol r9w, 8
and r10d, 0xff0000
or r10d, eax
rol r15w, 8
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
shr r10d, 8
or eax, ecx
mov ecx, dword [rbp - 0x22]
rol r8w, 8
shl eax, 8
mov r11d, ecx
mov r13d, 0x7530
or r10d, eax
mov eax, ecx
and r11d, 0xff0000
shr eax, 0x10
mov word [rbp - 0x2c], r8w
mov word [rbp - 0x24], dx
or r11d, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr r11d, 8
mov dword [rbp - 0x1e], r10d
or eax, ecx
mov ecx, dword [rbp - 0x16]
mov word [rbp - 0x1a], r9w
shl eax, 8
mov esi, ecx
mov word [rbp - 0x18], r15w
or r11d, eax
and esi, 0xff0000
mov eax, ecx
shr eax, 0x10
mov dword [rbp - 0x22], r11d
or esi, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr esi, 8
or eax, ecx
mov ecx, r13d
shl eax, 8
or esi, eax
mov dword [rbp - 0x16], esi
cmp r8w, 2
jne 0x140099e31
mov r13d, 0x493e0
mov ecx, r13d
mov eax, dword [rbp - 0x30]
cmp eax, dword [str.8BPS]
jne 0x14009b316
test r10d, r10d
jle 0x14009b316
test r11d, r11d
jle 0x14009b316
cmp r10d, ecx
ja 0x14009b316
cmp r11d, r13d
ja 0x14009b316
dec r8w
cmp r8w, 1
ja 0x14009b316
movzx ecx, r9w
movzx eax, dx
imul ecx, eax
cmp ecx, 1
jl 0x14009b316
cmp r9w, 0x20
ja 0x14009b316
movabs r8, 0x100010102
bt r8, r9
jae 0x14009b316
dec dx
cmp dx, 0x37
ja 0x14009b316
cmp r15w, 9
ja 0x14009b316
test r14, r14
je 0x140099ec5
mov dword [r14], ecx
xor eax, eax
nop word [rax + rax]
mov byte [rbp + rax + 0xf0], al
mov byte [rbp + rax + 0x1f0], al
mov byte [rbp + rax + 0x2f0], al
inc rax
cmp rax, 0x100
jb 0x140099ed0
cmp r15w, 2
je 0x140099efb
test esi, esi
je 0x140099f24
mov r8d, 0x300
cmp esi, r8d
jae 0x140099f09
mov r8d, esi
mov r15, qword [rsp + 0x60]
lea rcx, [rbp + 0xf0]
mov edx, 1
mov r9, r15
call fcn.1400fabdc
jmp 0x140099f29
mov r15, qword [rsp + 0x60]
mov edx, 1
lea rcx, [rbp - 0x48]
mov r9, r15
lea r8d, [rdx + 3]
call fcn.1400fabdc
mov rcx, qword [rbp - 0x48]
mov rax, rcx
mov rdx, rcx
and eax, 0xff0000
shr rdx, 0x10
and edx, 0xff00
or rdx, rax
movzx eax, cl
and ecx, 0xff00
shl rax, 0x10
shr rdx, 8
or rax, rcx
mov rcx, r15
shl rax, 8
or rdx, rax
mov qword [rbp - 0x48], rdx
call fcn.1400ff110
mov rdx, qword [rbp - 0x48]
mov rsi, rax
test rdx, rdx
je 0x140099f9e
lea r9, [rbp - 0x78]
lea r8, [rsp + 0x7c]
mov rcx, r15
call fcn.140099a90
xor r8d, r8d
mov rdx, rsi
mov rcx, r15
call fcn.1400fe870
mov rdx, qword [rbp - 0x48]
mov esi, 1
mov r8d, esi
mov rcx, r15
call fcn.1400fe870
cmp word [rbp - 0x2c], 2
mov r9, r15
mov edx, esi
lea rcx, [rbp - 0x50]
jne 0x14009a02d
lea r8d, [rsi + 7]
call fcn.1400fabdc
mov rcx, qword [rbp - 0x50]
mov rdx, rcx
mov rax, rcx
shl rcx, 8
shl rax, 8
shr rdx, 8
xor rdx, rax
movabs rax, 0xff00ff00ff00ff
and rdx, rax
xor rdx, rcx
mov r9, rdx
mov rax, rdx
shl rdx, 0x10
shr r9, 0x10
shl rax, 0x10
xor r9, rax
movabs rax, 0xffff0000ffff
and r9, rax
xor r9, rdx
rol r9, 0x20
jmp 0x14009a070
mov r8d, 4
call fcn.1400fabdc
mov rcx, qword [rbp - 0x50]
mov rax, rcx
mov r9, rcx
and eax, 0xff0000
shr r9, 0x10
and r9d, 0xff00
or r9, rax
movzx eax, cl
and ecx, 0xff00
shl rax, 0x10
shr r9, 8
or rax, rcx
shl rax, 8
or r9, rax
mov r8d, esi
mov rdx, r9
mov rcx, r15
mov qword [rbp - 0x50], r9
call fcn.1400fe870
lea rcx, [rsp + 0x78]
mov r9, r15
mov r8d, 2
mov rdx, rsi
call fcn.1400fabdc
movzx eax, word [rsp + 0x78]
mov edx, 0xff
movzx ecx, ax
shl ax, 8
mov r14d, 0x20
sar cx, 8
and cx, dx
or cx, ax
mov word [rsp + 0x78], cx
cmp cx, si
jne 0x14009a0db
mov rcx, qword [0x1401fbba0]
mov r9d, r14d
mov r8, rdi
mov edx, 0x4e74
call qword [sym.imp.USER32.dll_LoadStringW]
cmp word [rbp - 0x18], 4
jne 0x14009a110
lea rcx, [rdi - 2]
cmp word [rcx + 2], bx
lea rcx, [rcx + 2]
jne 0x14009a0e6
movsd xmm0, qword [str.__CMYK]
movsd qword [rcx], xmm0
mov eax, dword [0x140187940]
mov dword [rcx + 8], eax
movzx eax, word [0x140187944]
mov word [rcx + 0xc], ax
cmp word [rbp - 0x2c], 2
jne 0x14009a14a
sub rdi, 2
nop dword [rax + rax]
cmp word [rdi + 2], bx
lea rdi, [rdi + 2]
jne 0x14009a120
movsd xmm0, qword [str.__PSB_]
movsd qword [rdi], xmm0
mov eax, dword [0x14018cdb8]
mov dword [rdi + 8], eax
movzx eax, word [0x14018cdbc]
mov word [rdi + 0xc], ax
mov rcx, r15
call fcn.1400fa994
test eax, eax
jne 0x14009b311
mov rcx, r15
call fcn.1400fa96c
test eax, eax
jne 0x14009b311
movzx eax, word [rbp - 0x24]
movzx edi, word [rbp - 0x1a]
imul edi, eax
mov eax, edi
mov dword [rbp - 0x70], eax
cmp edi, 0x10
jne 0x14009a184
lea eax, [rdi - 8]
jmp 0x14009a1a5
cmp edi, 0x20
jne 0x14009a195
cmp word [rsp + 0x78], bx
jne 0x14009a1a8
lea eax, [rdi - 8]
jmp 0x14009a1a5
jle 0x14009a1a8
cmp word [rbp - 0x18], 4
mov eax, 0x18
cmove eax, r14d
mov dword [rbp - 0x70], eax
xor r14d, r14d
cmp eax, 8
jg 0x14009a1b8
mov ecx, eax
mov r14d, esi
shl r14d, cl
mov r9d, dword [rbp - 0x1e]
mov r8d, dword [rbp - 0x22]
mov ecx, r8d
mov r10d, r8d
imul eax, r9d
add eax, 0x1f
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
movsxd rsi, eax
mov qword [rbp - 0x68], rsi
imul rcx, rsi
test r9d, r9d
jle 0x14009b311
test r8d, r8d
jle 0x14009b311
test eax, eax
jle 0x14009b311
xor edx, edx
mov rax, rcx
div r10
test eax, eax
jle 0x14009b311
test rcx, rcx
jle 0x14009b311
cmp r9d, r13d
ja 0x14009b311
cmp r8d, r13d
ja 0x14009b311
cdqe
cmp rax, rsi
jb 0x14009b311
movabs rax, 0x7ffffffffffffbd7
cmp rcx, rax
ja 0x14009b311
lea rdx, [rcx + 0x28]
movsxd r15, r14d
mov ecx, 0x40
lea rdx, [rdx + r15*4]
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov qword [rbp - 0x58], rax
test rax, rax
jne 0x14009a290
mov rcx, qword [rsp + 0x60]
call fcn.1400fa904
mov rcx, qword [0x1401fbba0]
mov r9d, 0x80
mov r8, r12
mov edx, 0x50a
call qword [sym.imp.USER32.dll_LoadStringW]
jmp 0x14009b320
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, dword [rbp - 0x70]
xor r8d, r8d
mov rdx, rax
mov dword [rax], 0x28
mov eax, dword [rbp - 0x1e]
mov dword [rdx + 4], eax
mov eax, dword [rbp - 0x22]
mov dword [rdx + 0x20], r14d
mov dword [rdx + 8], eax
mov eax, dword [rsp + 0x7c]
mov r14d, 1
mov dword [rdx + 0x18], eax
mov eax, dword [rbp - 0x78]
mov word [rdx + 0xe], cx
mov word [rdx + 0xc], r14w
mov qword [rdx + 0x10], r8
mov dword [rdx + 0x24], r8d
mov dword [rdx + 0x1c], eax
cmp ecx, 8
jg 0x14009a344
cmp edi, 8
je 0x14009a2fe
cmp ecx, 8
je 0x14009a2fe
mov word [rdx + 0x2d], bx
mov byte [rdx + 0x2c], bl
mov word [rdx + 0x29], 0xffff
mov byte [rdx + 0x28], 0xff
jmp 0x14009a344
mov rcx, r8
lea r8, [rdx + 0x29]
nop word [rax + rax]
movzx eax, byte [rbp + rcx + 0xf0]
inc rcx
lea r8, [r8 + 4]
mov byte [r8 - 3], al
movzx eax, byte [rbp + rcx + 0x1ef]
mov byte [r8 - 4], al
movzx eax, byte [rbp + rcx + 0x2ef]
mov byte [r8 - 5], al
cmp rcx, 0x100
jb 0x14009a310
mov eax, dword [rdx]
lea rcx, [rdx + rax]
lea r15, [rcx + r15*4]
mov qword [rbp - 0x78], r15
cmp edi, 0x18
jl 0x14009a445
mov r9d, dword [rbp - 0x1e]
mov r8d, dword [rbp - 0x22]
lea r11d, [r9 + r9]
mov ecx, r8d
mov r10d, r8d
mov qword [rbp - 0x38], r11
imul rcx, r11
test r9d, r9d
jle 0x14009a422
test r8d, r8d
jle 0x14009a422
test r11d, r11d
jle 0x14009a422
xor edx, edx
mov rax, rcx
div r10
test eax, eax
jle 0x14009a422
test rcx, rcx
jle 0x14009a422
cmp r9d, r13d
ja 0x14009a422
cmp r8d, r13d
ja 0x14009a422
cdqe
cmp rax, r11
jb 0x14009a422
movabs rax, 0x7ffffffffffffbd7
cmp rcx, rax
ja 0x14009a422
mov rdx, rcx
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rbx, rax
test rax, rax
jne 0x14009a445
mov rcx, qword [rsp + 0x60]
call fcn.1400fa904
mov rcx, qword [0x1401fbba0]
mov r9d, 0x80
mov r8, r12
mov edx, 0x50a
call qword [sym.imp.USER32.dll_LoadStringW]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x14009b320
mov rcx, qword [rsp + 0x60]
call fcn.1400fa904
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x14009b320
movzx eax, word [rsp + 0x78]
cmp ax, r14w
jne 0x14009a590
mov eax, dword [rbp - 0x1e]
lea ecx, [rax + rax*2]
add ecx, ecx
mov qword [rbp - 0x60], rcx
test ecx, ecx
jle 0x14009a569
mov eax, dword [rbp - 0x22]
shl eax, 4
test eax, eax
jle 0x14009a569
mov edx, ecx
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14009a569
cmp word [rbp - 0x2c], 2
mov edx, dword [rbp - 0x22]
mov ecx, 0x40
jne 0x14009a4af
shl rdx, 4
jmp 0x14009a4b3
shl rdx, 3
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov r10, rax
mov qword [rsp + 0x68], rax
test rax, rax
jne 0x14009a562
mov rcx, qword [rsp + 0x60]
call fcn.1400fa904
mov rcx, qword [0x1401fbba0]
mov r9d, 0x80
mov r8, r12
mov edx, 0x50a
call qword [sym.imp.USER32.dll_LoadStringW]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalFree]
test rbx, rbx
je 0x14009a549
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x14009b320
movzx eax, word [rsp + 0x78]
jmp 0x14009a595
mov rcx, qword [rsp + 0x60]
call fcn.1400fa904
mov rcx, qword [0x1401fbba0]
mov r9d, 0x80
mov r8, r12
mov edx, 0x50a
call qword [sym.imp.USER32.dll_LoadStringW]
jmp 0x14009a520
mov r10, qword [rsp + 0x68]
test ax, ax
jne 0x14009aac3
dec edi
cmp edi, 0x5f
ja case.0x14009aaf4.2
lea rdx, [0x140000000]
movsxd rax, edi
movzx eax, byte [rdx + rax + 0x9b364]
mov ecx, dword [rdx + rax*4 + 0x9b34c]
add rcx, rdx
jmp rcx
mov ecx, dword [rbp - 0x1e]
mov r14d, dword [rbp - 0x22]
mov r13, qword [rsp + 0x60]
add ecx, 7
shr ecx, 3
dec r14d
js 0x14009aeef
mov r15, rsi
movsxd rdi, r14d
mov r12d, ecx
neg r15
imul rdi, rsi
add rdi, qword [rbp - 0x78]
mov esi, 1
nop dword [rax + rax]
mov r9, r13
mov r8, rsi
mov rdx, r12
mov rcx, rdi
call fcn.1400fabdc
add rdi, r15
dec r14d
jns 0x14009a600
mov rsi, qword [rbp - 0x68]
mov r15, qword [rbp - 0x78]
jmp 0x14009aeef
mov r14d, dword [rbp - 0x22]
mov r13, qword [rsp + 0x60]
dec r14d
js 0x14009aeef
mov r15, rsi
movsxd rdi, r14d
neg r15
imul rdi, rsi
mov esi, 1
add rdi, qword [rbp - 0x78]
nop
mov edx, dword [rbp - 0x1e]
mov r9, r13
mov r8, rsi
mov rcx, rdi
call fcn.1400fabdc
add rdi, r15
dec r14d
jns 0x14009a650
mov rsi, qword [rbp - 0x68]
mov r15, qword [rbp - 0x78]
jmp 0x14009aeef
mov eax, dword [rbp - 0x1e]
mov ecx, 0x40
lea edx, [rax + rax]
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rdi, rax
test rax, rax
je case.0x14009aaf4.2
mov ecx, dword [rbp - 0x22]
mov r13, qword [rsp + 0x60]
dec ecx
movsxd r15, ecx
js 0x14009a71b
mov ecx, dword [rbp - 0x1e]
mov r12, rsi
mov r14, r15
neg r12
lea r8d, [rcx + rcx]
imul r14, rsi
add r14, qword [rbp - 0x78]
mov esi, 1
nop dword [rax + rax]
mov edx, r8d
mov r9, r13
mov rcx, rdi
mov r8, rsi
call fcn.1400fabdc
mov eax, dword [rbp - 0x1e]
xor ecx, ecx
lea r8d, [rax + rax]
test r8d, r8d
je 0x14009a70f
mov rdx, r14
movzx eax, byte [rdi + rcx]
add rcx, 2
inc rdx
mov byte [rdx - 1], al
mov eax, dword [rbp - 0x1e]
lea r8d, [rax + rax]
movsxd rax, r8d
cmp rcx, rax
jb 0x14009a6f2
add r14, r12
dec r15
jns 0x14009a6d0
mov rsi, qword [rbp - 0x68]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov r15, qword [rbp - 0x78]
jmp 0x14009aeef
movzx eax, word [rbp - 0x1a]
cmp ax, 8
je case.0x14009a5c5.24
mov r13, qword [rsp + 0x60]
cmp ax, 0x10
jne 0x14009aeef
mov eax, dword [rbp - 0x22]
mov r9, r13
mov r8, r14
mov rcx, rbx
imul eax, dword [rbp - 0x1e]
lea edx, [rax + rax]
call fcn.1400fabdc
mov edx, dword [rbp - 0x22]
mov ecx, dword [rbp - 0x1e]
lea eax, [rdx - 1]
xor r12d, r12d
movsxd r11, eax
test eax, eax
js 0x14009a7fc
lea eax, [rcx + rcx]
lea rdi, [r15 + 2]
mov r14, rsi
movsxd r9, eax
mov rax, r11
neg r14
mov r10d, r12d
imul rax, rsi
add rdi, rax
nop dword [rax]
mov rdx, r12
test r9, r9
je 0x14009a7e8
mov r8, rdi
nop dword [rax + rax]
mov eax, ecx
lea r8, [r8 + 3]
imul rax, r10
lea rax, [rdx + rax*2]
add rdx, 2
movzx ecx, byte [rax + rbx]
mov byte [r8 - 3], cl
mov ecx, dword [rbp - 0x1e]
lea eax, [rcx + rcx]
movsxd r9, eax
cmp rdx, r9
jb 0x14009a7c0
add rdi, r14
inc r10
dec r11
jns 0x14009a7b0
mov edx, dword [rbp - 0x22]
mov r14d, 1
imul edx, ecx
mov r9, r13
mov r8, r14
add edx, edx
mov rcx, rbx
call fcn.1400fabdc
mov edx, dword [rbp - 0x22]
mov ecx, dword [rbp - 0x1e]
lea eax, [rdx - 1]
movsxd r11, eax
test eax, eax
js 0x14009a88c
lea eax, [rcx + rcx]
lea rdi, [r15 + 1]
mov r14, rsi
movsxd r9, eax
mov rax, r11
neg r14
mov r10, r12
imul rax, rsi
add rdi, rax
nop dword [rax]
mov rdx, r12
test r9, r9
je 0x14009a878
mov r8, rdi
nop dword [rax + rax]
mov eax, ecx
lea r8, [r8 + 3]
imul rax, r10
lea rax, [rdx + rax*2]
add rdx, 2
movzx ecx, byte [rax + rbx]
mov byte [r8 - 3], cl
mov ecx, dword [rbp - 0x1e]
lea eax, [rcx + rcx]
movsxd r9, eax
cmp rdx, r9
jb 0x14009a850
add rdi, r14
inc r10
dec r11
jns 0x14009a840
mov edx, dword [rbp - 0x22]
mov r14d, 1
imul edx, ecx
mov r9, r13
mov r8, r14
add edx, edx
mov rcx, rbx
call fcn.1400fabdc
mov eax, dword [rbp - 0x22]
dec eax
movsxd rdi, eax
js 0x14009aeef
mov ecx, dword [rbp - 0x1e]
mov r11, rdi
mov r14, rsi
lea eax, [rcx + rcx]
neg r14
mov r10, r12
imul r11, rsi
movsxd r9, eax
add r11, r15
nop dword [rax]
mov rdx, r12
test r9, r9
je 0x14009a908
mov r8, r11
nop dword [rax + rax]
mov eax, ecx
lea r8, [r8 + 3]
imul rax, r10
lea rax, [rdx + rax*2]
add rdx, 2
movzx ecx, byte [rax + rbx]
mov byte [r8 - 3], cl
mov ecx, dword [rbp - 0x1e]
lea eax, [rcx + rcx]
movsxd r9, eax
cmp rdx, r9
jb 0x14009a8e0
add r11, r14
inc r10
dec rdi
jns 0x14009a8d0
jmp 0x14009aeef
mov edx, dword [rbp - 0x22]
mov r13, qword [rsp + 0x60]
mov r8, r14
mov r9, r13
mov rcx, rbx
imul edx, dword [rbp - 0x1e]
call fcn.1400fabdc
mov ecx, dword [rbp - 0x22]
xor r12d, r12d
lea eax, [rcx - 1]
movsxd r11, eax
test eax, eax
js 0x14009a9aa
movsxd r8, dword [rbp - 0x1e]
mov rax, r11
lea rdi, [r15 + 2]
imul rax, rsi
mov r14, rsi
mov r10d, r12d
neg r14
add rdi, rax
mov r9, r8
mov rcx, r12
test r9, r9
je 0x14009a994
mov rdx, rdi
nop dword [rax + rax]
mov eax, r8d
lea rdx, [rdx + 3]
imul rax, r10
add rax, rcx
inc rcx
movzx eax, byte [rax + rbx]
mov byte [rdx - 3], al
movsxd r8, dword [rbp - 0x1e]
mov r9, r8
cmp rcx, r8
jb 0x14009a970
add rdi, r14
inc r10
dec r11
jns 0x14009a960
mov ecx, dword [rbp - 0x22]
mov r14d, 1
jmp 0x14009a9ae
mov r8d, dword [rbp - 0x1e]
imul ecx, r8d
mov r9, r13
mov r8, r14
mov edx, ecx
mov rcx, rbx
call fcn.1400fabdc
mov ecx, dword [rbp - 0x22]
lea eax, [rcx - 1]
movsxd r11, eax
test eax, eax
js 0x14009aa3a
movsxd r8, dword [rbp - 0x1e]
mov rax, r11
lea rdi, [r15 + 1]
imul rax, rsi
mov r14, rsi
mov r10, r12
neg r14
add rdi, rax
mov r9, r8
nop dword [rax]
mov rcx, r12
test r9, r9
je 0x14009aa24
mov rdx, rdi
nop dword [rax + rax]
mov eax, r8d
lea rdx, [rdx + 3]
imul rax, r10
add rax, rcx
inc rcx
movzx eax, byte [rax + rbx]
mov byte [rdx - 3], al
movsxd r8, dword [rbp - 0x1e]
mov r9, r8
cmp rcx, r8
jb 0x14009aa00
add rdi, r14
inc r10
dec r11
jns 0x14009a9f0
mov ecx, dword [rbp - 0x22]
mov r14d, 1
jmp 0x14009aa3e
mov r8d, dword [rbp - 0x1e]
imul ecx, r8d
mov r9, r13
mov r8, r14
mov edx, ecx
mov rcx, rbx
call fcn.1400fabdc
mov eax, dword [rbp - 0x22]
dec eax
movsxd r11, eax
js 0x14009aeef
movsxd rax, dword [rbp - 0x1e]
mov r10, r11
mov rdi, rsi
neg rdi
mov r9, r12
mov r8, rax
imul r10, rsi
add r10, r15
nop word [rax + rax]
mov rcx, r12
test r8, r8
je 0x14009aab3
mov rdx, r10
nop dword [rax + rax]
mov eax, eax
add rdx, 3
imul rax, r9
add rax, rcx
inc rcx
movzx eax, byte [rax + rbx]
mov byte [rdx - 3], al
movsxd rax, dword [rbp - 0x1e]
mov r8, rax
cmp rcx, rax
jb 0x14009aa90
add r10, rdi
inc r9
dec r11
jns 0x14009aa80
jmp 0x14009aeef
cmp ax, r14w
jne case.0x14009aaf4.2
dec edi
cmp edi, 0x5f
ja case.0x14009aaf4.2
lea rdx, [0x140000000]
movsxd rax, edi
movzx eax, byte [rdx + rax + 0x9b3dc]
mov ecx, dword [rdx + rax*4 + 0x9b3c4]
add rcx, rdx
jmp rcx
mov r8d, dword [rbp - 0x22]
cmp word [rbp - 0x2c], 2
mov r13, qword [rsp + 0x60]
mov edx, 4
mov r9, r13
mov rcx, r10
je 0x14009ab16
mov edx, 2
call fcn.1400fabdc
mov edx, dword [rbp - 0x22]
mov rdi, qword [rsp + 0x68]
mov r12, qword [rbp - 0x60]
movzx r9d, word [rbp - 0x2c]
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], r15
lea rax, [rsp + 0x7c]
dec edx
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], r14d
mov r14, qword [rsp + 0x70]
mov qword [rsp + 0x30], rsi
mov r8, rdi
mov rcx, r13
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x7c], 0
call fcn.140099880
jmp 0x14009aef9
mov eax, dword [rbp - 0x22]
lea r8d, [rax + rax]
jmp 0x14009aafa
cmp word [rbp - 0x18], 4
jne case.0x14009aaf4.24
cmp word [rbp - 0x2c], 2
mov eax, dword [rbp - 0x22]
mov r13, qword [rsp + 0x60]
lea eax, [rax*4]
mov rcx, r10
mov r9, r13
mov r8d, eax
mov edx, 4
je 0x14009abb3
mov edx, 2
call fcn.1400fabdc
movzx eax, word [rbp - 0x24]
cmp ax, 4
jbe 0x14009abda
movzx eax, ax
mov r8d, r14d
mov rcx, r13
sub eax, 4
imul eax, dword [rbp - 0x22]
lea edx, [rax + rax]
call fcn.1400fe870
mov eax, dword [rbp - 0x1e]
mov edx, dword [rbp - 0x22]
mov r12, qword [rbp - 0x60]
mov dword [rsp + 0x7c], 0
xor edi, edi
nop
mov rcx, qword [rbp - 0x38]
movzx r9d, word [rbp - 0x2c]
mov r8, qword [rsp + 0x68]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rbx
mov eax, eax
lea rcx, [rsp + 0x7c]
dec edx
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x38], r14d
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x70]
mov rcx, r13
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rax
call fcn.140099880
mov edx, dword [rbp - 0x22]
mov rax, rdi
test rdi, rdi
je 0x14009adaa
dec rax
je 0x14009ad3e
dec rax
je 0x14009acce
dec rax
jne 0x14009ae0b
xor ecx, ecx
mov r11d, ecx
mov r9d, ecx
test edx, edx
jle 0x14009ae0b
movsxd rax, dword [rbp - 0x1e]
lea r10, [r15 + 3]
xor r13d, r13d
mov r8, rax
nop dword [rax + rax]
mov rcx, r13
test r8, r8
je 0x14009acb6
mov rdx, r10
nop dword [rax + rax]
mov eax, eax
lea rdx, [rdx + 4]
imul rax, r9
add rax, rcx
inc rcx
movzx eax, byte [rax + rbx]
mov byte [rdx - 4], al
movsxd rax, dword [rbp - 0x1e]
mov r8, rax
cmp rcx, rax
jb 0x14009ac90
mov edx, dword [rbp - 0x22]
inc r11d
inc r9
add r10, rsi
cmp r11d, edx
jl 0x14009ac80
mov r13, qword [rsp + 0x60]
jmp 0x14009ae0e
xor ecx, ecx
mov r11d, ecx
mov r9d, ecx
test edx, edx
jle 0x14009ae0b
movsxd rax, dword [rbp - 0x1e]
mov r10, r15
xor r13d, r13d
mov r8, rax
nop dword [rax + rax]
mov rcx, r13
test r8, r8
je 0x14009ad26
mov rdx, r10
nop dword [rax + rax]
mov eax, eax
lea rdx, [rdx + 4]
imul rax, r9
add rax, rcx
inc rcx
movzx eax, byte [rax + rbx]
mov byte [rdx - 4], al
movsxd rax, dword [rbp - 0x1e]
mov r8, rax
cmp rcx, rax
jb 0x14009ad00
mov edx, dword [rbp - 0x22]
inc r11d
inc r9
add r10, rsi
cmp r11d, edx
jl 0x14009acf0
mov r13, qword [rsp + 0x60]
jmp 0x14009ae0e
xor r11d, r11d
xor r9d, r9d
test edx, edx
jle 0x14009ae0b
movsxd rax, dword [rbp - 0x1e]
lea r10, [r15 + 1]
xor r12d, r12d
mov r8, rax
nop word [rax + rax]
mov rcx, r12
test r8, r8
je 0x14009ad96
mov rdx, r10
nop dword [rax + rax]
mov eax, eax
lea rdx, [rdx + 4]
imul rax, r9
add rax, rcx
inc rcx
movzx eax, byte [rax + rbx]
mov byte [rdx - 4], al
movsxd rax, dword [rbp - 0x1e]
mov r8, rax
cmp rcx, rax
jb 0x14009ad70
mov edx, dword [rbp - 0x22]
inc r11d
inc r9
add r10, rsi
cmp r11d, edx
jl 0x14009ad60
mov r12, qword [rbp - 0x60]
jmp 0x14009ae0e
xor r11d, r11d
xor r9d, r9d
test edx, edx
jle 0x14009ae0b
movsxd rax, dword [rbp - 0x1e]
lea r10, [r15 + 2]
xor r13d, r13d
mov r8, rax
mov rcx, r13
test r8, r8
je 0x14009adf6
mov rdx, r10
nop dword [rax]
mov eax, eax
lea rdx, [rdx + 4]
imul rax, r9
add rax, rcx
inc rcx
movzx eax, byte [rax + rbx]
mov byte [rdx - 4], al
movsxd rax, dword [rbp - 0x1e]
mov r8, rax
cmp rcx, rax
jb 0x14009add0
mov edx, dword [rbp - 0x22]
inc r11d
inc r9
add r10, rsi
cmp r11d, edx
jl 0x14009adc2
mov r13, qword [rsp + 0x60]
jmp 0x14009ae0e
mov eax, dword [rbp - 0x1e]
inc rdi
cmp rdi, 4
jb 0x14009abf0
cmp word [rbp - 0x18], 4
jne 0x14009aeef
cmp dword [rbp - 0x40], 0
jne 0x14009aeef
xor r11d, r11d
test edx, edx
jle 0x14009aeef
movsxd rcx, eax
mov rdi, r15
lea r12d, [r11 + 3]
lea r13d, [r11 + 2]
nop dword [rax]
xor r10d, r10d
test rcx, rcx
je 0x14009aedb
mov r9, rdi
nop
movzx r8d, byte [r12 + r9]
movzx ecx, byte [r9]
mov eax, 0x80808081
inc r10
lea r9, [r9 + 4]
imul ecx, r8d
imul ecx
add edx, ecx
movzx ecx, byte [r14 + r9 - 4]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x80808081
imul ecx, r8d
mov byte [r9 - 4], dl
imul ecx
add edx, ecx
movzx ecx, byte [r13 + r9 - 4]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x80808081
imul ecx, r8d
mov byte [r14 + r9 - 4], dl
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov byte [r13 + r9 - 4], dl
movsxd rcx, dword [rbp - 0x1e]
cmp r10, rcx
jb 0x14009ae60
mov edx, dword [rbp - 0x22]
inc r11d
add rdi, rsi
cmp r11d, edx
jl 0x14009ae50
mov r13, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
mov r14, qword [rsp + 0x70]
mov rcx, r13
call fcn.1400fa904
test rbx, rbx
je 0x14009af2a
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalFree]
test r14, r14
je 0x14009af53
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalFree]
test rdi, rdi
je 0x14009af7c
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalHandle]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalFree]
cmp word [rbp - 0x18], 9
jne 0x14009b301
cmp dword [rbp - 0x70], 0x18
jne 0x14009b301
mov ecx, dword [rbp - 0x22]
xor r12d, r12d
test ecx, ecx
jle 0x14009b301
movsxd rax, dword [rbp - 0x1e]
movaps xmmword [rsp + 0x510], xmm6
movss xmm6, dword [0x14018ce2c]
movaps xmmword [rsp + 0x500], xmm7
movsd xmm7, qword [str.ffffff]
xor r13d, r13d
nop word [rax + rax]
xor edi, edi
test rax, rax
je 0x14009b2de
lea rax, [r15 + 1]
mov r14, r15
sub r14, rax
lea rbx, [rax + r13]
sub r15, rax
nop dword [rax]
movzx eax, byte [r15 + rbx + 2]
movzx ecx, byte [rbx]
movzx edx, byte [rbx + r14]
movd xmm0, eax
movsx eax, cl
cvtdq2pd xmm0, xmm0
movd xmm1, eax
divsd xmm0, xmm7
cvtdq2ps xmm1, xmm1
cvtpd2ps xmm0, xmm0
test cl, cl
jns 0x14009b279
addss xmm1, xmm6
jmp 0x14009b27d
cmp word [rbp - 0x2c], 2
mov eax, dword [rbp - 0x22]
mov r13, qword [rsp + 0x60]
lea r8d, [rax + rax*2]
mov rcx, r10
mov r9, r13
jne 0x14009b053
mov edx, 4
call fcn.1400fabdc
mov edi, 2
jmp 0x14009b05f
mov edi, 2
mov edx, edi
call fcn.1400fabdc
movzx eax, word [rbp - 0x24]
cmp ax, 3
jbe 0x14009b081
movzx eax, ax
mov r8d, r14d
mov rcx, r13
sub eax, 3
imul eax, dword [rbp - 0x22]
lea edx, [rax + rax]
call fcn.1400fe870
cmp word [rbp - 0x1a], 0x10
mov ecx, dword [rbp - 0x1e]
mov r12, qword [rbp - 0x60]
cmove r14d, edi
mov dword [rsp + 0x7c], 0
xor r15d, r15d
mov qword [rbp - 0x68], r14
movsxd rdi, r14d
nop dword [rax]
nop word [rax + rax]
mov edx, dword [rbp - 0x22]
movzx r9d, word [rbp - 0x2c]
mov r8, qword [rsp + 0x68]
mov eax, ecx
mov rcx, qword [rbp - 0x38]
dec edx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rbx
lea rcx, [rsp + 0x7c]
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x38], r14d
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x70]
mov rcx, r13
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rax
call fcn.140099880
mov rax, r15
test r15, r15
je 0x14009b1f0
dec rax
je 0x14009b183
dec rax
jne 0x14009b260
xor edx, edx
mov r11d, edx
cmp dword [rbp - 0x22], edx
jle 0x14009b260
movsxd rcx, dword [rbp - 0x1e]
mov r14, qword [rbp - 0x78]
mov r10, rcx
nop dword [rax]
mov eax, r11d
mov r9, rdx
imul eax, ecx
test r10, r10
je 0x14009b16e
mov rdx, rdi
mov r8, r14
imul rdx, rax
add rdx, rbx
nop dword [rax + rax]
movzx eax, byte [rdx]
inc r9
add rdx, rdi
mov byte [r8], al
movsxd rcx, dword [rbp - 0x1e]
lea r8, [r8 + 3]
mov r10, rcx
cmp r9, rcx
jb 0x14009b150
xor edx, edx
inc r11d
add r14, rsi
cmp r11d, dword [rbp - 0x22]
jl 0x14009b130
mov r14, qword [rbp - 0x68]
jmp 0x14009b263
xor edx, edx
mov r11d, edx
cmp dword [rbp - 0x22], edx
jle 0x14009b260
movsxd rcx, dword [rbp - 0x1e]
mov r14, qword [rbp - 0x78]
mov r10, rcx
inc r14
nop
mov r8d, r11d
mov r9, rdx
imul r8d, ecx
test r10, r10
je 0x14009b1de
mov rdx, rdi
imul rdx, r8
mov r8, r14
add rdx, rbx
nop dword [rax]
movzx eax, byte [rdx]
inc r9
add rdx, rdi
mov byte [r8], al
movsxd rcx, dword [rbp - 0x1e]
lea r8, [r8 + 3]
mov r10, rcx
cmp r9, rcx
jb 0x14009b1c0
xor edx, edx
inc r11d
add r14, rsi
cmp r11d, dword [rbp - 0x22]
jl 0x14009b1a0
mov r14, qword [rbp - 0x68]
jmp 0x14009b263
xor edx, edx
mov r11d, edx
cmp dword [rbp - 0x22], edx
jle 0x14009b260
movsxd rcx, dword [rbp - 0x1e]
mov r14, qword [rbp - 0x78]
mov r10, rcx
add r14, 2
nop dword [rax]
mov r8d, r11d
mov r9, rdx
imul r8d, ecx
test r10, r10
je 0x14009b24e
mov rdx, rdi
imul rdx, r8
mov r8, r14
add rdx, rbx
nop dword [rax]
movzx eax, byte [rdx]
inc r9
add rdx, rdi
mov byte [r8], al
movsxd rcx, dword [rbp - 0x1e]
lea r8, [r8 + 3]
mov r10, rcx
cmp r9, rcx
jb 0x14009b230
xor edx, edx
inc r11d
add r14, rsi
cmp r11d, dword [rbp - 0x22]
jl 0x14009b210
mov r14, qword [rbp - 0x68]
jmp 0x14009b263
mov ecx, dword [rbp - 0x1e]
inc r15
cmp r15, 3
jb 0x14009b0b0
mov r15, qword [rbp - 0x78]
jmp 0x14009aeef
subss xmm1, xmm6
movsx eax, dl
movd xmm2, eax
cvtdq2ps xmm2, xmm2
test dl, dl
jns 0x14009b291
addss xmm2, xmm6
jmp 0x14009b295
subss xmm2, xmm6
lea rax, [rbp - 0x7f]
lea r9, [rbp - 0x7e]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
call fcn.140099540
movzx eax, byte [rbp - 0x7f]
mov byte [rbx + r14], al
movzx eax, byte [rbp - 0x80]
inc rdi
mov byte [rbx], al
movzx eax, byte [rbp - 0x7e]
add rbx, 3
mov byte [r15 + rbx - 1], al
movsxd rax, dword [rbp - 0x1e]
cmp rdi, rax
jb 0x14009aff0
mov ecx, dword [rbp - 0x22]
mov r15, qword [rbp - 0x78]
inc r12d
add r13, rsi
cmp r12d, ecx
jl 0x14009afd0
movaps xmm7, xmmword [rsp + 0x500]
movaps xmm6, xmmword [rsp + 0x510]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rax, qword [rbp - 0x58]
jmp 0x14009b322
mov rcx, r15
jmp 0x14009b31b
mov rcx, qword [rsp + 0x60]
call fcn.1400fa904
xor eax, eax
mov r13, qword [rsp + 0x570]
mov rcx, qword [rbp + 0x3f0]
xor rcx, rsp
call fcn.1400f9a80
add rsp, 0x520
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret