Function at 0x1800493c0
Capabilities:
Encrypt data using speck

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov eax, dword [rbp + 0x78]
mov r10, r8
mov r8d, dword [rbp + 0x78]
mov r14, rcx
mov edi, dword [rbp + 0x78]
mov r15d, edx
mov esi, dword [rbp + 0x78]
imul r12d, edx, 0x972
mov dword [rbp - 0x68], eax
mov dword [rsp + 0x50], r8d
cmp edx, r12d
ja 0x18004983c
mov r13, qword [rbp + 0x10]
mov rbx, qword [rbp + 0x90]
cmp r15d, 0x5198
ja 0x180049a58
je 0x180049a1a
cmp r15d, 0xc0
ja 0x180049913
je 0x180049904
mov eax, r15d
sub eax, 0x38
je 0x1800498f3
sub eax, 7
je 0x180049498
cmp eax, 0x53
jne 0x180049829
mov qword [rsp + 0x38], 0
lea edx, [rax + 0x5a]
mov qword [rsp + 0x30], rbx
xor r9d, r9d
mov qword [rsp + 0x28], 0
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], 0
call fcn.180065760
jmp 0x18004981d
cmp r14, qword [rbx + 0x28]
je 0x180049829
xor r9d, r9d
xor edx, edx
mov r8d, 0x8f
mov rcx, r14
call fcn.180058a10
test eax, eax
je 0x180049816
mov ebx, 0x21
mov eax, ebx
sub eax, 0x21
je 0x1800494e4
sub eax, 1
je 0x1800497f5
cmp eax, 1
jne case.0x18004951b.1
lea r15d, [rax + 0x3e]
jmp case.0x18004951b.1
xor r9d, r9d
mov dword [rsp + 0x20], 0xda
xor r8d, r8d
lea rcx, [rsp + 0x58]
mov rdx, r14
call fcn.18005a500
cmp eax, 6
ja case.0x18004951b.1
lea rdx, [0x180000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x4a618]
add rcx, rdx
jmp rcx
cmp dword [rsp + 0x58], 0
jne 0x180049593
mov ebx, 0x113
nop dword [rax]
mov eax, ebx
sub eax, 0x113
je 0x180049579
sub eax, 1
je 0x180049553
cmp eax, 1
jne 0x180049584
mov rax, qword [r14 + 0x10]
cmp qword [rax + 8], 0
jne 0x180049584
mov r14, rax
jmp 0x180049584
mov rax, qword [r14 + 0x10]
mov rdx, qword [rbp + 0x90]
mov rcx, qword [rax + 8]
mov dword [rcx + 0x18], 1
mov ecx, 0x16
mov r8, qword [r14 + 0x10]
call fcn.18003dd80
jmp 0x180049584
mov rax, qword [r14 + 0x10]
mov dword [rax + 0x18], 0
inc ebx
cmp ebx, 0x116
jb 0x180049530
jmp 0x1800497f5
mov ebx, 0x5d
cmp ebx, 0x5d
je 0x1800495b4
cmp ebx, 0x112
jne 0x1800495e5
mov rax, qword [r14 + 0x10]
cmp qword [rax], 0
jne 0x1800495e5
mov r14, rax
jmp 0x1800495e5
mov rax, qword [r14 + 0x10]
mov r9d, 0xc6
mov r8, qword [rbp + 0x90]
xor edx, edx
mov dword [rax + 0x18], 0
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax]
mov dword [rcx + 0x18], 1
mov rcx, qword [r14 + 0x10]
call fcn.180050520
add ebx, 0xb5
cmp ebx, 0x1c7
jb 0x180049598
jmp 0x1800497f5
mov rax, qword [r14 + 0x10]
add r14, 0x10
cmp dword [rsp + 0x58], 0
jne 0x18004961a
mov rcx, qword [rax + 8]
mov dword [rcx + 0x18], 0
mov r14, qword [r14]
jmp 0x1800497f5
mov rcx, qword [rax]
mov dword [rcx + 0x18], 0
mov r14, qword [r14]
jmp 0x1800497f5
mov edx, 0xee
mov eax, edx
sub eax, 0xec
je 0x1800497f5
sub eax, 1
je 0x180049655
cmp eax, 1
jne 0x180049680
mov rax, qword [r14 + 0x10]
mov dword [rax + 0x18], 1
jmp 0x180049680
cmp dword [rsp + 0x58], 0
mov rax, qword [r14 + 0x10]
jne 0x180049666
mov rcx, qword [rax + 8]
jmp 0x180049669
mov rcx, qword [rax]
test rcx, rcx
je 0x180049675
mov dword [rcx + 0x18], 0
mov rax, qword [rbp + 0x90]
mov r14, qword [rax + 0x28]
dec edx
cmp edx, 0xeb
ja 0x180049631
cmp dword [rsp + 0x58], 0
mov rax, qword [r14 + 0x10]
jne 0x1800496d3
mov rax, qword [rax + 8]
mov r9d, 0xc6
mov r8, qword [rbp + 0x90]
xor edx, edx
mov dword [rax + 0x18], 0
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
mov dword [rax + 0x18], 1
mov rcx, qword [r14 + 0x10]
mov rcx, qword [rcx + 8]
call fcn.180050520
jmp 0x1800497f5
mov rax, qword [rax]
mov rdx, qword [rbp + 0x90]
mov dword [rax + 0x18], 0
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax]
mov rax, qword [rcx + 8]
mov ecx, 0x16
mov dword [rax + 0x18], 1
mov r8, qword [r14 + 0x10]
mov r8, qword [r8]
call fcn.18003dd80
jmp 0x1800497f5
cmp dword [rsp + 0x58], 0
jne 0x18004977d
mov ebx, 0xef
nop dword [rax + rax]
mov eax, ebx
sub eax, 0xee
je 0x18004975c
cmp eax, 1
jne 0x180049771
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax + 8]
mov eax, dword [rax + 0x18]
mov dword [rcx + 0x18], eax
mov rax, qword [r14 + 0x10]
mov dword [rax + 0x18], 1
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax + 8]
mov rax, qword [rcx + 8]
mov dword [rax + 0x18], 1
jmp 0x180049771
mov r8, qword [r14 + 0x10]
mov ecx, 0x16
mov rdx, qword [rbp + 0x90]
call fcn.18003dd80
dec ebx
cmp ebx, 0xed
ja 0x180049720
jmp case.0x18004951b.0
mov ebx, 0x5c
cmp ebx, 0x5c
je 0x1800497cf
cmp ebx, 0x42d8
je 0x1800497b1
cmp ebx, 0x8554
jne 0x1800497dc
mov r8, qword [rbp + 0x90]
mov r9d, 0xc6
mov rcx, qword [r14 + 0x10]
xor edx, edx
call fcn.180050520
jmp 0x1800497dc
mov rax, qword [r14 + 0x10]
mov dword [rax + 0x18], 1
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax]
mov rax, qword [rcx]
mov dword [rax + 0x18], 1
jmp 0x1800497dc
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax]
mov eax, dword [rax + 0x18]
mov dword [rcx + 0x18], eax
add ebx, 0x427c
cmp ebx, 0xc774
jbe 0x180049782
mov rax, qword [rbp + 0x90]
mov r14, qword [rax + 0x28]
mov ebx, 0x22
inc ebx
cmp ebx, 0x24
jb 0x1800494c2
mov rax, qword [rbp + 0x90]
cmp r14, qword [rax + 0x28]
jne 0x1800494a2
mov rbx, qword [rbp + 0x90]
mov r10, qword [rbp + 0x80]
mov r8d, dword [rsp + 0x50]
imul eax, dword [rbp + 0x78], 0xba
add r15d, eax
cmp r15d, r12d
jbe 0x180049423
mov r15, qword [rsp + 0x70]
mov rax, qword [rsp + 0x70]
mov r13d, dword [rbp + 0x78]
mov r9d, dword [rbp + 0x78]
mov r12d, dword [rbp + 0x78]
mov ebx, dword [rbp + 0x78]
mov r14, qword [rsp + 0x70]
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x50], rax
mov dword [rsp + 0x68], r13d
mov dword [rsp + 0x54], r9d
imul eax, dword [rbp + 0x78], 0x2e8
mov dword [rsp + 0x60], r12d
cmp r12d, eax
ja 0x180049978
cmp r12d, 0x4408
ja 0x18004a576
je 0x18004a1d7
cmp r12d, 0x1b58
ja 0x180049e52
je 0x180049e24
mov eax, r12d
sub eax, 0x38
je 0x180049da9
sub eax, 0x5a
je 0x18004a610
cmp eax, 0xd36
jne 0x180049d96
imul eax, dword [rbp + 0x78], 0x3e
mov r13d, dword [rbp - 0x80]
mov r9d, dword [rbp - 0x30]
dec r13d
mov r10, qword [rbp + 0x80]
dec r9d
mov dword [rsp + 0x68], r13d
add r12d, eax
mov dword [rsp + 0x54], r9d
jmp 0x18004986d
cmp dword [r14], 0
jne 0x180049829
mov eax, 0xfffffffd
jmp 0x18004997a
mov r13, qword [rbp + 0x90]
mov rbx, r13
jmp 0x180049829
cmp r15d, 0x28e8
je 0x180049941
cmp r15d, 0x2e05
jne 0x180049829
cmp dword [r14 + 0x18], 2
je 0x180049829
mov dword [r14 + 0x18], 1
jmp 0x180049829
mov r8, qword [rbp + 0x90]
xor edx, edx
mov r9, r14
lea ecx, [rdx + 0x69]
call fcn.180048e20
cmp eax, 0xffffffff
jne 0x180049cc7
mov ebx, 0x11
cmp ebx, 0x11
je 0x180049999
cmp ebx, 0xbc
je 0x180049995
cmp ebx, 0x167
jne 0x1800499f5
mov eax, esi
mov rbx, qword [rsp + 0x170]
add rsp, 0x130
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov esi, edi
jmp 0x1800499f5
mov rax, qword [rbp + 0x88]
test rax, rax
je 0x1800499c1
mov r9, qword [rbp + 0x90]
mov r8, rax
mov edx, 0x10e
xor ecx, ecx
call fcn.18004bef0
mov edi, eax
xor eax, eax
jmp 0x1800499c3
mov edi, eax
mov r10, qword [rbp + 0x80]
test r10, r10
je 0x1800499fc
mov qword [rsp + 0x38], rax
xor r9d, r9d
mov qword [rsp + 0x30], r10
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov edx, 0xad
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.180065760
mov r10, qword [rbp + 0x80]
add ebx, 0xab
cmp ebx, 0x212
jb 0x180049963
mov rbx, qword [rbp + 0x90]
jmp 0x180049824
mov rax, qword [rbp + 0x90]
lea r9, [rsp + 0x60]
xor r8d, r8d
mov qword [rsp + 0x20], 0
lea rdx, [rbp - 0x18]
mov ecx, 0x107
mov eax, dword [rax]
add eax, 2
mov dword [rsp + 0x60], eax
call fcn.18004c7a0
mov edi, eax
test eax, eax
jne 0x18004997a
jmp 0x180049816
cmp r15d, 0xa2f8
ja 0x180049c65
je 0x180049c2e
cmp r15d, 0x6aa6
je 0x180049b7c
cmp r15d, 0x7a48
je 0x180049ae5
cmp r15d, 0x8c40
jne 0x180049829
test byte [rbp + 0x90], 7
jne 0x180049cdf
mov dword [rsp + 0x40], 0x78
mov r9, r13
mov qword [rsp + 0x38], 0
xor r8d, r8d
mov qword [rsp + 0x30], 0
mov rdx, r14
mov qword [rsp + 0x28], 0
xor ecx, ecx
mov qword [rsp + 0x20], 0
call fcn.18000efd0
xor esi, esi
mov qword [r13 + 0x60018], r14
jmp 0x180049816
mov rbx, qword [rbp + 0x90]
lea r8, [rbp - 0x48]
mov r9d, 0xac
xor edx, edx
xor ecx, ecx
mov eax, dword [rbx]
add eax, 2
mov dword [rbp - 0x18], eax
call fcn.180015650
mov rdi, rax
test eax, eax
jne 0x180049d19
mov r9d, 0xac
lea r8, [rbp + 0x18]
xor edx, edx
xor ecx, ecx
call fcn.180015650
mov edi, eax
test eax, eax
jne 0x180049ce9
lea r9, [rbp - 0x80]
mov r8, rbx
mov edx, 0x120
xor ecx, ecx
call fcn.18004bef0
mov edi, eax
test eax, eax
je 0x180049816
mov r15, qword [rsp + 0x70]
mov rax, qword [rsp + 0x70]
mov r13d, dword [rbp + 0x78]
mov ecx, dword [rbp + 0x78]
mov ebx, dword [rbp + 0x78]
mov r14, qword [rsp + 0x70]
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x50], rax
mov dword [rsp + 0x68], r13d
mov dword [rsp + 0x54], ecx
jmp 0x180049d86
cmp dword [r14], 0
jle 0x18004a610
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
cdq
xor eax, edx
sub eax, edx
and eax, 0xfffffff
je 0x180049b86
mov rbx, qword [rbp + 0x90]
lea r9, [rsp + 0x60]
mov rdx, rbx
mov dword [rsp + 0x60], eax
mov rcx, rbx
mov r8d, 0x3d
call fcn.180047d40
test eax, eax
jne 0x18004997a
dec dword [r14]
cmp dword [r14], eax
jle 0x180049816
nop dword [rax]
xor r9d, r9d
mov dword [rsp + 0x60], 1
mov r8, rbx
lea rcx, [rsp + 0x60]
lea edx, [r9 + 0x42]
call fcn.18004e6f0
test eax, eax
jne 0x18004997a
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
lea r9, [rsp + 0x68]
mov r8d, 0x3d
cdq
mov rcx, rbx
xor eax, edx
sub eax, edx
mov rdx, rbx
mov dword [rsp + 0x68], eax
call fcn.180047d40
test eax, eax
jne 0x18004997a
dec dword [r14]
cmp dword [r14], eax
jg 0x180049bd0
jmp 0x180049816
lea r9, [rbp - 0x30]
mov r8, r14
mov edx, 0x120
xor ecx, ecx
call fcn.18004bef0
mov edi, eax
test eax, eax
jne 0x180049d4c
mov eax, dword [r14 + 8]
xor ecx, ecx
cmp dword [rbx + 8], eax
mov dword [rbp - 0x28], edi
setne cl
mov dword [rbp - 0x78], edi
mov dword [rbp - 0x68], ecx
jmp 0x18004981d
cmp r15d, 0xcba8
je 0x180049c80
cmp r15d, 0x117c0
je 0x180049978
jmp 0x180049829
xor r9d, r9d
mov dword [rsp + 0x20], 0x2d
lea r8, [rbp - 0x30]
xor edx, edx
xor ecx, ecx
call fcn.180049030
mov r10, qword [rbp + 0x80]
mov r8d, eax
mov eax, 0x92492493
imul r8d
add edx, r8d
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x1c
sub r8d, ecx
mov dword [rsp + 0x50], r8d
jmp 0x180049829
mov rbx, qword [rbp + 0x90]
mov r8d, dword [rsp + 0x50]
mov r10, qword [rbp + 0x80]
jmp 0x180049829
mov eax, 1
jmp 0x18004997a
mov r15, qword [rsp + 0x70]
mov rax, qword [rsp + 0x70]
mov r13d, dword [rbp + 0x78]
mov ecx, dword [rbp + 0x78]
mov ebx, dword [rbp + 0x78]
mov r14, qword [rsp + 0x70]
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x50], rax
mov dword [rsp + 0x68], r13d
mov dword [rsp + 0x54], ecx
jmp 0x18004a5f6
mov r15, qword [rsp + 0x70]
mov r12d, 0x5f28
mov rax, qword [rsp + 0x70]
mov r13d, dword [rbp + 0x78]
mov ecx, dword [rbp + 0x78]
mov ebx, dword [rbp + 0x78]
mov r14, qword [rsp + 0x70]
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x50], rax
mov dword [rsp + 0x68], r13d
mov dword [rsp + 0x54], ecx
jmp 0x180049d8c
mov r15, qword [rsp + 0x70]
mov rax, qword [rsp + 0x70]
mov r13d, dword [rbp + 0x78]
mov ecx, dword [rbp + 0x78]
mov ebx, dword [rbp + 0x78]
mov r14, qword [rsp + 0x70]
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x50], rax
mov dword [rsp + 0x68], r13d
mov dword [rsp + 0x54], ecx
xor edx, edx
lea rcx, [rbp - 0x80]
lea r8d, [rdx + 0x3e]
call fcn.180048840
mov r12d, 0x5198
mov r9d, dword [rsp + 0x54]
mov r8d, dword [rsp + 0x50]
imul eax, dword [rbp + 0x78], 0x3e
mov r10, qword [rbp + 0x80]
add r12d, eax
jmp 0x18004986d
cmp r8d, 0x1b
jge 0x180049e09
mov eax, 0x1b
lea r9, [rbp - 0x80]
sub eax, r8d
lea rdx, [rbp - 0x80]
lea r8, [rsp + 0x60]
mov dword [rsp + 0x50], eax
mov ecx, 0x72
mov dword [rsp + 0x60], eax
call fcn.180050a70
mov edi, eax
test eax, eax
jne 0x18004a1d7
mov eax, dword [rsp + 0x50]
lea r9, [rbp - 0x30]
lea r8, [rsp + 0x60]
mov dword [rsp + 0x60], eax
lea rdx, [rbp - 0x30]
lea ecx, [rdi + 0x72]
call fcn.180050a70
mov edi, eax
test eax, eax
jne 0x18004a1d7
jmp 0x180049d8c
imul eax, dword [rbp + 0x78], 0x3e
xor r8d, r8d
mov r10, qword [rbp + 0x80]
mov dword [rsp + 0x50], r8d
add r12d, eax
jmp 0x18004986d
mov eax, r13d
lea r8, [rbp - 0x30]
sub eax, r9d
lea rcx, [rsp + 0x60]
xor r9d, r9d
mov dword [rsp + 0x60], eax
lea edx, [r9 + 0x42]
call fcn.18004e6f0
mov edi, eax
test eax, eax
jne 0x18004a1d7
jmp 0x180049d8c
cmp r12d, 0x28e8
je 0x180049f2c
cmp r12d, 0x3678
jne 0x180049d96
cmp dword [rbp - 0x80], 0
jne 0x180049e7b
mov dword [rbp - 0x78], 0
jmp 0x180049e88
mov rax, qword [rbp + 0x90]
mov eax, dword [rax + 8]
mov dword [rbp - 0x78], eax
test r10, r10
je 0x180049ed2
xor r8d, r8d
lea rdx, [rbp - 0x18]
mov ecx, 0xb6
call fcn.18003df30
mov rdi, qword [rbp + 0x80]
lea rcx, [rbp - 0x18]
mov r9, rdi
mov qword [rsp + 0x28], 0
xor r8d, r8d
mov dword [rsp + 0x20], 0x68
xor edx, edx
call fcn.18004aff0
mov eax, dword [rbp - 0x68]
mov r8d, dword [rsp + 0x50]
mov dword [rdi + 8], eax
mov rdi, qword [rbp + 0x88]
test rdi, rdi
je 0x180049f25
mov dword [rsp + 0x60], r8d
lea r9, [rbp - 0x80]
lea r8, [rsp + 0x60]
mov qword [rsp + 0x20], 0
lea rdx, [rbp - 0x80]
mov ecx, 0xbe
call fcn.1800074f0
mov r9, rdi
mov qword [rsp + 0x28], 0
xor r8d, r8d
mov dword [rsp + 0x20], 0x68
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.18004aff0
xor edi, edi
jmp 0x180049d8c
movsxd r12, r9d
lea rdx, [rbp - 0x80]
mov r8d, 0x55
mov qword [rsp + 0x70], r12
lea rcx, [rbp - 0x30]
call fcn.180048a60
cmp eax, 0xffffffff
je 0x180049faf
movsxd rax, r13d
sub rax, r12
lea r15, [rax*4]
nop word [rax + rax]
mov rax, qword [rbp - 8]
lea r9, [rbp - 0x30]
mov dword [rsp + 0x28], 0xfa
lea r8, [rbp - 0x80]
xor edx, edx
xor ecx, ecx
inc dword [r15 + rax]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
call fcn.180010410
mov edi, eax
test eax, eax
jne 0x18004a1d2
lea r8d, [rax + 0x55]
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x30]
call fcn.180048a60
cmp eax, 0xffffffff
jne 0x180049f60
mov r15, qword [rsp + 0x78]
mov eax, r13d
lea r9, [rsp + 0x58]
sub eax, dword [rsp + 0x54]
xor r8d, r8d
mov dword [rsp + 0x58], eax
mov edx, 0xba
lea rax, [rbp - 0x30]
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.180042a00
mov r9d, dword [rsp + 0x54]
mov r8d, r13d
mov dword [rsp + 0x58], r13d
movsxd r13, r13d
lea eax, [r9 + 1]
movsxd rcx, eax
mov qword [rbp + 0x10], rcx
cmp r13, rcx
jl 0x18004a554
nop dword [rax + rax]
cmp r8d, dword [rbp - 0x80]
jg 0x18004a53a
mov r11, qword [rbp - 0x20]
mov r10, qword [rbp - 0x70]
mov eax, dword [r11 + r12*4]
cmp dword [r10 + r13*4], eax
jne 0x18004a030
mov rax, qword [rbp - 8]
mov rcx, r13
sub rcx, r12
mov dword [rax + rcx*4 - 4], 0xfffffff
jmp 0x18004a0ae
mov r9d, 0x32
mov eax, r9d
sub eax, 0x30
je 0x18004a077
sub eax, 1
je 0x18004a066
cmp eax, 1
jne 0x18004a096
mov eax, dword [r10 + r13*4]
xor edx, edx
mov r8d, dword [r10 + r13*4 - 4]
mov ecx, dword [r11 + r12*4]
shl rax, 0x1c
or rax, r8
div rcx
mov r15, rax
jmp 0x18004a096
cmp r15, 0xfffffff
jbe 0x18004a096
mov r15d, 0xfffffff
jmp 0x18004a096
mov rax, qword [rbp - 8]
mov edx, r15d
and edx, 0xfffffff
mov rcx, r13
sub rcx, r12
mov dword [rax + rcx*4 - 4], edx
mov r10, qword [rbp - 0x70]
mov r11, qword [rbp - 0x20]
dec r9d
cmp r9d, 0x2f
ja 0x18004a036
mov r8d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x54]
mov qword [rsp + 0x78], r15
mov rcx, qword [rbp - 8]
mov rax, r13
sub rax, r12
lea rdx, [rax*4 - 4]
mov qword [rbp - 0x58], rdx
mov eax, dword [rcx + rdx]
inc eax
and eax, 0xfffffff
mov dword [rcx + rdx], eax
xor r10d, r10d
nop dword [rax]
nop dword [rax + rax]
mov r15d, 0xeb
nop word [rax + rax]
mov eax, r15d
sub eax, 0xeb
je 0x18004a1f1
sub eax, 0x5e
je 0x18004a174
sub eax, 0x5e
je 0x18004a12c
cmp eax, 0x5e
jne 0x18004a230
mov rax, qword [rbp - 0x70]
mov ecx, dword [rax + r13*4]
mov rax, qword [rbp + 0x28]
mov dword [rax + 8], ecx
mov dword [rbp + 0x18], 3
jmp 0x18004a230
lea eax, [r8 - 2]
test eax, eax
jns 0x18004a139
mov ecx, r10d
jmp 0x18004a142
mov rax, qword [rbp - 0x70]
mov ecx, dword [rax + r13*4 - 8]
mov rax, qword [rbp + 0x28]
mov dword [rax], ecx
lea eax, [r8 - 1]
test eax, eax
jns 0x18004a15f
mov rax, qword [rbp + 0x28]
mov ecx, r10d
mov dword [rax + 4], ecx
jmp 0x18004a230
mov rax, qword [rbp - 0x70]
mov ecx, dword [rax + r13*4 - 4]
mov rax, qword [rbp + 0x28]
mov dword [rax + 4], ecx
jmp 0x18004a230
lea eax, [r9 - 1]
test eax, eax
jns 0x18004a181
mov ecx, r10d
jmp 0x18004a18a
mov rax, qword [rbp - 0x20]
mov ecx, dword [rax + r12*4 - 4]
mov rax, qword [rbp - 0x38]
lea r9, [rbp]
mov r8d, reloc.SHELL32.dll_SHTestTokenMembership
mov dword [rax], ecx
mov rax, qword [rbp - 0x20]
mov ecx, dword [rax + r12*4]
mov rax, qword [rbp - 0x38]
mov dword [rax + 4], ecx
mov rax, qword [rbp - 8]
mov dword [rbp - 0x48], 2
mov ecx, dword [rdx + rax]
lea rdx, [rbp - 0x48]
mov dword [rbp], ecx
lea rcx, [rbp - 0x48]
call fcn.180022ee0
mov edi, eax
test eax, eax
je 0x18004a22c
mov r13d, dword [rsp + 0x68]
mov r15, qword [rsp + 0x78]
xor edx, edx
lea rcx, [rbp - 0x30]
mov r12d, 0x4408
lea r8d, [rdx + 0x3e]
call fcn.180048840
jmp 0x180049d8c
mov rcx, qword [rbp - 8]
xor r9d, r9d
mov qword [rsp + 0x38], r10
xor r8d, r8d
mov eax, dword [rcx + rdx]
dec eax
and eax, 0xfffffff
mov dword [rcx + rdx], eax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x30], rax
mov edx, 0xad
mov qword [rsp + 0x28], r10
xor ecx, ecx
mov qword [rsp + 0x20], r10
call fcn.180065760
mov rdx, qword [rbp - 0x58]
mov r8d, dword [rsp + 0x58]
add r15d, 0x5e
mov r9d, dword [rsp + 0x54]
mov r10d, 0
cmp r15d, 0x263
jb 0x18004a0f0
mov r8d, dword [rbp - 0x48]
lea r12, [rbp + 0x18]
lea r15d, [r10 + 0x69]
mov edi, r10d
cmp edi, 8
ja case.0x18004a27c.3
lea rdx, [0x180000000]
mov eax, edi
mov ecx, dword [rdx + rax*4 + 0x4a634]
add rcx, rdx
jmp rcx
mov rax, qword [rbp - 0x50]
cmp dword [rax + 0x60030], 0xb
jb 0x18004a2bc
mov rcx, qword [rax + 0x60000]
mov r9, rax
mov edx, 0xb4
mov qword [rsp + 0x20], r10
lea r8, [rcx - 0xc]
add rcx, 0xfffffffffffffffb
call fcn.18001b7e0
mov r8d, dword [rbp - 0x48]
mov ebx, dword [pe_dos_header]
jmp case.0x18004a27c.3
cmp dword [0], 4
jl 0x18004a2e2
mov r8, qword [rax + 0x60000]
mov rdx, rax
sub r8, 3
mov ecx, 0x119
call fcn.18000e540
mov r8d, dword [rbp - 0x48]
mov ebx, dword [pe_dos_header]
jmp case.0x18004a27c.3
cmp r8d, dword [r12]
jg 0x18004a3c7
jl 0x18004a3e4
lea eax, [r8 - 1]
movsxd rcx, eax
mov rax, qword [rbp - 0x38]
lea r14, [rax + rcx*4]
jmp case.0x18004a27c.3
mov edx, r10d
test r8d, r8d
jle case.0x18004a27c.3
lea eax, [r8 - 1]
movsxd rcx, eax
mov rax, qword [r12 + 0x10]
lea r9, [rax + rcx*4]
sub r9, r14
mov ecx, dword [r14]
cmp ecx, dword [r9 + r14]
ja 0x18004a3c7
jb 0x18004a3e4
inc edx
sub r14, 4
cmp edx, r8d
jl 0x18004a331
jmp case.0x18004a27c.3
lea rax, [rbp - 0x48]
mov qword [rbp - 0x50], rax
mov eax, dword [pe_dos_header]
cmp eax, 0x10000
jle 0x18004a37d
add eax, 0xffff0000
mov dword [0], 0x10000
movsxd rcx, eax
add r12, rcx
mov dword [rsp + 0x40], 0x78
lea r9, [rbp - 0x48]
mov qword [rsp + 0x38], r10
xor r8d, r8d
mov qword [rsp + 0x30], r10
mov rdx, r12
mov qword [rsp + 0x28], r10
xor ecx, ecx
mov qword [rsp + 0x20], r10
call fcn.18000efd0
mov r8d, dword [rbp - 0x48]
inc r15d
inc edi
xor r10d, r10d
cmp r15d, 0x6f
jb 0x18004a260
cmp ebx, 1
jne 0x18004a3ee
jmp 0x18004a3cc
mov ebx, 1
mov rdx, qword [rbp - 0x58]
mov r8d, dword [rsp + 0x58]
mov r12, qword [rsp + 0x70]
mov r9d, dword [rsp + 0x54]
jmp 0x18004a0e0
mov ebx, 0xffffffff
jmp 0x18004a3ee
mov ebx, r10d
mov rax, qword [rbp - 8]
lea r9, [rbp + 8]
mov rcx, qword [rbp - 0x58]
lea rdx, [rbp - 0x30]
mov r8d, reloc.SHELL32.dll_SHTestTokenMembership
mov ecx, dword [rcx + rax]
mov dword [rbp + 8], ecx
lea rcx, [rbp - 0x48]
call fcn.180022ee0
mov edi, eax
test eax, eax
jne 0x18004a1cd
mov r12d, dword [rsp + 0x58]
lea r8, [rbp - 0x48]
sub r12d, dword [rsp + 0x54]
lea edx, [rax + 0x42]
dec r12d
lea rcx, [rbp - 0x60]
xor r9d, r9d
mov dword [rbp - 0x60], r12d
call fcn.18004e6f0
mov edi, eax
test eax, eax
jne 0x18004a1cd
lea rax, [rbp - 0x80]
mov dword [rsp + 0x28], 0xfa
lea r9, [rbp - 0x48]
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x80]
xor edx, edx
xor ecx, ecx
call fcn.180010410
mov edi, eax
test eax, eax
jne 0x18004a1cd
cmp dword [rbp - 0x78], 1
jne 0x18004a52b
mov r15d, 0x47
mov eax, r15d
sub eax, 0x45
je 0x18004a4e1
sub eax, 1
je 0x18004a4bd
cmp eax, 1
jne 0x18004a51e
lea r9, [rbp - 0x30]
mov edx, 0x10e
lea r8, [rbp - 0x48]
xor ecx, ecx
call fcn.18004bef0
mov edi, eax
test eax, eax
jne 0x18004a1cd
jmp 0x18004a51e
xor r9d, r9d
mov dword [rbp - 0x60], r12d
lea r8, [rbp - 0x48]
lea rcx, [rbp - 0x60]
lea edx, [r9 + 0x42]
call fcn.18004e6f0
mov edi, eax
test eax, eax
jne 0x18004a1cd
jmp 0x18004a51e
lea r9, [rbp - 0x80]
mov qword [rsp + 0x20], 0
mov r8d, 0xa6
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x80]
call fcn.180048370
mov edi, eax
test eax, eax
jne 0x18004a1cd
mov rcx, qword [rbp - 0x58]
add rcx, qword [rbp - 8]
mov eax, dword [rcx]
dec eax
and eax, 0xfffffff
mov dword [rcx], eax
dec r15d
cmp r15d, 0x44
ja 0x18004a487
mov r9d, dword [rsp + 0x54]
mov r12, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x58]
mov r15, qword [rsp + 0x78]
dec r8d
dec r13
mov dword [rsp + 0x58], r8d
cmp r13, qword [rbp + 0x10]
jge 0x18004a000
imul eax, dword [rbp + 0x78], 0x3e
mov r12d, dword [rsp + 0x60]
mov r13d, dword [rsp + 0x68]
mov r8d, dword [rsp + 0x50]
mov r10, qword [rbp + 0x80]
add r12d, eax
jmp 0x18004986d
cmp r12d, 0x5198
je 0x180049d77
cmp r12d, 0x5f28
je 0x18004a5e7
cmp r12d, 0x6cb8
je 0x18004a5d3
cmp r12d, 0x7a48
je 0x18004a5be
cmp r12d, 0x87d8
je 0x180049978
imul eax, dword [rbp + 0x78], 0x3e
mov r10, qword [rbp + 0x80]
add r12d, eax
jmp 0x18004986d
imul eax, dword [rbp + 0x78], 0x3e
mov esi, edi
mov r10, qword [rbp + 0x80]
add r12d, eax
jmp 0x18004986d
xor edx, edx
lea rcx, [rbp - 0x18]
lea r8d, [rdx + 0x3e]
call fcn.180048840
jmp 0x180049d8c
xor edx, edx
lea rcx, [rbp + 0x18]
lea r8d, [rdx + 0x3e]
call fcn.180048840
xor edx, edx
lea rcx, [rbp - 0x48]
lea r8d, [rdx + 0x3e]
call fcn.180048840
mov r12d, 0x5f28
jmp 0x180049d8c
xor eax, eax
jmp 0x18004997a