Function at 0x180007df0
Capabilities:
Check mutex on windows
Delete file
Delete registry value
Get file size
Read file on windows
Set registry value

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f0]
sub rsp, 0x2f0
mov qword [rbp + 0x38], 0xfffffffffffffffe
mov qword [rsp + 0x348], rbx
mov rax, qword [0x180034310]
xor rax, rsp
mov qword [rbp + 0x1e8], rax
mov esi, r8d
mov rbx, rdx
mov r14, rcx
mov qword [rsp + 0x50], rcx
movzx eax, byte [rdx]
cmp al, 0xc9
je 0x180008b4c
movzx eax, al
cmp eax, 6
ja case.default.0x180007e62
lea rdx, [0x180000000]
mov ecx, dword [rdx + rax*4 + 0x8b78]
add rcx, rdx
jmp rcx
mov rcx, qword [r14 + 0x18]
call qword [sym.imp.KERNEL32.dll_SetEvent]
xor r12d, r12d
mov dword [rsp + 0x48], r12d
or edx, 0xffffffff
mov rcx, qword [r14 + 0x238]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea rcx, [r14 + 0x2c]
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r12 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x180007f7d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
lea ebx, [rax + 3]
mov ecx, ebx
call fcn.180014f64
mov rsi, rax
mov r8d, ebx
xor edx, edx
mov rcx, rax
call fcn.18001adc0
mov byte [rsi], 7
lea r8d, [rbx - 1]
lea rdx, [rsi + 1]
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x48]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, eax
mov rcx, qword [r14 + 0x238]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
test edi, edi
je 0x180007f47
cmp ebx, 2
jae 0x180007f39
mov byte [rsp + 0x40], 8
cmp dword [r14 + 0x10], r12d
jne 0x180007f67
mov rcx, qword [r14 + 8]
mov rax, qword [rcx]
lea r8d, [r12 + 1]
lea rdx, [rsp + 0x40]
call qword [rax + reloc.WS2_32.dll_recv]
cmp dword [r14 + 0x10], r12d
jne 0x180007f67
mov r8d, ebx
mov rdx, rsi
jmp 0x180007f5d
mov byte [rsp + 0x40], 8
cmp dword [r14 + 0x10], r12d
jne 0x180007f67
mov r8d, 1
lea rdx, [rsp + 0x40]
mov rcx, qword [r14 + 8]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, rsi
call fcn.180016660
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x180008b4c
mov rcx, qword [r14 + 0x238]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rsp + 0x40], 8
cmp dword [r14 + 0x10], r12d
jne 0x180008b4c
mov rcx, qword [r14 + 8]
mov rax, qword [rcx]
mov r8d, 1
lea rdx, [rsp + 0x40]
call qword [rax + reloc.WS2_32.dll_recv]
jmp 0x180008b4c
lea r8, [r14 + 0x2c]
mov edx, 1
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
or edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea rcx, [r14 + 0x2c]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x180008b4c
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, 2
xor r8d, r8d
lea rdx, [0x18002ce20]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea rdx, str.open
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea r8, [rsp + 0x48]
lea rdx, [0x18002ce20]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x18000810b
lea rax, [0x18002ce34]
jmp 0x1800080e3
lea rcx, [r14 + 0x250]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edx, [rsi - 1]
lea rcx, [rbx + 1]
call fcn.180008bd0
lea rcx, [r14 + 0x250]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x180008b4c
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, 2
xor r8d, r8d
lea rdx, [0x18002ce20]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea rdx, str.open
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea r8, [rsp + 0x48]
lea rdx, [0x18002ce20]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x18000810b
lea rax, [0x18002ce38]
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rax
mov r9d, 3
xor r8d, r8d
lea rdx, str.open
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x180008b4c
xor r12d, r12d
mov dword [r14 + 0x27c], r12d
jmp 0x180008b4c
lea rdx, [rbx + 1]
mov qword [rbp + 0x138], socket
xor r12d, r12d
mov qword [rbp + 0x130], r12
mov byte [rbp + 0x120], r12b
xor eax, eax
or r14, 0xffffffffffffffff
mov rcx, r14
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rbp + 0x120]
call fcn.180009640
nop
mov qword [rbp + 0x110], socket
mov qword [rbp + 0x108], r12
mov byte [rbp + 0xf8], r12b
mov rdi, qword [rbp + 0x130]
cmp rdi, r14
cmova rdi, r14
mov rdx, rdi
lea rcx, [rbp + 0xf8]
call fcn.180009c30
test al, al
je 0x1800081fe
lea rdx, [rbp + 0x120]
cmp qword [rbp + 0x138], 0x10
cmovae rdx, qword [rbp + 0x120]
lea rcx, [rbp + 0xf8]
cmp qword [rbp + 0x110], 0x10
cmovae rcx, qword [rbp + 0xf8]
mov r8, rdi
call fcn.180015b40
mov qword [rbp + 0x108], rdi
lea rax, [rbp + 0xf8]
cmp qword [rbp + 0x110], 0x10
cmovae rax, qword [rbp + 0xf8]
mov byte [rax + rdi], r12b
mov r15, r12
mov qword [rsp + 0x58], r12
mov rsi, r12
mov qword [rsp + 0x60], r12
mov r13, r12
mov qword [rsp + 0x68], r12
mov qword [rbp + 0x18], r12
mov qword [rbp + 0x20], r12
mov qword [rbp + 0x28], r12
call fcn.1800153e8
mov qword [rbp + 0x30], rax
call fcn.180015198
mov rdi, rax
xor edx, edx
lea rcx, [rsp + 0x48]
call fcn.18001556c
mov rcx, qword [rdi + 8]
cmp rcx, 0xffffffffffffffff
jae 0x180008250
inc rcx
mov qword [rdi + 8], rcx
lea rcx, [rsp + 0x48]
call fcn.18001559c
nop
lea rdx, [0x18002ce48]
lea rcx, [rbp + 0x18]
call fcn.18000a3f0
nop
lea rdx, [rbp + 0xf8]
mov rdi, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x110]
cmp rcx, 0x10
cmovae rdx, rdi
add rdx, qword [rbp + 0x108]
lea rax, [rbp + 0xf8]
cmp rcx, 0x10
cmovae rax, rdi
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rdx
lea rcx, [rbp + 0x18]
mov qword [rbp - 0x70], rcx
mov dword [rbp - 0x68], r12d
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], r12
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], r12
mov qword [rbp - 0x38], r12
mov qword [rbp - 0x30], r12
mov byte [rbp - 0x28], 0
mov qword [rbp - 0x20], r12
mov qword [rbp - 0x18], r12
mov byte [rbp - 0x10], 0
mov qword [rbp - 8], r12
mov qword [rbp], r12
mov byte [rbp + 8], 0
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r12d
lea r9, [rbp + 0x18]
lea r8, [rbp - 0x60]
mov rcx, rax
call fcn.18000a4e0
mov rbx, qword [rbp - 0x70]
test al, al
cmove rbx, r12
mov qword [rbp - 0x70], rbx
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x48], r12
mov qword [rbp + 0x50], r12
mov qword [rbp + 0x60], r12
mov qword [rbp + 0x68], r12
mov qword [rbp + 0x70], r12
mov qword [rbp + 0x78], r12
mov qword [rbp + 0x88], r12
mov qword [rbp + 0x90], r12
mov byte [rbp + 0x98], 0
mov qword [rbp + 0xa0], r12
mov qword [rbp + 0xa8], r12
mov byte [rbp + 0xb0], 0
mov qword [rbp + 0xb8], r12
mov qword [rbp + 0xc0], r12
mov byte [rbp + 0xc8], 0
nop word [rax + rax]
test rbx, rbx
je 0x180008780
lea rdx, [rbp + 0x1c0]
lea rcx, [rbp - 0x60]
call fcn.180008db0
mov rdx, rax
cmp qword [rax + 0x18], 0x10
jb 0x180008396
mov rdx, qword [rax]
mov qword [rbp + 0xe8], socket
mov qword [rbp + 0xe0], r12
mov byte [rbp + 0xd0], 0
xor eax, eax
mov rcx, r14
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rbp + 0xd0]
call fcn.180009640
nop
cmp qword [rbp + 0x1d8], 0x10
jb 0x1800083e3
mov rcx, qword [rbp + 0x1c0]
call fcn.180015af4
mov qword [rbp + 0x1d8], socket
mov qword [rbp + 0x1d0], r12
mov byte [rbp + 0x1c0], 0
mov rbx, qword [rbp + 0xe0]
test rbx, rbx
je 0x18000849e
cmp rbx, 2
jb 0x18000849e
dec rbx
lea rdi, [rbp + 0xd0]
cmp qword [rbp + 0xe8], 0x10
cmovae rdi, qword [rbp + 0xd0]
mov r8, rbx
mov edx, recv
mov rcx, rdi
call fcn.1800167ec
mov rdx, rax
test rax, rax
je 0x18000849e
nop dword [rax + rax]
movzx eax, word [rdx]
cmp ax, word [0x18002ce4c]
je 0x180008482
sub rdi, rdx
lea rbx, [rbx + rdi - 1]
lea rdi, [rdx + 1]
mov r8, rbx
mov edx, recv
mov rcx, rdi
call fcn.1800167ec
mov rdx, rax
test rax, rax
jne 0x180008450
jmp 0x18000849e
lea rax, [rbp + 0xd0]
cmp qword [rbp + 0xe8], 0x10
cmovae rax, qword [rbp + 0xd0]
sub rdx, rax
jmp 0x1800084a1
mov rdx, r14
cmp rdx, 0xffffffffffffffff
je 0x18000856b
xor r8d, r8d
lea rcx, [rbp + 0xd0]
call fcn.180009130
mov rbx, qword [rbp + 0xe0]
test rbx, rbx
je 0x18000855e
cmp rbx, 2
jb 0x18000855e
dec rbx
lea rdi, [rbp + 0xd0]
cmp qword [rbp + 0xe8], 0x10
cmovae rdi, qword [rbp + 0xd0]
mov r8, rbx
mov edx, recv
mov rcx, rdi
call fcn.1800167ec
mov rdx, rax
test rax, rax
je 0x18000855e
nop word [rax + rax]
movzx eax, word [rdx]
cmp ax, word [0x18002ce4c]
je 0x180008542
sub rdi, rdx
lea rbx, [rbx + rdi - 1]
lea rdi, [rdx + 1]
mov r8, rbx
mov edx, recv
mov rcx, rdi
call fcn.1800167ec
mov rdx, rax
test rax, rax
jne 0x180008510
jmp 0x18000855e
lea rax, [rbp + 0xd0]
cmp qword [rbp + 0xe8], 0x10
cmovae rax, qword [rbp + 0xd0]
sub rdx, rax
jmp 0x180008561
mov rdx, r14
cmp rdx, 0xffffffffffffffff
jne 0x1800084ab
lea rax, [rbp + 0xd0]
cmp rax, rsi
jae 0x180008606
lea rax, [rbp + 0xd0]
cmp r15, rax
ja 0x180008606
lea rcx, [rbp + 0xd0]
sub rcx, r15
movabs rax, 0x6666666666666667
imul rcx
mov rdi, rdx
sar rdi, 4
mov rax, rdi
shr rax, 0x3f
add rdi, rax
cmp rsi, r13
jne 0x1800085cd
lea rcx, [rsp + 0x58]
call fcn.180009500
mov r13, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x58]
lea rax, [rdi + rdi*4]
lea rdx, [r15 + rax*8]
mov qword [rsp + 0x48], rsi
mov qword [rbp + 0x10], rsi
test rsi, rsi
je 0x180008601
mov qword [rsi + 0x18], send
mov qword [rsi + 0x10], r12
mov byte [rsi], 0
mov r9, r14
xor r8d, r8d
mov rcx, rsi
call fcn.180009070
nop
jmp 0x1800086cb
cmp rsi, r13
jne 0x180008624
lea rcx, [rsp + 0x58]
call fcn.180009500
mov r13, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x58]
mov qword [rbp + 0x10], rsi
mov qword [rsp + 0x48], rsi
test rsi, rsi
je 0x1800086cb
mov qword [rsi + 0x18], send
mov qword [rsi + 0x10], r12
mov byte [rsi], 0
mov rdi, qword [rbp + 0xe0]
cmp rdi, 0xffffffffffffffff
cmova rdi, r14
lea rax, [rbp + 0xd0]
mov rdx, rdi
mov rcx, rsi
cmp rsi, rax
jne 0x18000867d
mov r8, r14
call fcn.180009850
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.180009850
jmp 0x1800086cb
call fcn.180009c30
test al, al
je 0x1800086cb
lea rdx, [rbp + 0xd0]
cmp qword [rbp + 0xe8], 0x10
cmovae rdx, qword [rbp + 0xd0]
cmp qword [rsi + 0x18], 0x10
jb 0x1800086a9
mov rcx, qword [rsi]
jmp 0x1800086ac
mov rcx, rsi
mov r8, rdi
call fcn.180015b40
mov qword [rsi + 0x10], rdi
cmp qword [rsi + 0x18], 0x10
jb 0x1800086c4
mov rax, qword [rsi]
jmp 0x1800086c7
mov rax, rsi
mov byte [rax + rdi], 0
add rsi, 0x28
mov qword [rsp + 0x60], rsi
mov rbx, qword [rbp - 0x70]
test rbx, rbx
je 0x180008761
mov rcx, qword [rbp - 0x58]
mov rdi, qword [rcx + 8]
cmp qword [rcx], rdi
jne 0x180008729
mov rdx, qword [rbp - 0x78]
cmp rdi, rdx
jne 0x1800086fc
mov rbx, r12
jmp 0x18000875d
mov ecx, dword [rbp - 0x68]
or ecx, 0x60
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov r9, rbx
lea r8, [rbp - 0x60]
mov rcx, rdi
call fcn.18000a4e0
mov rbx, qword [rbp - 0x70]
test al, al
jne 0x180008761
inc rdi
mov ecx, dword [rbp - 0x68]
bts ecx, 8
mov dword [rbp - 0x68], ecx
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov r9, rbx
lea r8, [rbp - 0x60]
mov rdx, qword [rbp - 0x78]
mov rcx, rdi
call fcn.18000a4e0
mov rbx, qword [rbp - 0x70]
test al, al
cmove rbx, r12
mov qword [rbp - 0x70], rbx
cmp qword [rbp + 0xe8], 0x10
jb 0x180008370
mov rcx, qword [rbp + 0xd0]
call fcn.180015af4
jmp 0x180008370
mov rcx, rsi
sub rcx, r15
movabs rax, 0x6666666666666667
imul rcx
mov r14, rdx
sar r14, 4
mov rax, r14
shr rax, 0x3f
add r14, rax
je 0x180008a8b
mov r15, qword [rsp + 0x50]
lea rcx, [r15 + 0x280]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11, qword [0x18003c288]
mov rax, r11
mov rdi, qword [0x18003c280]
sub rax, rdi
sar rax, 3
test rax, rax
je 0x18000882a
cmp rdi, r11
je 0x18000882a
lea rbx, [rdi + 8]
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800087f9
call fcn.1800076d0
mov qword [rdi], r12
mov r11, qword [0x18003c288]
sub r11, rbx
sar r11, 3
lea r8, [r11*8]
mov rdx, rbx
mov rcx, rdi
call fcn.180015b40
mov r11, qword [0x18003c288]
sub r11, 8
mov qword [0x18003c288], r11
cmp rdi, r11
jne 0x1800087e2
test r14, r14
je 0x180008a59
mov rbx, qword [rsp + 0x58]
nop dword [rax + rax]
mov r8d, 6
lea rdx, [0x18002ce50]
mov rcx, rbx
call fcn.1800092f0
mov rdi, rax
mov r9, qword [rbx + 0x10]
sub r9, rax
sub r9, 6
lea r8, [rax + 6]
lea rdx, [rbp + 0x170]
mov rcx, rbx
call fcn.180008d40
nop
mov rdx, rax
mov rcx, rbx
call fcn.180008fe0
nop
cmp qword [rbp + 0x188], 0x10
jb 0x180008899
mov rcx, qword [rbp + 0x170]
call fcn.180015af4
mov qword [rbp + 0x188], socket
mov qword [rbp + 0x180], r12
mov byte [rbp + 0x170], 0
cmp rdi, 0xffffffffffffffff
je 0x180008a4c
mov r8d, 4
lea rdx, [0x18002ce58]
mov rcx, rbx
call fcn.1800092f0
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x180008a4c
mov ecx, 0x50
call fcn.1800161b8
mov rdi, rax
test rax, rax
je 0x180008911
mov qword [rax + 0x18], send
mov qword [rax + 0x10], r12
mov byte [rax], 0
mov qword [rax + 0x40], send
mov qword [rax + 0x38], r12
mov byte [rax + 0x28], 0
jmp 0x180008914
mov rdi, r12
mov qword [rsp + 0x48], rdi
mov r9, r13
xor r8d, r8d
lea rdx, [rbp + 0x148]
mov rcx, rbx
call fcn.180008d40
nop
mov rdx, rax
mov rcx, rdi
call fcn.180008fe0
nop
cmp qword [rbp + 0x160], 0x10
jb 0x180008951
mov rcx, qword [rbp + 0x148]
call fcn.180015af4
mov qword [rbp + 0x160], socket
mov qword [rbp + 0x158], r12
mov byte [rbp + 0x148], 0
mov r9, qword [rbx + 0x10]
sub r9, r13
sub r9, 4
lea r8, [r13 + 4]
lea rdx, [rbp + 0x198]
mov rcx, rbx
call fcn.180008d40
nop
lea rcx, [rdi + 0x28]
mov rdx, rax
call fcn.180008fe0
nop
cmp qword [rbp + 0x1b0], 0x10
jb 0x1800089ac
mov rcx, qword [rbp + 0x198]
call fcn.180015af4
mov qword [rbp + 0x1b0], socket
mov qword [rbp + 0x1a8], r12
mov byte [rbp + 0x198], 0
lea rax, [rsp + 0x48]
mov rcx, qword [0x18003c288]
cmp rax, rcx
jae 0x180008a1d
lea rdx, [rsp + 0x48]
mov rax, qword [0x18003c280]
cmp rax, rdx
ja 0x180008a1d
lea rdi, [rsp + 0x48]
sub rdi, rax
sar rdi, 3
cmp rcx, qword [0x18003c290]
jne 0x180008a0f
call fcn.1800093d0
mov rcx, qword [0x18003c288]
mov rax, qword [0x18003c280]
test rcx, rcx
je 0x180008a41
mov rax, qword [rax + rdi*8]
mov qword [rcx], rax
jmp 0x180008a3a
cmp rcx, qword [0x18003c290]
jne 0x180008a32
call fcn.1800093d0
mov rcx, qword [0x18003c288]
test rcx, rcx
je 0x180008a41
mov qword [rcx], rdi
mov rcx, qword [0x18003c288]
add rcx, 8
mov qword [0x18003c288], rcx
add rbx, 0x28
dec r14
jne 0x180008840
lea rcx, [r15 + 0x280]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rdx, [0x18002ce60]
mov rdi, qword [rsp + 0x50]
mov rcx, rdi
call fcn.180008c60
mov dword [rdi + 0x27c], 1
mov r15, qword [rsp + 0x58]
jmp 0x180008aa6
lea rdx, [0x18002ce78]
mov rdi, qword [rsp + 0x50]
mov rcx, rdi
call fcn.180008c60
mov dword [rdi + 0x27c], r12d
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x180008ab5
call fcn.180015af4
nop
lea rcx, [rbp + 0x18]
call fcn.180008ee0
nop
test r15, r15
je 0x180008b00
mov rdi, r15
cmp r15, rsi
je 0x180008af7
nop dword [rax]
cmp qword [rdi + 0x18], 0x10
jb 0x180008adf
mov rcx, qword [rdi]
call fcn.180015af4
mov qword [rdi + 0x18], send
mov qword [rdi + 0x10], r12
mov byte [rdi], 0
add rdi, 0x28
cmp rdi, rsi
jne 0x180008ad0
mov rcx, r15
call fcn.180015af4
nop
cmp qword [rbp + 0x110], 0x10
jb 0x180008b16
mov rcx, qword [rbp + 0xf8]
call fcn.180015af4
mov qword [rbp + 0x110], socket
mov qword [rbp + 0x108], r12
mov byte [rbp + 0xf8], 0
cmp qword [rbp + 0x138], 0x10
jb 0x180008b4c
mov rcx, qword [rbp + 0x120]
call fcn.180015af4
jmp 0x180008b4c
call fcn.180003200
mov rcx, qword [rbp + 0x1e8]
xor rcx, rsp
call fcn.180015b10
mov rbx, qword [rsp + 0x348]
add rsp, 0x2f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret