Function at 0x3a124f520
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
xor eax, eax
mov qword [rsp + 0x140], rcx
mov rdi, r8
mov ecx, pe_nt_image_headers64
rep stosq qword [rdi], rax
mov qword [rsp + 0x148], rdx
mov rcx, r9
xor edx, edx
mov qword [rsp + 0x150], r8
mov r8d, 0x40000
call sub.msvcrt.dll_memset
movsxd r10, dword [rsp + 0x160]
mov rdi, qword [rsp + 0x140]
mov r9, rax
mov rax, qword [rsp + 0x140]
mov r11, qword [rsp + 0x150]
mov qword [rsp + 0xb0], r10
lea esi, [r10 - 1]
lea rax, [rax + r10 - 1]
mov qword [rsp + 0xb8], rax
movzx edx, byte [rax]
mov eax, esi
mov ebp, r10d
test eax, eax
js 0x3a124f5e1
movsxd rcx, eax
lea r8, [rdi + rcx - 1]
jmp 0x3a124f5d2
movzx ecx, byte [r8]
sub r8, 1
cmp edx, ecx
jg 0x3a124fcd4
mov edx, ecx
movsxd rcx, edx
mov ebx, eax
add dword [r11 + rcx*4], 1
sub eax, 1
jae 0x3a124f5c0
mov rax, qword [rsp + 0x150]
mov ebx, dword [rsp + 0x160]
mov edi, 1
xor ecx, ecx
xor r10d, r10d
mov r8d, dword [rax]
sub ebx, ebp
mov dword [rax], 0
mov r13, rax
add r8d, dword [r9]
lea r11d, [rdi - 1]
mov r12d, edi
mov eax, edi
nop dword [rax]
mov edx, eax
or edx, r10d
movsxd rdx, edx
lea rdx, [r9 + rdx*4]
add ecx, dword [rdx]
mov dword [rdx], ecx
mov edx, eax
add eax, 1
shl edx, 8
or edx, r11d
add r8d, dword [r9 + rdx*4]
cmp eax, 0x100
jne 0x3a124f618
mov edx, dword [r13 + rdi*4]
add r10d, 0x100
or r12d, r10d
add edx, r8d
movsxd rax, r12d
add r8d, ecx
mov dword [r13 + rdi*4], r8d
add edx, dword [r9 + rax*4]
add rdi, 1
mov r8d, edx
cmp r10d, 0xff00
jne 0x3a124f60b
test ebx, ebx
je 0x3a124fcbe
movsxd rax, ebx
mov rdx, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0x148]
lea r15, [rax*4]
mov r8, qword [rsp + 0x140]
sub rdx, rax
mov rax, r15
add rax, rdi
lea r12, [rdi + rdx*4]
mov qword [rsp + 0x70], rax
lea eax, [rbx - 2]
movsxd rdx, eax
cmp eax, 0xffffffff
je 0x3a124f6ee
movsxd rcx, dword [r12 + rdx*4]
mov rdi, qword [rsp + 0x148]
movzx eax, byte [r8 + rcx + 1]
movzx ecx, byte [r8 + rcx]
shl ecx, 8
or eax, ecx
cdqe
lea rcx, [r9 + rax*4]
mov eax, dword [rcx]
sub eax, 1
mov dword [rcx], eax
cdqe
mov dword [rdi + rax*4], edx
sub rdx, 1
cmp edx, 0xffffffff
jne 0x3a124f6b7
movsxd rdx, dword [r12 + r15 - 4]
lea ecx, [rbx - 1]
mov dword [rsp + 0x6c], ebx
mov r8, r9
mov rdi, qword [rsp + 0x140]
mov rax, qword [rsp + 0x140]
mov dword [rsp + 0x78], 0xfe
mov qword [rsp + 0xc0], r12
movzx eax, byte [rax + rdx + 1]
movzx edx, byte [rdi + rdx]
mov dword [rsp + 0x9c], ecx
mov rdi, qword [rsp + 0x148]
mov qword [rsp + 0xc8], r15
shl edx, 8
mov r15, qword [rsp + 0x140]
or eax, edx
cdqe
lea rdx, [r9 + rax*4]
mov eax, dword [rdx]
sub eax, 1
mov dword [rdx], eax
cdqe
mov dword [rdi + rax*4], ecx
mov edi, dword [rsp + 0x160]
lea eax, [rbx + rbx]
sub edi, eax
mov dword [rsp + 0x7c], edi
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0xd4], esi
mov r12, r8
mov dword [rsp + 0xd8], ebp
mov r13, qword [rsp + 0xc0]
shl eax, 8
mov dword [rsp + 0xdc], ebx
mov dword [rsp + 0x98], eax
mov eax, 0xff
mov esi, eax
jmp 0x3a124f7b2
mov eax, dword [rsp + 0x78]
sub esi, 1
cmp esi, eax
je 0x3a124f900
mov eax, dword [rsp + 0x98]
movsxd rdx, dword [rsp + 0x6c]
or eax, esi
cdqe
mov edi, dword [r12 + rax*4]
mov eax, edx
sub eax, edi
mov dword [rsp + 0x6c], edi
cmp eax, 1
jle 0x3a124f7a3
movsxd rax, edi
mov rdi, qword [rsp + 0x148]
lea r14, [rdi + rax*4]
lea rdi, [rdi + rdx*4]
mov ecx, dword [r14]
lea rax, [r14 + 4]
cmp dword [rsp + 0x9c], ecx
mov qword [rsp + 0x48], rdi
cmove r14, rax
movsxd rax, dword [rsp + 0x7c]
mov dword [rsp + 0xd0], ecx
sub rdi, r14
mov r10, rdi
cmp eax, 0x3ff
jg 0x3a124fd35
mov r8, rdi
sar r8, 2
cmp rax, r8
jl 0x3a12503ce
mov r9, qword [rsp + 0x48]
mov r8, r14
mov rdx, r13
mov rcx, r15
call fcn.3a1249ba0
mov edi, dword [rsp + 0xd0]
cmp dword [rsp + 0x9c], edi
jne 0x3a124f7a3
movsxd rax, dword [r14 - 4]
mov rdx, rax
movsxd rax, dword [r13 + rax*4]
lea r10, [rax + 2]
mov rax, qword [rsp + 0xb0]
lea rcx, [r15 + rax]
mov rax, qword [rsp + 0x48]
mov rbx, rax
cmp r14, rax
jb 0x3a124f88d
jmp 0x3a124f8ed
mov dword [r14 - 4], r11d
add r14, 4
cmp r14, rbx
jae 0x3a124f8ed
mov r11d, dword [r14]
test r11d, r11d
js 0x3a124f880
movsxd rax, r11d
lea r9, [r13 + rax*4]
lea rax, [r15 + r10]
movsxd r8, dword [r9]
movsxd r9, dword [r9 + 4]
lea r8, [r15 + r8 + 2]
lea r9, [r15 + r9 + 2]
cmp r8, r9
jae 0x3a124f8db
cmp rax, rcx
jb 0x3a124f8d2
jmp 0x3a124f8ed
add rax, 1
add r8, 1
cmp rax, rcx
jae 0x3a124f8ed
cmp r8, r9
jae 0x3a124f8db
movzx edi, byte [r8]
cmp byte [rax], dil
je 0x3a124f8c0
cmp rax, rcx
jae 0x3a124f8ed
cmp r8, r9
jae 0x3a124f880
movzx eax, byte [rax]
cmp byte [r8], al
jb 0x3a124f880
mov eax, dword [rsp + 0x78]
sub esi, 1
mov dword [r14 - 4], edx
cmp esi, eax
jne 0x3a124f7b2
mov eax, esi
mov r13d, dword [rsp + 0x6c]
mov r8, r12
mov esi, dword [rsp + 0xd4]
sub eax, 1
mov ebp, dword [rsp + 0xd8]
mov ebx, dword [rsp + 0xdc]
mov dword [rsp + 0x78], eax
test r13d, r13d
jg 0x3a124f76c
mov ecx, dword [rsp + 0x9c]
mov r11, qword [rsp + 0x70]
mov r9, r12
mov r15, qword [rsp + 0xc8]
mov r10, qword [rsp + 0x148]
mov eax, ecx
movsxd r8, eax
lea rdx, [r10 + r8*4]
mov r12d, dword [rdx]
test r12d, r12d
jns 0x3a1250573
mov edx, dword [r10 + r8*4]
mov rdi, r8
not edx
mov dword [r10 + r8*4], edx
movsxd rdx, edx
sub r8, 1
mov dword [r11 + rdx*4], eax
movsxd rdx, dword [r10 + r8*4]
test edx, edx
js 0x3a124f963
mov dword [r11 + rdx*4], eax
mov eax, edi
sub eax, 2
jns 0x3a124f950
cmp ebx, 0xffff
jle 0x3a12505db
mov eax, ebx
cmp ebx, 0xffffff
jg 0x3a1250724
sar eax, 0x10
lea rdi, [0x3a1265e80]
cdqe
mov eax, dword [rdi + rax*4]
add eax, 0x10
add eax, eax
mov r14d, ebp
sub r14d, dword [rsp + 0x160]
mov dword [rsp + 0xe8], ebx
movsxd rdx, eax
sar eax, 0x1f
mov dword [rsp + 0xe4], ebx
lea rbp, [rsp + 0xe0]
imul rdx, rdx, 0x55555556
shr rdx, 0x20
sub edx, eax
mov rax, qword [rsp + 0x70]
mov dword [rsp + 0xe0], edx
lea r13, [rax + 4]
mov rax, qword [rsp + 0x148]
mov edx, dword [rax]
cmp r14d, edx
jge 0x3a124fad7
mov dword [rsp + 0x40], esi
mov r10, rax
mov dword [rsp + 0x48], ebx
mov rbx, qword [rsp + 0x70]
xor esi, esi
xor eax, eax
mov dword [rsp + 0x50], ecx
mov rdi, r10
mov ecx, eax
mov qword [rsp + 0x158], r9
mov rax, r13
mov r13, rbp
mov ebp, esi
mov rsi, r10
jmp 0x3a124fa7a
test ecx, ecx
je 0x3a124fa4f
movsxd rdx, ecx
mov dword [rdi + rdx*4], ecx
movsxd rdx, dword [rbx + r8*4]
lea r12, [rsi + rdx*4 + 4]
mov rdx, r12
sub rdx, rdi
cmp rdx, 4
jg 0x3a1250600
sete cl
mov rdi, r12
movzx ecx, cl
neg ecx
cmp rdi, rbx
jae 0x3a124fa93
mov edx, dword [rdi]
movsxd r8, edx
lea r9, [r8*4]
test edx, edx
jns 0x3a124fa45
sub rdi, r9
add ecx, edx
cmp rdi, rbx
jb 0x3a124fa78
mov r10, rsi
mov esi, ebp
mov rbp, r13
mov r13, rax
mov eax, ecx
mov r9, qword [rsp + 0x158]
mov ecx, dword [rsp + 0x50]
test eax, eax
je 0x3a124fab6
movsxd rdx, eax
mov dword [rdi + rdx*4], eax
test esi, esi
je 0x3a124facf
mov rax, r13
mov edx, dword [r10]
sub rax, rbx
add r13, rax
cmp r14d, edx
jl 0x3a124fa23
mov esi, dword [rsp + 0x40]
mov ebx, dword [rsp + 0x48]
mov rax, qword [rsp + 0xb8]
mov r11, qword [rsp + 0x70]
movzx edx, byte [rax]
add r11, r15
test esi, esi
js 0x3a124fb79
mov rdi, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x148]
lea eax, [rsi - 1]
test esi, esi
je 0x3a124fb79
movsxd r8, eax
add r8, rdi
jmp 0x3a124fb1a
sub r8, 1
cmp eax, 0xffffffff
je 0x3a124fb79
mov esi, edx
movzx edx, byte [r8]
mov r10d, eax
lea eax, [rax - 1]
cmp edx, esi
jge 0x3a124fb11
test r10d, r10d
je 0x3a1250762
cdqe
jmp 0x3a124fb44
sub rax, 1
cmp eax, 0xffffffff
je 0x3a125070f
mov r8d, edx
movzx edx, byte [rdi + rax]
cmp edx, r8d
jle 0x3a124fb37
mov r8d, r10d
mov esi, eax
sub r8d, eax
movsxd rax, dword [r11 - 4]
cmp r8d, 1
jg 0x3a1250739
not r10d
sub r11, 4
mov dword [rbp + rax*4], r10d
lea eax, [rsi - 1]
test esi, esi
jne 0x3a124fb09
mov eax, dword [rsp + 0x160]
mov dword [rsp + 0x50], ebx
mov ebp, 0xfe
mov r14d, 3
mov rbx, qword [rsp + 0x148]
mov dword [r9 + 0x3fffc], eax
mov rax, qword [rsp + 0x148]
sub rax, 4
mov qword [rsp + 0x40], rax
lea r8d, [rbp + 1]
mov r13d, ebp
mov r15d, ebp
mov r10d, 0xff
mov rax, qword [rsp + 0x150]
mov dword [rsp + 0x48], r8d
shl r13d, 8
mov eax, dword [rax + rbp*4 + 4]
sub eax, 1
nop word [rax + rax]
mov edx, r10d
mov esi, eax
shl edx, 8
or edx, r15d
movsxd rdx, edx
lea rdx, [r9 + rdx*4]
movsxd r11, dword [rdx]
mov dword [rdx], eax
mov edx, r13d
or edx, r10d
movsxd rdx, edx
sub esi, r11d
mov r8d, dword [r9 + rdx*4]
cmp r8d, ecx
jg 0x3a1250708
mov edx, ecx
sub edx, r8d
cmp edx, 2
jbe 0x3a1250700
cdqe
mov rdi, r14
sub rax, r11
movsxd r11, ecx
sub rdi, r11
add rdi, rax
shl rdi, 2
cmp rdi, 8
ja 0x3a1250660
mov r12, qword [rsp + 0x40]
lea rdi, [r11*4]
shl rdx, 2
lea rax, [rbx + rdi]
add rdi, r12
sub rdi, rdx
movsxd rdx, esi
sub rdx, r11
nop
mov r11d, dword [rax]
mov dword [rax + rdx*4], r11d
sub rax, 4
cmp rax, rdi
jne 0x3a124fc60
mov eax, r8d
sub eax, ecx
lea ecx, [r8 - 1]
lea eax, [rsi + rax - 1]
sub r10d, 1
cmp r10d, ebp
jne 0x3a124fbe0
or r15d, r13d
mov r8d, dword [rsp + 0x48]
movsxd rdx, r15d
lea r10, [r9 + rdx*4]
or r13d, r8d
mov r8d, eax
sub r8d, dword [r10]
movsxd rdx, r13d
add r8d, 1
mov dword [r9 + rdx*4], r8d
mov dword [r10], eax
sub rbp, 1
jae 0x3a124fbaf
mov ebx, dword [rsp + 0x50]
mov eax, ebx
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, ecx
shl r8d, 8
or edx, r8d
movsxd rdx, edx
add dword [r9 + rdx*4], 1
mov rdx, qword [rsp + 0x148]
mov dword [rdx + r10*4 - 4], eax
lea eax, [rbx - 2]
cmp ebx, 1
je 0x3a1250759
movsxd r8, eax
add r8, rdi
jmp 0x3a124fd20
shl edx, 8
sub eax, 1
sub r8, 1
or edx, ecx
movsxd rdx, edx
add dword [r9 + rdx*4], 1
cmp eax, 0xffffffff
je 0x3a124fd2a
mov edx, ecx
movzx ecx, byte [r8]
cmp ecx, edx
jle 0x3a124fd07
sub r10, 1
mov edx, ecx
jmp 0x3a124f5a9
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x70]
mov dword [rsp + 0x80], 0
mov rbp, qword [rsp + 0x48]
mov qword [rsp + 0x58], rax
cmp r10, 0x1000
jle 0x3a125077a
xor r10d, r10d
mov dword [rsp + 0x88], esi
mov dword [rsp + 0x40], r10d
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0xa0], r12
mov r12, r14
nop word [rax + rax]
mov rbx, r12
add r12, 0x1000
mov rcx, r15
mov rdx, r13
mov r9, r12
mov r8, rbx
mov r14d, 0x400
call fcn.3a1249ba0
mov rcx, qword [rsp + 0x48]
mov eax, dword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
sub rcx, r12
sar rcx, 2
cmp eax, ecx
mov esi, ecx
cmovge esi, eax
mov eax, dword [rsp + 0x40]
cmovl rdi, r12
mov ebp, eax
test al, 1
je 0x3a124fe18
nop dword [rax + rax]
movsxd rax, r14d
mov dword [rsp + 0x30], esi
mov r9, rbx
mov rcx, r15
shl rax, 2
mov qword [rsp + 0x28], rdi
sar ebp, 1
add r14d, r14d
lea rdx, [rbx + rax]
sub rbx, rax
mov qword [rsp + 0x20], rdx
mov r8, rbx
mov rdx, r13
call fcn.3a124e2f0
test bpl, 1
jne 0x3a124fde0
mov rax, qword [rsp + 0x60]
add dword [rsp + 0x40], 1
sub rax, r12
cmp rax, 0x1000
jg 0x3a124fd90
mov rbp, qword [rsp + 0x60]
mov r11, r12
mov r10d, dword [rsp + 0x40]
mov rdx, r13
mov ebx, 0x400
mov r8, r11
mov rcx, r15
mov qword [rsp + 0x60], r11
mov esi, dword [rsp + 0x88]
mov r9, rbp
mov edi, ebx
mov dword [rsp + 0x88], r10d
mov r14, qword [rsp + 0x90]
mov r12, qword [rsp + 0xa0]
call fcn.3a1249ba0
mov dword [rsp + 0x40], esi
mov r9, qword [rsp + 0x60]
mov ebx, dword [rsp + 0x88]
jmp 0x3a124fe92
add edi, edi
sar ebx, 1
je 0x3a124fed2
test bl, 1
je 0x3a124fe8c
mov eax, dword [rsp + 0x50]
movsxd rdx, edi
mov rsi, r9
mov qword [rsp + 0x20], rbp
shl rdx, 2
mov rcx, r15
add edi, edi
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x58]
sub rsi, rdx
mov rdx, r13
mov r8, rsi
mov qword [rsp + 0x28], rax
call fcn.3a124e2f0
sar ebx, 1
mov r9, rsi
jne 0x3a124fe92
mov esi, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x80]
test r8d, r8d
je 0x3a124f83d
mov rdi, qword [rsp + 0x48]
mov rdx, r13
mov r8, rbp
mov rcx, r15
mov r9, rdi
call fcn.3a1249ba0
mov dword [rsp + 0xa0], esi
mov rdx, rdi
mov qword [rsp + 0x58], r14
mov qword [rsp + 0xa8], r12
movsxd rax, dword [rdx - 4]
test eax, eax
js 0x3a12502c6
mov dword [rsp + 0x60], 0
lea rcx, [r13 + rax*4]
mov rsi, qword [rsp + 0x58]
mov rax, rbp
sub rax, rsi
sar rax, 2
mov ebx, eax
mov r11d, eax
sar ebx, 1
test eax, eax
jle 0x3a1250304
movsxd rax, dword [rcx]
mov r14d, 0xffffffff
lea rdi, [r15 + rax + 2]
movsxd rax, dword [rcx + 4]
lea r10, [r15 + rax + 2]
mov rax, rsi
cmp rdi, r10
setb r12b
nop dword [rax]
movsxd rcx, ebx
lea rsi, [rax + rcx*4]
mov ecx, dword [rsi]
test ecx, ecx
jns 0x3a124ff7f
not ecx
movsxd r8, ecx
lea r8, [r13 + r8*4]
movsxd rcx, dword [r8]
movsxd r8, dword [r8 + 4]
lea rcx, [r15 + rcx + 2]
lea r9, [r15 + r8 + 2]
cmp rcx, r9
jae 0x3a12502be
mov r8, rdi
test r12b, r12b
je 0x3a12502be
mov qword [rsp + 0x40], rax
jmp 0x3a124ffce
add rcx, 1
add r8, 1
cmp rcx, r9
jae 0x3a1250200
cmp r8, r10
jae 0x3a124ffd6
movzx eax, byte [r8]
cmp byte [rcx], al
je 0x3a124ffb8
mov rax, qword [rsp + 0x40]
cmp rcx, r9
jae 0x3a1250205
cmp r8, r10
jae 0x3a12502b0
movzx ecx, byte [rcx]
movzx r8d, byte [r8]
sub ecx, r8d
jns 0x3a12502f9
mov ecx, r11d
lea rax, [rsi + 4]
not ecx
and ecx, 1
sub ebx, ecx
mov r11d, ebx
mov ebx, r11d
sar ebx, 1
test r11d, r11d
jg 0x3a124ff70
cmp rax, rbp
jae 0x3a12501ab
test r14d, r14d
jne 0x3a125002c
not dword [rax]
mov r11, rbp
mov rcx, rdx
sub r11, rax
sub rcx, rbp
mov r8, r11
sar rcx, 2
sar r8, 2
mov r9d, ecx
mov r10d, r8d
test ecx, ecx
jle 0x3a125019e
test r8d, r8d
jle 0x3a125019e
cmp r8d, ecx
mov rcx, rax
je 0x3a1250163
mov qword [rsp + 0x80], r13
lea rsi, [rbp + 1]
lea rdi, [rbp - 5]
mov r8, rdx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x50], rsi
lea rsi, [rbp - 4]
mov qword [rsp + 0x88], rdx
mov rdx, rdi
nop dword [rax]
cmp r9d, r10d
jle 0x3a1250220
mov r12d, dword [r8 - 4]
lea rbx, [r8 - 4]
lea r8, [rcx - 1]
cmp rdx, r8
mov r8, rsi
lea r14d, [r10 + 1]
setae dil
sub r8, rcx
xor r13d, r13d
and r8, 0xfffffffffffffffc
neg r8
test dil, dil
cmovne r13, r8
sub r8, 4
test dil, dil
mov rdi, 0xfffffffffffffffc
cmovne rdi, r8
sub r13, 8
nop dword [rax]
mov qword [rsp + 0x40], rdx
mov rax, rsi
mov r8, rbx
nop dword [rax + rax]
mov edx, dword [rax]
sub rax, 4
sub r8, 4
mov dword [r8 + 4], edx
mov edx, dword [r8]
mov dword [rax + 4], edx
cmp rax, rcx
jae 0x3a12500f8
lea r8, [rbx + rdi]
sub r9d, r14d
mov rdx, qword [rsp + 0x40]
mov dword [r8], r12d
cmp r9d, r10d
jle 0x3a1250130
mov r12d, dword [r8 - 4]
add rbx, r13
jmp 0x3a12500e8
test r10d, r10d
jle 0x3a12502dc
test r9d, r9d
jle 0x3a12502dc
cmp r10d, r9d
jne 0x3a1250098
mov r13, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x90]
cmp r9d, 1
je 0x3a125017a
lea r8, [rcx + 0xf]
sub r8, rbp
cmp r8, 0x1e
ja 0x3a1250326
mov r9d, r9d
lea r10, [rbp + r9*4]
mov r8d, dword [rcx]
mov r9d, dword [rbp]
add rbp, 4
add rcx, 4
mov dword [rcx - 4], r9d
mov dword [rbp - 4], r8d
cmp r10, rbp
jne 0x3a1250182
sub rdx, r11
cmp qword [rsp + 0x58], rax
je 0x3a12501c0
mov rbp, rax
mov eax, dword [rsp + 0x60]
sub rdx, 4
test eax, eax
jne 0x3a12501e0
cmp rbp, rdx
jne 0x3a124ff14
mov esi, dword [rsp + 0xa0]
mov r14, qword [rsp + 0x58]
mov r12, qword [rsp + 0xa8]
jmp 0x3a124f83d
mov r14d, dword [rdx - 4]
sub rdx, 4
test r14d, r14d
jns 0x3a12501b7
mov r14d, dword [rdx - 4]
sub rdx, 4
test r14d, r14d
js 0x3a12501e0
jmp 0x3a12501b7
mov rax, qword [rsp + 0x40]
cmp r8, r10
jb 0x3a124fffd
mov r11d, ebx
xor r14d, r14d
jmp 0x3a125000e
mov rax, qword [rsp + 0x50]
mov rbx, r8
mov r12d, dword [rcx]
lea r14d, [r9 + 1]
cmp r8, rax
setae dil
sub rbx, rbp
xor r13d, r13d
sub rbx, 1
and rbx, 0xfffffffffffffffc
test dil, dil
cmovne r13, rbx
add rbx, 4
test dil, dil
mov edi, 4
cmovne rdi, rbx
add r13, 8
nop
mov qword [rsp + 0x40], rdx
mov rax, rbp
mov rbx, rcx
nop dword [rax + rax]
mov edx, dword [rax]
add rax, 4
add rbx, 4
mov dword [rbx - 4], edx
mov edx, dword [rbx]
mov dword [rax - 4], edx
cmp rax, r8
jb 0x3a1250270
lea rax, [rcx + rdi]
sub r10d, r14d
mov rdx, qword [rsp + 0x40]
add rcx, r13
mov dword [rax], r12d
cmp r10d, r9d
jle 0x3a1250130
mov r12d, dword [rax + 4]
jmp 0x3a1250260
mov r11d, ebx
mov r14d, 1
jmp 0x3a125000e
mov r8, rdi
jmp 0x3a124ffdb
not eax
mov dword [rsp + 0x60], 1
cdqe
lea rcx, [r13 + rax*4]
jmp 0x3a124ff2d
mov r13, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x90]
jmp 0x3a125019e
mov r14d, ecx
mov r11d, ebx
jmp 0x3a125000e
cmp qword [rsp + 0x58], rbp
jae 0x3a12501ab
mov r14, rsi
mov r12, qword [rsp + 0xa8]
mov esi, dword [rsp + 0xa0]
jmp 0x3a124f83d
mov r10d, r9d
cmp r9d, 3
jle 0x3a125054d
shr r10d, 2
xor r8d, r8d
shl r10, 4
movdqu xmm0, xmmword [rcx + r8]
movdqu xmm2, xmmword [rbp + r8]
movups xmmword [rcx + r8], xmm2
movups xmmword [rbp + r8], xmm0
add r8, 0x10
cmp r8, r10
jne 0x3a125033e
mov r10d, r9d
and r10d, 0xfffffffc
mov ebx, r10d
lea r8, [rbx*4]
lea rsi, [rcx + r8]
add r8, rbp
cmp r10d, r9d
je 0x3a125019e
mov r10d, r9d
and r10d, 3
cmp r10d, 1
je 0x3a12503be
shl rbx, 2
add rcx, rbx
add rbx, rbp
mov r9, qword [rcx]
mov rdi, qword [rbx]
mov qword [rcx], rdi
mov qword [rbx], r9
test r10b, 1
je 0x3a125019e
mov ecx, r10d
and ecx, 0xfffffffe
shl rcx, 2
add rsi, rcx
add r8, rcx
mov ecx, dword [rsi]
mov r9d, dword [r8]
mov dword [rsi], r9d
mov dword [r8], ecx
jmp 0x3a125019e
mov r11d, r8d
cmp r8d, 0xfffff
jg 0x3a12504f0
cmp r8d, 0xffff
jbe 0x3a12504cd
mov eax, r8d
cmp r8d, 0xffffff
jbe 0x3a1250536
shr eax, 0x18
lea rdi, [0x3a1265e80]
mov eax, dword [rdi + rax*4]
add eax, 0x18
cmp eax, 0xf
jle 0x3a1250498
mov edx, eax
lea r9, [0x3a1265a80]
and edx, 0xfffffffe
lea ecx, [rdx - 6]
mov edx, r8d
sar edx, cl
mov ecx, eax
movsxd rdx, edx
sar ecx, 1
mov edx, dword [r9 + rdx*4]
sub ecx, 7
shl edx, cl
mov ecx, edx
cmp eax, 0x17
jle 0x3a125044b
mov eax, r11d
cdq
idiv ecx
lea ecx, [rcx + rax + 1]
sar ecx, 1
mov eax, r11d
cdq
idiv ecx
lea edi, [rcx + rax + 1]
sar edi, 1
mov eax, edi
imul eax, edi
cmp eax, r8d
setg al
movzx eax, al
sub edi, eax
cmp dword [rsp + 0x7c], edi
jl 0x3a125055a
mov eax, dword [rsp + 0x7c]
mov rbp, qword [rsp + 0x48]
mov dword [rsp + 0x80], 0
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x58], rax
jmp 0x3a124fd53
cmp eax, 7
jle 0x3a12505c5
mov edx, eax
sar eax, 1
and edx, 0xfffffffe
lea ecx, [rdx - 6]
mov edx, r8d
sar edx, cl
mov ecx, 7
sub ecx, eax
movsxd rdx, edx
lea rax, [0x3a1265a80]
mov eax, dword [rax + rdx*4]
sar eax, cl
mov edi, eax
add edi, 1
jmp 0x3a1250457
test r8d, 0xff00
je 0x3a1250523
mov eax, r8d
lea rdi, [0x3a1265e80]
sar eax, 8
cdqe
mov eax, dword [rdi + rax*4]
add eax, 8
jmp 0x3a125040b
mov dword [rsp + 0x50], 0x400
mov rax, 0xfffffffffffff000
mov rdi, qword [rsp + 0x48]
lea rbp, [rdi + rax]
mov eax, dword [rsp + 0x50]
mov r10, rbp
mov qword [rsp + 0x58], rbp
mov dword [rsp + 0x80], eax
sub r10, r14
jmp 0x3a124fd53
movzx eax, r8b
lea rdi, [0x3a1265e80]
mov eax, dword [rdi + rax*4]
jmp 0x3a125040b
sar eax, 0x10
lea rdi, [0x3a1265e80]
cdqe
mov eax, dword [rdi + rax*4]
add eax, 0x10
jmp 0x3a125040b
mov rsi, rcx
mov r8, rbp
xor ebx, ebx
jmp 0x3a125038e
mov eax, 0x400
cmp edi, eax
cmovle eax, edi
mov dword [rsp + 0x50], eax
cdqe
shl rax, 2
neg rax
jmp 0x3a12504ff
mov r8d, eax
jmp 0x3a1250583
mov edi, dword [rdx - 4]
sub rdx, 4
test edi, edi
js 0x3a12505a8
movsxd rdi, dword [rdx]
mov r12, rdx
mov dword [r11 + rdi*4], r8d
sub r8d, 1
jae 0x3a1250578
not eax
mov dword [rdx], eax
cmp ebx, 0xffff
jle 0x3a12505db
jmp 0x3a124f99a
mov edx, r8d
sub edx, eax
mov dword [r12], edx
test r8d, r8d
je 0x3a124f98e
movsxd r8, r8d
mov rax, r8
jmp 0x3a124f963
movsxd r8, r8d
lea rax, [0x3a1265a80]
mov edi, dword [rax + r8*4]
sar edi, 4
jmp 0x3a1250467
test bh, 0xff
je 0x3a1250747
mov eax, ebx
lea rdi, [0x3a1265e80]
sar eax, 8
cdqe
mov eax, dword [rdi + rax*4]
add eax, 8
jmp 0x3a124f9ba
mov qword [rsp + 0x28], r13
mov rdx, rax
mov r9, rdi
mov r8, rsi
mov qword [rsp + 0x20], r12
mov rcx, rbx
mov qword [rsp + 0x58], rax
mov dword [rsp + 0xec], 0
call fcn.3a124b7d0
mov edx, dword [rsp + 0xec]
mov rax, qword [rsp + 0x58]
test edx, edx
je 0x3a1250647
add ebp, edx
mov rdi, r12
xor ecx, ecx
jmp 0x3a124fa73
sub rdi, r12
mov rcx, rdi
mov rdi, r12
sar rcx, 2
jmp 0x3a124fa73
add edx, 1
lea r12, [rbx + r11*4 - 0xc]
lea rdi, [rbx + rax*4 - 0xc]
xor eax, eax
mov r11d, edx
shr r11d, 2
neg r11
shl r11, 4
nop dword [rax]
movdqu xmm1, xmmword [r12 + rax]
movups xmmword [rdi + rax], xmm1
sub rax, 0x10
cmp rax, r11
jne 0x3a1250680
test dl, 3
je 0x3a124fc70
and edx, 0xfffffffc
mov r11d, ecx
mov eax, esi
sub r11d, edx
sub eax, edx
movsxd rdx, r11d
mov edi, dword [rbx + rdx*4]
movsxd rdx, eax
sub eax, 1
mov dword [rbx + rdx*4], edi
lea edx, [r11 - 1]
cmp r8d, edx
jg 0x3a124fc70
movsxd rdx, edx
cdqe
sub r11d, 2
lea r12, [rdx*4]
mov edx, dword [rbx + rdx*4]
lea rdi, [rax*4]
mov dword [rbx + rax*4], edx
cmp r8d, r11d
jg 0x3a124fc70
mov eax, dword [rbx + r12 - 4]
mov dword [rbx + rdi - 4], eax
jmp 0x3a124fc70
movsxd r11, ecx
jmp 0x3a124fc3d
mov eax, esi
jmp 0x3a124fc7d
movsxd rax, dword [r11 - 4]
mov rsi, qword [rsp + 0x148]
mov dword [rsi + rax*4], r10d
jmp 0x3a124fb79
shr eax, 0x18
lea rdi, [0x3a1265e80]
mov eax, dword [rdi + rax*4]
add eax, 0x18
jmp 0x3a124f9ba
mov dword [rbp + rax*4], r10d
sub r11, 4
jmp 0x3a124fb02
movzx eax, bl
lea rdi, [0x3a1265e80]
mov eax, dword [rdi + rax*4]
jmp 0x3a124f9ba
lea ebp, [r10 - 1]
jmp 0x3a124f5e1
movsxd rax, dword [r11 - 4]
mov rsi, qword [rsp + 0x148]
mov dword [rsi + rax*4], 0
jmp 0x3a124fb79
mov r9, rbp
mov r8, r14
mov rdx, r13
mov rcx, r15
call fcn.3a1249ba0
jmp 0x3a124fed6