Function at 0x180024570
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
push rbx
sub rsp, 0x100
mov rbx, rcx
mov ecx, dword [rcx + 0x754]
cmp dword [rbx + 0x750], ecx
je 0x1800245bf
lea r9, [rcx + rcx*2]
add r9, r9
mov edx, dword [rbx + r9*8 + 0x77c]
mov eax, edx
sub eax, ecx
mov ecx, dword [rbx + r9*8 + 0x780]
mov dword [rbx + 0x754], edx
mov dword [r8], ecx
add rsp, 0x100
pop rbx
ret
xor eax, eax
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0xd0], r14
mov qword [rsp + 0xc8], r15
mov dword [rbx + 0x750], eax
mov dword [rbx + 0x754], eax
cmp dword [rbx + 0x331fc], eax
jne 0x18002461a
lea rdx, [rsp + 0x110]
mov rcx, rbx
call fcn.180024290
mov r14d, dword [rsp + 0x110]
mov r8, qword [rsp + 0x120]
mov dword [rsp + 0x110], r14d
mov r15d, eax
jmp 0x180024630
mov r14d, dword [rbx + 0x75c]
mov r15d, dword [rbx + 0x758]
mov dword [rsp + 0x110], r14d
mov edi, dword [rbx + 0x760]
cmp edi, 2
jae 0x18002464c
mov dword [r8], 0xffffffff
mov eax, 1
jmp 0x180025e29
mov rcx, qword [rbx + 0x30]
mov eax, 0x111
mov qword [rsp + 0xf8], rbp
cmp edi, eax
mov qword [rsp + 0xf0], rsi
mov qword [rsp + 0xe0], r12
cmova edi, eax
mov qword [rsp + 0xd8], r13
call qword [rbx + 0x18]
movzx r12d, byte [rax - 1]
lea r11, [rax - 1]
xor r13d, r13d
xor r10d, r10d
xor r9d, r9d
lea rsi, [rbx + 0x33200]
xor ebp, ebp
nop dword [rax + rax]
mov eax, dword [rsi]
mov r8, r11
lea ecx, [rax + 1]
mov dword [rsp + r9 + 0x50], eax
sub r8, rcx
cmp r12b, byte [r8]
jne 0x1800246fb
movzx eax, byte [r8 + 1]
cmp byte [r11 + 1], al
jne 0x1800246fb
mov edx, 2
cmp edi, edx
jbe 0x1800246e2
lea rcx, [r11 + 2]
sub r8, r11
movzx eax, byte [rcx + r8]
cmp byte [rcx], al
jne 0x1800246e2
inc edx
inc rcx
cmp edx, edi
jb 0x1800246d0
mov dword [rsp + r9 + 0x90], edx
cmp edx, dword [rsp + rbp + 0x90]
jbe 0x180024707
mov r13d, r10d
mov rbp, r9
jmp 0x180024707
mov dword [rsp + r9 + 0x90], 0
inc r10d
add r9, 4
add rsi, 4
cmp r10d, 4
jb 0x1800246a0
mov ecx, dword [rbx + 0x331f8]
mov eax, r13d
mov ebp, dword [rsp + rax*4 + 0x90]
cmp ebp, ecx
jb 0x180024752
mov rdx, qword [rsp + 0x120]
mov dword [rdx], r13d
lea edx, [rbp - 1]
test edx, edx
je 0x18002474b
mov rcx, qword [rbx + 0x30]
add dword [rbx + 0x331fc], edx
call qword [rbx + 0x28]
mov eax, ebp
jmp 0x180025e09
cmp r15d, ecx
jb 0x18002478c
mov rdx, qword [rsp + 0x120]
lea eax, [r14 - 1]
mov eax, dword [rbx + rax*4 + 0x32964]
add eax, 4
mov dword [rdx], eax
lea edx, [r15 - 1]
test edx, edx
je 0x180024784
mov rcx, qword [rbx + 0x30]
add dword [rbx + 0x331fc], edx
call qword [rbx + 0x28]
mov eax, r15d
jmp 0x180025e09
mov ecx, dword [rsp + 0x50]
mov rax, r11
inc ecx
sub rax, rcx
movzx esi, byte [rax]
cmp r15d, 2
jae 0x1800247c3
cmp r12b, sil
je 0x1800247c3
cmp ebp, 2
jae 0x1800247c3
mov rdx, qword [rsp + 0x120]
mov eax, 1
mov dword [rdx], 0xffffffff
jmp 0x180025e09
mov edi, dword [rbx + 0x33210]
mov edx, dword [rbx + 0x33e5c]
mov r10d, dword [rsp + 0x118]
mov eax, dword [rbx + 0x33e68]
mov r13d, dword [rbx + 0x33e6c]
mov ecx, 8
sub cl, dl
and eax, r10d
mov dword [rbx + 0x768], edi
movzx r8d, byte [r11 - 1]
and r13d, r10d
shr r8d, cl
mov ecx, edx
shl eax, cl
add r8d, eax
mov rax, qword [rbx + 0x33e70]
lea ecx, [r8 + r8*2]
shl ecx, 8
lea rcx, [rax + rcx*2]
cmp edi, 7
jb 0x180024836
lea r9, [rbx + 0x32764]
movzx r8d, sil
movzx edx, r12b
call fcn.180023c70
mov r11d, eax
jmp 0x180024849
lea r8, [rbx + 0x32764]
movzx edx, r12b
call fcn.180023c20
mov r11d, eax
xor r10d, r10d
mov rcx, rdi
mov r8d, r13d
shl rcx, 4
add rcx, r8
movzx eax, word [rbx + rcx*2 + 0x33e78]
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x32764]
mov dword [rbx + 0x7b0], 0xffffffff
mov dword [rbx + 0x79c], r10d
lea r9d, [r11 + rax]
mov dword [rbx + 0x794], r9d
movzx eax, word [rbx + rcx*2 + 0x33e78]
xor rax, 0x7f0
shr rax, 4
mov ecx, dword [rbx + rax*4 + 0x32764]
movzx eax, word [rbx + rdi*2 + 0x33ff8]
xor rax, 0x7f0
mov dword [rsp + 0x44], ecx
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x32764]
lea r14d, [rcx + rax]
cmp sil, r12b
jne 0x180024913
mov rax, rdi
shl rax, 4
add rax, r8
movzx ecx, word [rbx + rax*2 + 0x34058]
movzx eax, word [rbx + rdi*2 + 0x34010]
shr rcx, 4
shr rax, 4
mov edx, dword [rbx + rcx*4 + 0x32764]
add edx, dword [rbx + rax*4 + 0x32764]
add edx, r14d
cmp edx, r9d
jae 0x180024913
mov dword [rbx + 0x794], edx
mov dword [rbx + 0x7b0], r10d
mov dword [rbx + 0x79c], r10d
cmp r15d, ebp
cmovae ebp, r15d
mov dword [rsp + 0x128], ebp
cmp ebp, 2
jae 0x180024940
mov eax, dword [rbx + 0x7b0]
mov rdx, qword [rsp + 0x120]
mov dword [rdx], eax
mov eax, 1
jmp 0x180025e09
mov eax, dword [rsp + 0x50]
mov dword [rbx + 0x7ac], r10d
mov edx, ebp
mov dword [rbx + 0x784], eax
mov eax, dword [rsp + 0x54]
mov dword [rbx + 0x788], eax
mov eax, dword [rsp + 0x58]
mov dword [rbx + 0x78c], eax
mov eax, dword [rsp + 0x5c]
mov dword [rbx + 0x790], eax
movsxd rax, ebp
lea rcx, [rax + rax*2]
add rcx, rcx
lea rax, [rbx + rcx*8 + 0x764]
nop word [rax + rax]
dec edx
mov dword [rax], 0x40000000
sub rax, 0x30
cmp edx, 2
jae 0x180024990
mov esi, r10d
movsxd r12, r13d
lea rbp, [rsp + 0x90]
nop
movsxd rdi, dword [rbp]
cmp edi, 2
jb 0x180024a22
mov r8d, dword [rbx + 0x33210]
mov r9d, r13d
mov edx, esi
mov rcx, rbx
call fcn.180024360
mov rcx, r12
lea r9d, [r14 + rax]
imul rcx, rcx, 0x110
add rcx, rdi
lea r8, [rbx + rcx*4 + 0x39120]
lea rcx, [rdi + rdi*2 + 0x78]
shl rcx, 4
add rcx, rbx
mov eax, dword [r8]
lea edx, [r9 + rax]
cmp edx, dword [rcx - 0x1c]
jae 0x180024a10
xor r10d, r10d
mov dword [rcx - 0x1c], edx
mov dword [rcx], esi
mov dword [rcx - 4], r10d
mov dword [rcx - 0x14], r10d
jmp 0x180024a13
xor r10d, r10d
dec edi
sub r8, 4
sub rcx, 0x30
cmp edi, 2
jae 0x1800249f2
inc esi
add rbp, 4
cmp esi, 4
jb 0x1800249b0
mov eax, dword [rbx + 0x33210]
mov r14d, dword [rsp + 0x44]
mov r11d, dword [rsp + 0x90]
movzx ecx, word [rbx + rax*2 + 0x33ff8]
shr rcx, 4
add r14d, dword [rbx + rcx*4 + 0x32764]
cmp r11d, 2
jb 0x180024a5f
inc r11d
jmp 0x180024a65
mov r11d, 2
cmp r11d, r15d
ja 0x180024b77
mov esi, r10d
cmp r11d, dword [rbx + 0x32964]
jbe 0x180024a8d
lea rax, [rbx + 0x32964]
add rax, 8
add esi, 2
cmp r11d, dword [rax]
ja 0x180024a81
mov r15d, dword [rsp + 0x110]
movsxd rcx, r11d
imul r12, r12, 0x110
add r12, rcx
lea r9, [rcx + rcx*2 + 0x78]
movsxd rax, esi
shl r9, 4
lea r13, [rcx - 2]
lea rbp, [rbx + rax*4 + 0x32964]
add r9, rbx
lea r12, [rbx + r12*4 + 0x348d8]
mov edi, dword [rbp + 4]
mov eax, dword [r12]
cmp r11d, 5
mov r8d, 3
lea r10d, [r14 + rax]
cmovb r8, r13
cmp edi, 0x80
jae 0x180024af7
shl r8, 7
add r8, rdi
add r10d, dword [rbx + r8*4 + 0x33614]
jmp 0x180024b38
shl r8, 6
mov ecx, 0x7ffff
mov rdx, rdi
sub ecx, edi
and edx, 0xf
mov rax, rdi
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rbx + 0x30764]
lea eax, [rax + rcx*2]
add rax, r8
mov eax, dword [rbx + rax*4 + 0x33214]
add eax, dword [rbx + rdx*4 + 0x33e14]
add r10d, eax
cmp r10d, dword [r9 - 0x1c]
jae 0x180024b52
xor ecx, ecx
lea eax, [rdi + 4]
mov dword [r9 - 0x1c], r10d
mov dword [r9], eax
mov dword [r9 - 4], ecx
mov dword [r9 - 0x14], ecx
cmp r11d, dword [rbp]
jne 0x180024b64
add esi, 2
add rbp, 8
cmp esi, r15d
je 0x180024b77
inc r11d
add r12, 4
inc r13
add r9, 0x30
jmp 0x180024ac5
mov r9d, 1
mov rbp, r9
mov dword [rsp + 0x110], r9d
mov qword [rsp + 0x78], r9
cmp dword [rsp + 0x128], ebp
je 0x180025df6
lea r13, [0x180000000]
mov rcx, qword [rbx + 0x30]
xor edi, edi
mov dword [rsp + 0x30], edi
call qword [rbx + 0x10]
mov rcx, qword [rbx + 0x30]
lea rdx, [rbx + 0x32964]
mov dword [rbx + 0x760], eax
call qword [rbx + 0x20]
mov esi, eax
mov dword [rsp + 0x44], eax
test eax, eax
je 0x180024c36
lea ecx, [rax - 2]
movsxd rdi, dword [rbx + rcx*4 + 0x32964]
mov dword [rsp + 0x30], edi
cmp edi, dword [rbx + 0x331f8]
jne 0x180024c36
mov rcx, qword [rbx + 0x30]
call qword [rbx + 0x18]
mov r8d, dword [rbx + 0x760]
lea ecx, [rsi - 1]
mov ecx, dword [rbx + rcx*4 + 0x32964]
mov edx, 0x111
dec rax
cmp r8d, edx
cmova r8d, edx
inc ecx
mov rdx, rax
sub rdx, rcx
mov rcx, rdi
cmp edi, r8d
jae 0x180024c36
add rcx, rax
sub rdx, rax
movzx eax, byte [rdx + rcx]
cmp byte [rcx], al
jne 0x180024c32
inc edi
inc rcx
cmp edi, r8d
jb 0x180024c20
mov dword [rsp + 0x30], edi
inc dword [rbx + 0x331fc]
cmp edi, dword [rbx + 0x331f8]
jae 0x180025e4a
inc dword [rsp + 0x118]
lea rdi, [rbp + rbp*2]
add rdi, rdi
mov r8d, dword [rbx + rdi*8 + 0x76c]
mov edx, dword [rbx + rdi*8 + 0x77c]
test r8d, r8d
je 0x180024cd8
dec edx
cmp dword [rbx + rdi*8 + 0x770], 0
je 0x180024cbe
mov eax, dword [rbx + rdi*8 + 0x774]
lea rcx, [rax + rax*2]
add rcx, rcx
cmp dword [rbx + rdi*8 + 0x778], 4
mov eax, dword [rbx + rcx*8 + 0x768]
jae 0x180024caa
mov ecx, dword [r13 + rax*4 + 0x7dbe0]
mov eax, ecx
mov ecx, dword [r13 + rax*4 + 0x7db80]
jmp 0x180024ce6
mov ecx, dword [r13 + rax*4 + 0x7dbb0]
mov eax, ecx
mov ecx, dword [r13 + rax*4 + 0x7db80]
jmp 0x180024ce6
lea rcx, [rdx + rdx*2]
add rcx, rcx
mov ecx, dword [rbx + rcx*8 + 0x768]
mov eax, ecx
mov ecx, dword [r13 + rax*4 + 0x7db80]
jmp 0x180024ce6
lea rcx, [rdx + rdx*2]
add rcx, rcx
mov ecx, dword [rbx + rcx*8 + 0x768]
mov r12d, dword [rsp + 0x110]
lea eax, [r12 - 1]
cmp edx, eax
jne 0x180024d29
cmp dword [rbx + rdi*8 + 0x780], 0
jne 0x180024d15
mov eax, ecx
mov r15d, dword [r13 + rax*4 + 0x7dc10]
mov dword [rsp + 0x24], r15d
jmp 0x180024e13
mov eax, ecx
mov r15d, dword [r13 + rax*4 + 0x7db80]
mov dword [rsp + 0x24], r15d
jmp 0x180024e13
test r8d, r8d
je 0x180024d58
cmp dword [rbx + rdi*8 + 0x770], 0
je 0x180024d58
mov edx, dword [rbx + rdi*8 + 0x774]
mov r8d, dword [rbx + rdi*8 + 0x778]
mov eax, ecx
mov r15d, dword [r13 + rax*4 + 0x7dbe0]
mov dword [rsp + 0x24], r15d
jmp 0x180024d86
mov r8d, dword [rbx + rdi*8 + 0x780]
cmp r8d, 4
jae 0x180024d77
mov eax, ecx
mov r15d, dword [r13 + rax*4 + 0x7dbe0]
mov dword [rsp + 0x24], r15d
jmp 0x180024d86
mov eax, ecx
mov r15d, dword [r13 + rax*4 + 0x7dbb0]
mov dword [rsp + 0x24], r15d
mov eax, edx
lea rcx, [rax + rax*2]
add rcx, rcx
lea rsi, [rbx + rcx*8 + 0x764]
cmp r8d, 4
jae 0x180024df6
mov ebp, r8d
mov eax, dword [rsi + rbp*4 + 0x20]
mov dword [rsp + 0x50], eax
mov eax, 1
mov r9d, eax
cmp r8d, eax
jb 0x180024dd8
mov r8, rbp
lea rdx, [rsi + 0x20]
lea rcx, [rsp + 0x54]
shl r8, 2
call fcn.180058590
lea r9d, [rbp + 1]
lea rax, [rbp + 1]
cmp r9d, 4
jae 0x180024e13
mov r8d, 4
lea rcx, [rsp + rax*4 + 0x50]
lea rdx, [rsi + rax*4 + 0x20]
sub r8d, r9d
shl r8, 2
call fcn.180058590
jmp 0x180024e13
lea eax, [r8 - 4]
mov dword [rsp + 0x50], eax
mov eax, dword [rsi + 0x20]
mov dword [rsp + 0x54], eax
mov eax, dword [rsi + 0x24]
mov dword [rsp + 0x58], eax
mov eax, dword [rsi + 0x28]
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x54]
mov esi, dword [rbx + rdi*8 + 0x764]
mov ebp, dword [rsp + 0x50]
mov dword [rbx + rdi*8 + 0x788], eax
mov eax, dword [rsp + 0x58]
mov dword [rbx + rdi*8 + 0x768], r15d
mov dword [rbx + rdi*8 + 0x78c], eax
mov eax, dword [rsp + 0x5c]
mov dword [rbx + rdi*8 + 0x784], ebp
mov dword [rbx + rdi*8 + 0x790], eax
mov rcx, qword [rbx + 0x30]
mov dword [rsp + 0x40], esi
xor r13d, r13d
call qword [rbx + 0x18]
movzx r12d, byte [rax - 1]
mov r9d, dword [rsp + 0x118]
lea r8, [rax - 1]
mov eax, dword [rbx + 0x33e6c]
and eax, r9d
mov ecx, r15d
lea edx, [rbp + 1]
mov dword [rsp + 0x2c], eax
mov qword [rsp + 0x70], rcx
add rcx, rcx
lea r15, [rax + rcx*8]
mov rbp, r8
mov qword [rsp + 0x38], r8
movzx r8d, byte [r8 - 1]
movzx eax, word [rbx + r15*2 + 0x33e78]
sub rbp, rdx
mov edx, dword [rbx + 0x33e5c]
movzx r14d, byte [rbp]
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x32764]
mov ecx, 8
lea r10d, [rsi + rax]
mov eax, dword [rbx + 0x33e68]
sub cl, dl
shr r8d, cl
mov ecx, edx
and eax, r9d
shl eax, cl
mov dword [rsp + 0x20], r10d
add r8d, eax
mov rax, qword [rbx + 0x33e70]
lea ecx, [r8 + r8*2]
shl ecx, 8
cmp dword [rsp + 0x24], 7
lea rsi, [rax + rcx*2]
jb 0x180024f68
movzx r8d, r12b
xor r11d, r11d
movzx r9d, r14b
bts r8d, 8
mov r10d, pe_nt_image_headers64
mov ecx, r8d
add r9d, r9d
mov eax, r10d
shr ecx, 8
and eax, r9d
add eax, r10d
add ecx, eax
movzx edx, word [rsi + rcx*2]
mov ecx, r8d
add r8d, r8d
shr ecx, 7
shr rdx, 4
mov eax, r8d
and ecx, 1
xor eax, r9d
neg ecx
not eax
sar rcx, 4
and r10d, eax
and ecx, 0x7f
xor rdx, rcx
add r11d, dword [rbx + rdx*4 + 0x32764]
cmp r8d, 0x10000
jb 0x180024f11
mov r10d, dword [rsp + 0x20]
jmp 0x180024fbb
movzx r8d, r12b
xor r9d, r9d
bts r8d, 8
nop word [rax + rax]
mov ecx, r8d
mov eax, r8d
add r8d, r8d
shr ecx, 7
shr rax, 8
movzx edx, word [rsi + rax*2]
and ecx, 1
neg ecx
shr rdx, 4
sar rcx, 4
and ecx, 0x7f
xor rdx, rcx
add r9d, dword [rbx + rdx*4 + 0x32764]
cmp r8d, 0x10000
jb 0x180024f80
mov r11d, r9d
add r10d, r11d
mov dword [rsp + 0x20], r10d
cmp r10d, dword [rbx + rdi*8 + 0x794]
jae 0x180025001
mov r9d, dword [rsp + 0x110]
xor r11d, r11d
mov dword [rbx + rdi*8 + 0x794], r10d
mov dword [rbx + rdi*8 + 0x7b0], 0xffffffff
mov dword [rbx + rdi*8 + 0x79c], r11d
mov dword [rbx + rdi*8 + 0x7ac], r9d
lea r13d, [r11 + 1]
jmp 0x18002500c
mov r9d, dword [rsp + 0x110]
xor r11d, r11d
movzx eax, word [rbx + r15*2 + 0x33e78]
mov ecx, dword [rsp + 0x40]
mov r10, qword [rsp + 0x70]
xor rax, 0x7f0
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x32764]
add ecx, eax
movzx eax, word [rbx + r10*2 + 0x33ff8]
xor rax, 0x7f0
mov dword [rsp + 0x60], ecx
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x32764]
lea r8d, [rcx + rax]
mov dword [rsp + 0x80], r8d
cmp r14b, r12b
jne 0x1800250cd
cmp dword [rbx + rdi*8 + 0x7ac], r9d
jae 0x180025074
cmp dword [rbx + rdi*8 + 0x7b0], 0
je 0x1800250cd
movzx ecx, word [rbx + r15*2 + 0x34058]
movzx eax, word [rbx + r10*2 + 0x34010]
shr rcx, 4
shr rax, 4
mov edx, dword [rbx + rcx*4 + 0x32764]
add edx, dword [rbx + rax*4 + 0x32764]
add edx, r8d
cmp edx, dword [rbx + rdi*8 + 0x794]
ja 0x1800250cd
mov dword [rbx + rdi*8 + 0x794], edx
mov dword [rbx + rdi*8 + 0x7ac], r9d
mov dword [rbx + rdi*8 + 0x7b0], r11d
mov dword [rbx + rdi*8 + 0x79c], r11d
mov r13d, 1
mov edi, dword [rbx + 0x760]
mov eax, 0xfff
sub eax, r9d
cmp eax, edi
cmovb edi, eax
mov dword [rsp + 0x40], edi
cmp edi, 2
jb 0x180025dc9
mov r9d, dword [rbx + 0x331f8]
cmp edi, r9d
mov eax, r9d
cmovbe eax, edi
mov dword [rsp + 0x28], eax
test r13d, r13d
jne 0x1800252c9
cmp r14b, r12b
je 0x1800252b0
inc r9d
mov edx, 1
cmp r9d, edi
mov r8, rdx
cmova r9d, edi
cmp r9d, edx
jbe 0x18002514b
mov rax, qword [rsp + 0x38]
sub rbp, rax
lea rcx, [rax + 1]
movzx eax, byte [rcx + rbp]
cmp byte [rcx], al
jne 0x18002514b
inc edx
inc r8
inc rcx
cmp edx, r9d
jb 0x180025136
dec edx
lea r11, [r8 - 1]
cmp edx, 2
jb 0x1800252e2
mov r15d, dword [rsp + 0x118]
mov r12d, dword [rsp + 0x110]
movsxd rbp, dword [rsp + 0x128]
lea rcx, [0x180000000]
lea r8d, [r15 + 1]
lea edx, [rdx + r12 + 1]
mov r10d, dword [rcx + r10*4 + 0x7db80]
and r8d, dword [rbx + 0x33e6c]
movzx ecx, word [rbx + r10*2 + 0x33ff8]
mov rsi, r10
shl rsi, 4
xor rcx, 0x7f0
add rsi, r8
shr rcx, 4
movzx eax, word [rbx + rsi*2 + 0x33e78]
mov r9d, dword [rbx + rcx*4 + 0x32764]
xor rax, 0x7f0
shr rax, 4
add r9d, dword [rbx + rax*4 + 0x32764]
mov rax, qword [rsp + 0x78]
add r9d, dword [rsp + 0x20]
lea rdi, [rax + r11 + 1]
cmp ebp, edx
jae 0x180025220
lea rax, [rbp + rbp*2]
sub edx, ebp
add rax, rax
add ebp, edx
lea rcx, [rbx + rax*8 + 0x764]
mov eax, edx
mov dword [rsp + 0x128], ebp
nop word [rax + rax]
add rcx, 0x30
sub rax, 1
mov dword [rcx], 0x40000000
jne 0x180025210
movzx ecx, word [rbx + rsi*2 + 0x34058]
movzx eax, word [rbx + r10*2 + 0x34010]
imul r8, r8, 0x110
xor rcx, 0x7f0
shr rax, 4
add r8, r11
shr rcx, 4
mov edx, dword [rbx + rcx*4 + 0x32764]
lea rcx, [rdi + rdi*2]
add edx, dword [rbx + rax*4 + 0x32764]
add rcx, rcx
add edx, dword [rbx + r8*4 + 0x39120]
add edx, r9d
cmp edx, dword [rbx + rcx*8 + 0x764]
jae 0x1800252fb
lea eax, [r12 + 1]
mov dword [rbx + rcx*8 + 0x764], edx
mov r9d, r12d
mov dword [rbx + rcx*8 + 0x780], 0
mov dword [rbx + rcx*8 + 0x76c], 1
mov dword [rbx + rcx*8 + 0x770], 0
mov dword [rbx + rcx*8 + 0x77c], eax
jmp 0x1800252fe
mov r9d, dword [rsp + 0x110]
mov ebp, dword [rsp + 0x128]
mov r15d, dword [rsp + 0x118]
jmp 0x1800252fe
mov r9d, dword [rsp + 0x110]
mov ebp, dword [rsp + 0x128]
mov r15d, dword [rsp + 0x118]
jmp 0x1800252fe
mov r9d, dword [rsp + 0x110]
mov ebp, dword [rsp + 0x128]
mov r15d, dword [rsp + 0x118]
jmp 0x1800252fe
mov r9d, r12d
movsxd r10, dword [rsp + 0x2c]
movsxd r8, dword [rsp + 0x24]
mov r11, qword [rsp + 0x38]
lea rax, [rsp + 0x50]
xor r12d, r12d
movsxd r14, ebp
mov qword [rsp + 0xa0], r10
mov qword [rsp + 0xb0], r8
mov dword [rsp + 0x20], 2
mov dword [rsp + 0x34], r12d
mov qword [rsp + 0x48], r14
mov qword [rsp + 0xa8], rax
mov ecx, dword [rax]
mov rsi, r11
inc ecx
sub rsi, rcx
movzx eax, byte [rsi]
cmp byte [r11], al
jne 0x1800257b3
movzx eax, byte [rsi + 1]
cmp byte [r11 + 1], al
jne 0x1800257ba
mov r13d, dword [rsp + 0x28]
mov edi, 2
mov r15, rdi
cmp r13d, edi
jbe 0x180025397
mov rdx, rsi
lea rcx, [r11 + 2]
sub rdx, r11
movzx eax, byte [rdx + rcx]
cmp byte [rcx], al
jne 0x180025397
inc edi
inc r15
inc rcx
cmp edi, r13d
jb 0x180025382
lea edx, [rdi + r9]
cmp ebp, edx
jae 0x1800253e0
sub edx, ebp
lea rax, [r14 + r14*2]
add rax, rax
add ebp, edx
lea rcx, [rbx + rax*8 + 0x764]
mov eax, edx
mov dword [rsp + 0x128], ebp
add r14, rax
mov qword [rsp + 0x48], r14
nop word [rax + rax]
add rcx, 0x30
sub rax, 1
mov dword [rcx], 0x40000000
jne 0x1800253d0
mov r9d, r10d
mov edx, r12d
mov rcx, rbx
mov ebp, edi
mov dword [rsp + 0x64], edi
call fcn.180024360
mov r13d, dword [rsp + 0x110]
mov r9d, eax
mov rax, qword [rsp + 0xa0]
add r9d, dword [rsp + 0x80]
imul rax, rax, 0x110
lea rcx, [r15 + rax]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x78]
lea r8, [rbx + rcx*4 + 0x39120]
lea rcx, [rax + r15 + 0x28]
mov dword [rsp + 0x68], r9d
lea rdx, [rcx + rcx*2]
shl rdx, 4
add rdx, rbx
mov eax, dword [r8]
lea ecx, [r9 + rax]
cmp ecx, dword [rdx - 0x1c]
jae 0x180025461
mov dword [rdx - 0x1c], ecx
mov dword [rdx - 4], r13d
mov dword [rdx], r12d
mov dword [rdx - 0x14], 0
dec edi
sub r8, 4
sub rdx, 0x30
cmp edi, 2
jae 0x180025444
mov r13d, dword [rsp + 0x28]
test r12d, r12d
jne 0x180025481
lea eax, [rbp + 1]
mov dword [rsp + 0x20], eax
mov eax, dword [rbx + 0x331f8]
lea r9d, [rbp + 1]
lea edx, [r9 + rax]
mov eax, dword [rsp + 0x40]
cmp edx, eax
cmova edx, eax
cmp r9d, edx
jae 0x1800254c6
mov r11, qword [rsp + 0x38]
mov r8, rsi
lea rcx, [r15 + r11 + 1]
sub r8, r11
nop dword [rax]
movzx eax, byte [rcx + r8]
cmp byte [rcx], al
jne 0x1800254cb
inc r9d
inc rcx
cmp r9d, edx
jb 0x1800254b0
jmp 0x1800254cb
mov r11, qword [rsp + 0x38]
or eax, 0xffffffff
sub eax, ebp
add r9d, eax
cmp r9d, 2
jb 0x1800257c1
mov r10d, dword [rsp + 0x118]
mov edi, dword [rbx + 0x33e5c]
movzx r11d, byte [r15 + r11]
movzx esi, byte [r15 + rsi]
mov r13, qword [rbx + 0x33e70]
add r10d, ebp
mov eax, r10d
and r10d, dword [rbx + 0x33e68]
mov ecx, edi
and eax, dword [rbx + 0x33e6c]
xor r14d, r14d
bts r11d, 8
mov dword [rsp + 0x88], eax
mov rax, qword [rsp + 0x38]
mov ebp, pe_nt_image_headers64
movzx r12d, byte [r15 + rax - 1]
shl r10d, cl
nop word [rax + rax]
mov ecx, 8
add esi, esi
mov eax, ebp
sub cl, dil
and eax, esi
mov edx, r12d
shr edx, cl
add eax, ebp
mov ecx, r11d
shr ecx, 8
add edx, r10d
add eax, ecx
mov ecx, r11d
lea edx, [rdx + rdx*2]
shr ecx, 7
shl edx, 8
add r11d, r11d
add rdx, rax
and ecx, 1
mov eax, r11d
movzx r8d, word [r13 + rdx*2]
neg ecx
xor eax, esi
sar rcx, 4
shr r8, 4
not eax
and ecx, 0x7f
and ebp, eax
xor r8, rcx
add r14d, dword [rbx + r8*4 + 0x32764]
cmp r11d, 0x10000
jb 0x180025540
mov rax, qword [rsp + 0xb0]
mov ebp, dword [rsp + 0x64]
mov r12d, dword [rsp + 0x110]
lea r10, [0x180000000]
mov edx, dword [r10 + rax*4 + 0x7dbe0]
mov eax, dword [rsp + 0x88]
mov edi, dword [r10 + rdx*4 + 0x7db80]
mov rcx, rdx
shl rcx, 4
mov rsi, rdi
add rcx, rax
mov rax, qword [rsp + 0x90]
shl rsi, 4
movzx ecx, word [rbx + rcx*2 + 0x33e78]
add rax, r15
mov r15d, dword [rsp + 0x118]
shr rcx, 4
mov r8d, dword [rbx + rcx*4 + 0x32764]
movzx ecx, word [rbx + rdi*2 + 0x33ff8]
add r8d, dword [rbx + rax*4 + 0x39120]
lea eax, [rbp + r15 + 1]
xor rcx, 0x7f0
and eax, dword [rbx + 0x33e6c]
add r8d, r14d
shr rcx, 4
add r8d, dword [rsp + 0x68]
mov r11d, dword [rbx + rcx*4 + 0x32764]
mov r10d, eax
add rsi, r10
movzx eax, word [rbx + rsi*2 + 0x33e78]
xor rax, 0x7f0
shr rax, 4
add r11d, dword [rbx + rax*4 + 0x32764]
lea eax, [r9 + rbp]
add r11d, r8d
lea r8d, [rax + r12 + 1]
mov r12d, dword [rsp + 0x128]
cmp r12d, r8d
jae 0x1800256c2
mov r14, qword [rsp + 0x48]
lea rax, [r14 + r14*2]
add rax, rax
lea rcx, [rbx + rax*8 + 0x764]
mov eax, r8d
sub eax, r12d
add r12d, eax
mov edx, eax
add r14, rdx
mov dword [rsp + 0x128], r12d
mov qword [rsp + 0x48], r14
nop dword [rax]
add rcx, 0x30
sub rdx, 1
mov dword [rcx], 0x40000000
jne 0x1800256b0
jmp 0x1800256c7
mov r14, qword [rsp + 0x48]
movzx eax, word [rbx + rsi*2 + 0x34058]
imul r10, r10, 0x110
lea ecx, [r9 - 2]
add rcx, r10
xor rax, 0x7f0
mov edx, dword [rbx + rcx*4 + 0x39128]
shr rax, 4
lea rcx, [r8 + r8*2]
add edx, dword [rbx + rax*4 + 0x32764]
movzx eax, word [rbx + rdi*2 + 0x34010]
add rcx, rcx
shr rax, 4
add edx, dword [rbx + rax*4 + 0x32764]
add edx, r11d
cmp edx, dword [rbx + rcx*8 + 0x764]
jae 0x180025789
mov r9d, dword [rsp + 0x110]
mov r12d, dword [rsp + 0x34]
mov r13d, dword [rsp + 0x28]
mov r8d, dword [rsp + 0x24]
mov r10d, dword [rsp + 0x2c]
mov r11, qword [rsp + 0x38]
lea eax, [rbp + r9 + 1]
mov ebp, dword [rsp + 0x128]
mov dword [rbx + rcx*8 + 0x764], edx
mov dword [rbx + rcx*8 + 0x77c], eax
mov dword [rbx + rcx*8 + 0x780], 0
mov dword [rbx + rcx*8 + 0x76c], 1
mov dword [rbx + rcx*8 + 0x770], 1
mov dword [rbx + rcx*8 + 0x774], r9d
mov dword [rbx + rcx*8 + 0x778], r12d
jmp 0x1800257e2
mov r12d, dword [rsp + 0x34]
mov r13d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x110]
mov r8d, dword [rsp + 0x24]
mov r10d, dword [rsp + 0x2c]
mov r11, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x128]
jmp 0x1800257e2
mov r13d, dword [rsp + 0x28]
jmp 0x1800257e2
mov r13d, dword [rsp + 0x28]
jmp 0x1800257e2
mov r9d, dword [rsp + 0x110]
mov r8d, dword [rsp + 0x24]
mov r10d, dword [rsp + 0x2c]
mov ebp, dword [rsp + 0x128]
mov r15d, dword [rsp + 0x118]
mov rax, qword [rsp + 0xa8]
inc r12d
add rax, 4
mov dword [rsp + 0x34], r12d
mov qword [rsp + 0xa8], rax
cmp r12d, 4
jb 0x180025342
mov ecx, dword [rsp + 0x30]
cmp ecx, r13d
jbe 0x18002584a
lea r8, [rbx + 0x32964]
xor edx, edx
xor eax, eax
mov ecx, r13d
cmp r13d, dword [r8]
jbe 0x18002583d
nop word [rax + rax]
add rax, 2
add edx, 2
cmp r13d, dword [r8 + rax*4]
ja 0x180025830
add edx, 2
mov dword [r8 + rax*4], r13d
mov dword [rsp + 0x44], edx
jmp 0x180025851
lea r8, [rbx + 0x32964]
movsxd r10, dword [rsp + 0x20]
cmp ecx, r10d
jb 0x180025dc9
mov rax, qword [rsp + 0x70]
mov edi, dword [rsp + 0x110]
mov r9d, dword [rsp + 0x60]
movzx eax, word [rbx + rax*2 + 0x33ff8]
lea edx, [rcx + rdi]
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x32764]
add r9d, eax
movsxd rax, ebp
mov dword [rsp + 0x28], r9d
cmp ebp, edx
jae 0x1800258d0
lea rax, [rax + rax*2]
sub edx, ebp
add rax, rax
add ebp, edx
lea rcx, [rbx + rax*8 + 0x764]
mov eax, edx
mov dword [rsp + 0x128], ebp
nop word [rax + rax]
add rcx, 0x30
sub rax, 1
mov dword [rcx], 0x40000000
jne 0x1800258c0
xor edx, edx
xor eax, eax
mov dword [rsp + 0x30], edx
cmp r10d, dword [r8]
jbe 0x1800258f1
nop dword [rax]
add rax, 2
add edx, 2
cmp r10d, dword [r8 + rax*4]
ja 0x1800258e0
mov dword [rsp + 0x30], edx
mov esi, dword [r8 + rax*4 + 4]
mov r11, qword [rsp + 0xa0]
lea r8, [r8 + rax*4]
mov ecx, 0x7ffff
imul r11, r11, 0x110
mov rax, rsi
sub ecx, esi
add r11, r10
mov qword [rsp + 0x48], r8
shr ecx, 0x1f
lea r12, [rbx + r11*4 + 0x348d8]
mov r14, r10
neg ecx
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x88], r12
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rbx + 0x30764]
lea ecx, [rax + rcx*2]
movsxd rax, ebp
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0x34], ecx
lea rax, [rax + r10 + 0x28]
lea rbp, [rax + rax*2]
shl rbp, 4
add rbp, rbx
dec r15d
mov dword [rsp + 0x2c], r15d
mov qword [rsp + 0x80], rbp
nop dword [rax]
mov eax, dword [r12]
lea r13d, [r9 + rax]
cmp r10d, 5
jae 0x180025994
lea rdx, [r14 - 2]
jmp 0x180025999
mov edx, 3
cmp esi, 0x80
jae 0x1800259b4
shl rdx, 7
mov eax, esi
add rdx, rax
add r13d, dword [rbx + rdx*4 + 0x33614]
jmp 0x1800259d7
mov eax, ecx
shl rdx, 6
mov ecx, esi
add rdx, rax
and ecx, 0xf
mov eax, dword [rbx + rdx*4 + 0x33214]
add eax, dword [rbx + rcx*4 + 0x33e14]
mov ecx, dword [rsp + 0x34]
add r13d, eax
cmp r13d, dword [rbp - 0x1c]
jae 0x1800259f1
lea eax, [rsi + 4]
mov dword [rbp - 0x1c], r13d
mov dword [rbp - 4], edi
mov dword [rbp], eax
mov dword [rbp - 0x14], 0
cmp r10d, dword [r8]
jne 0x180025d9c
mov eax, dword [rbx + 0x331f8]
mov r11, qword [rsp + 0x38]
lea edi, [r10 + 1]
lea edx, [rdi + rax]
mov eax, dword [rsp + 0x40]
lea ecx, [rsi + 1]
sub r11, rcx
cmp edx, eax
mov r9d, edi
cmova edx, eax
lea r10, [r14 + 1]
cmp edi, edx
jae 0x180025a4f
mov r8, qword [rsp + 0x38]
lea rcx, [r14 + r11 + 1]
sub r8, r11
movzx eax, byte [rcx]
cmp byte [rcx + r8], al
jne 0x180025a4a
inc r9d
inc r10
inc rcx
cmp r9d, edx
jb 0x180025a33
mov r8, qword [rsp + 0x48]
or eax, 0xffffffff
sub eax, dword [rsp + 0x20]
add r9d, eax
or rax, 0xffffffffffffffff
sub rax, r14
mov dword [rsp + 0x60], r9d
add r10, rax
mov qword [rsp + 0x90], r10
cmp r9d, 2
jb 0x180025d24
movzx ebp, byte [r14 + r11]
mov r9, qword [rbx + 0x33e70]
lea eax, [r15 + rdi]
mov edi, dword [rbx + 0x33e68]
mov ecx, eax
xor r15d, r15d
and ecx, dword [rbx + 0x33e6c]
and edi, eax
mov r12d, pe_nt_image_headers64
mov dword [rsp + 0x64], ecx
mov rcx, qword [rsp + 0x38]
movzx r11d, byte [r14 + rcx]
movzx r10d, byte [r14 + rcx - 1]
mov r14d, dword [rbx + 0x33e5c]
mov ecx, r14d
bts r11d, 8
shl edi, cl
nop dword [rax + rax]
mov ecx, 8
add ebp, ebp
mov eax, r12d
sub cl, r14b
and eax, ebp
mov edx, r10d
shr edx, cl
add eax, r12d
mov ecx, r11d
shr ecx, 8
add edx, edi
add eax, ecx
mov ecx, r11d
lea edx, [rdx + rdx*2]
shr ecx, 7
shl edx, 8
add r11d, r11d
add rdx, rax
and ecx, 1
mov eax, r11d
movzx r8d, word [r9 + rdx*2]
neg ecx
xor eax, ebp
sar rcx, 4
shr r8, 4
not eax
and ecx, 0x7f
and r12d, eax
xor r8, rcx
add r15d, dword [rbx + r8*4 + 0x32764]
cmp r11d, 0x10000
jb 0x180025ad0
mov r11d, dword [rsp + 0x64]
mov rax, qword [rsp + 0xb0]
mov r9d, dword [rsp + 0x60]
mov r10, qword [rsp + 0x90]
lea rdi, [0x180000000]
mov edx, dword [rdi + rax*4 + 0x7dbb0]
mov rcx, rdx
mov ebp, dword [rdi + rdx*4 + 0x7db80]
shl rcx, 4
add rcx, r11
inc r11d
mov r12, rbp
movzx eax, word [rbx + rcx*2 + 0x33e78]
and r11d, dword [rbx + 0x33e6c]
movzx ecx, word [rbx + rbp*2 + 0x33ff8]
shr rax, 4
shl r12, 4
xor rcx, 0x7f0
mov r8d, dword [rbx + rax*4 + 0x32764]
add r12, r11
shr rcx, 4
movzx eax, word [rbx + r12*2 + 0x33e78]
mov edi, dword [rbx + rcx*4 + 0x32764]
add r8d, r15d
xor rax, 0x7f0
add r8d, r13d
mov r13d, dword [rsp + 0x128]
shr rax, 4
add edi, dword [rbx + rax*4 + 0x32764]
mov eax, dword [rsp + 0x20]
add eax, r9d
mov r9d, dword [rsp + 0x110]
add edi, r8d
lea r8d, [rax + r9 + 1]
cmp r13d, r8d
jae 0x180025c40
mov r15, qword [rsp + 0x70]
lea rax, [r15 + r15*2]
add rax, rax
lea rcx, [rbx + rax*8 + 0x764]
mov eax, r8d
sub eax, r13d
add r13d, eax
mov edx, eax
add r15, rdx
mov dword [rsp + 0x128], r13d
mov qword [rsp + 0x70], r15
nop word [rax + rax]
add rcx, 0x30
sub rdx, 1
mov dword [rcx], 0x40000000
jne 0x180025c30
movzx ecx, word [rbx + r12*2 + 0x34058]
movzx eax, word [rbx + rbp*2 + 0x34010]
imul r11, r11, 0x110
xor rcx, 0x7f0
shr rax, 4
add r11, r10
shr rcx, 4
mov edx, dword [rbx + rcx*4 + 0x32764]
lea rcx, [r8 + r8*2]
add edx, dword [rbx + rax*4 + 0x32764]
add rcx, rcx
add edx, dword [rbx + r11*4 + 0x39120]
add edx, edi
cmp edx, dword [rbx + rcx*8 + 0x764]
jae 0x180025cfe
mov r10d, dword [rsp + 0x20]
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x80]
mov r8, qword [rsp + 0x48]
mov r12, qword [rsp + 0x88]
mov r15d, dword [rsp + 0x2c]
lea eax, [r10 + r9 + 1]
mov dword [rbx + rcx*8 + 0x764], edx
mov dword [rbx + rcx*8 + 0x780], 0
mov dword [rbx + rcx*8 + 0x77c], eax
lea eax, [rsi + 4]
mov dword [rbx + rcx*8 + 0x76c], 1
mov dword [rbx + rcx*8 + 0x770], 1
mov dword [rbx + rcx*8 + 0x774], r9d
mov dword [rbx + rcx*8 + 0x778], eax
jmp 0x180025d31
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x80]
mov r8, qword [rsp + 0x48]
mov r12, qword [rsp + 0x88]
mov r15d, dword [rsp + 0x2c]
mov r10d, dword [rsp + 0x20]
jmp 0x180025d31
mov r10d, dword [rsp + 0x20]
mov r9d, dword [rsp + 0x110]
mov edx, dword [rsp + 0x30]
add r8, 8
add edx, 2
mov qword [rsp + 0x48], r8
mov dword [rsp + 0x30], edx
cmp edx, dword [rsp + 0x44]
je 0x180025dc9
mov esi, dword [r8 + 4]
cmp esi, 0x80
jb 0x180025d8c
mov r9d, dword [rsp + 0x28]
mov edi, dword [rsp + 0x110]
mov ecx, 0x7ffff
sub ecx, esi
mov rax, rsi
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rbx + 0x30764]
lea ecx, [rax + rcx*2]
mov dword [rsp + 0x34], ecx
jmp 0x180025d9c
mov ecx, dword [rsp + 0x34]
mov r9d, dword [rsp + 0x28]
mov edi, dword [rsp + 0x110]
inc r10d
inc r14
add r12, 4
add rbp, 0x30
mov dword [rsp + 0x20], r10d
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x88], r12
jmp 0x180025980
mov rbp, qword [rsp + 0x78]
inc r9d
lea r13, [0x180000000]
inc rbp
mov dword [rsp + 0x110], r9d
mov qword [rsp + 0x78], rbp
cmp r9d, dword [rsp + 0x128]
jne 0x180024ba1
mov r8d, r9d
mov rdx, qword [rsp + 0x120]
mov rcx, rbx
call fcn.180024430
mov rsi, qword [rsp + 0xf0]
mov r13, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xf8]
mov rdi, qword [rsp + 0xe8]
mov r14, qword [rsp + 0xd0]
mov r15, qword [rsp + 0xc8]
add rsp, 0x100
pop rbx
ret
mov r8d, dword [rsp + 0x110]
mov dword [rbx + 0x75c], esi
mov dword [rbx + 0x758], edi
jmp 0x180025df9