Function at 0x140001e70
Capabilities:
Check mutex on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1e8
movdqa xmmword [rsp + 0x1d0], xmm15
movdqa xmmword [rsp + 0x1c0], xmm14
movdqa xmmword [rsp + 0x1b0], xmm13
movdqa xmmword [rsp + 0x1a0], xmm12
movdqa xmmword [rsp + 0x190], xmm11
movdqa xmmword [rsp + 0x180], xmm10
movdqa xmmword [rsp + 0x170], xmm9
movdqa xmmword [rsp + 0x160], xmm8
movdqa xmmword [rsp + 0x150], xmm7
movdqa xmmword [rsp + 0x140], xmm6
movabs rsi, 0x8000000000000000
lea rax, [0x140417b08]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x70]
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0x70], 0x8a727c3a
mov edx, dword [rsp + 0x70]
call fcn.140004030
mov ecx, 0x5f532452
xor ecx, dword [rax]
movzx eax, byte [rax + 4]
xor al, 0x7e
mov dword [rsp + 0x50], ecx
mov byte [rsp + 0x54], al
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x50]
mov r8d, 5
call fcn.1400dcc80
cmp qword [rsp + 0x28], rsi
jne 0x140002b9b
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
xor ecx, ecx
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_CreateMutexA
call sub.kernel32.dll_GetLastError
cmp eax, 0xb7
jne 0x140001ff6
mov byte [rdi], 0
test rsi, rsi
je 0x140001f8a
mov r8d, 1
mov rcx, rdi
mov rdx, rsi
call fcn.140008a40
movaps xmm6, xmmword [rsp + 0x140]
movaps xmm7, xmmword [rsp + 0x150]
movaps xmm8, xmmword [rsp + 0x160]
movaps xmm9, xmmword [rsp + 0x170]
movaps xmm10, xmmword [rsp + 0x180]
movaps xmm11, xmmword [rsp + 0x190]
movaps xmm12, xmmword [rsp + 0x1a0]
movaps xmm13, xmmword [rsp + 0x1b0]
movaps xmm14, xmmword [rsp + 0x1c0]
movaps xmm15, xmmword [rsp + 0x1d0]
add rsp, 0x1e8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rsi
lea rcx, [rsp + 0x70]
call fcn.140013ad0
lea rcx, [rsp + 0x70]
call fcn.140013e50
mov rsi, qword [rsp + 0xc8]
test rsi, rsi
je 0x1400029e4
mov rdi, qword [rsp + 0xb0]
lea r14, [rdi + 0x10]
movdqa xmm0, xmmword [rdi]
pmovmskb eax, xmm0
not eax
movdqa xmm6, xmmword [0x140102010]
movdqa xmm7, xmmword [0x140102020]
movdqa xmm9, xmmword [0x140102030]
movdqa xmm8, xmmword [0x140102040]
movdqa xmm10, xmmword [0x140102050]
movdqa xmm11, xmmword [0x140102060]
jmp 0x14000210a
movdqu xmm0, xmmword [rbx]
movdqu xmm1, xmmword [rax]
pcmpeqb xmm1, xmm0
movzx ecx, word [rbx + 0x10]
movzx edx, word [rax + 0x10]
movd xmm0, ecx
movd xmm2, edx
pcmpeqb xmm2, xmm0
pand xmm2, xmm1
pmovmskb ebp, xmm2
mov esi, 0x12
mov edx, 0x12
mov r8d, 1
mov rcx, rax
call fcn.140008a40
cmp ebp, 0xffff
je 0x140002b8f
mov r8d, 1
mov rcx, rbx
mov rdx, r15
call fcn.140008a40
mov eax, dword [rsp + 0x4c]
mov rsi, qword [rsp + 0x68]
dec rsi
movdqa xmm8, xmmword [0x140102040]
movdqa xmm10, xmmword [0x140102050]
movdqa xmm11, xmmword [0x140102060]
je 0x1400029e4
test ax, ax
je 0x140002120
lea ecx, [rax - 1]
and ecx, eax
mov dword [rsp + 0x4c], ecx
jmp 0x14000214c
movdqa xmm0, xmmword [r14]
pmovmskb eax, xmm0
add rdi, 0xffffffffffffea00
add r14, 0x10
cmp eax, 0xffff
je 0x140002120
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov edx, eax
and edx, ecx
mov dword [rsp + 0x4c], edx
tzcnt eax, eax
neg rax
imul rax, rax, 0x160
lea rcx, [rdi + rax]
add rcx, 0xfffffffffffffea8
call fcn.140014800
mov r8, rdx
lea rcx, [rsp + 0x28]
mov rdx, rax
call fcn.1400b4fd0
mov r12, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
test r15, r15
je 0x1400021f0
js 0x140002b48
mov rax, qword [0x140457a18]
movzx eax, byte [rax]
mov ebp, 1
mov edx, 1
mov rcx, r15
call fcn.140008a30
test rax, rax
je 0x140002b4c
mov r13, rax
mov rbx, rax
mov rcx, r13
mov rdx, r12
mov r8, r15
call sub.msvcrt.dll_memcpy
mov rcx, r13
cmp r15, 8
jb 0x1400022d0
cmp r15, 0x20
jae 0x1400021fa
xor eax, eax
jmp 0x140002278
mov ebx, 1
jmp 0x1400022ff
movabs rax, 0x8000000000000000
add rax, 0xffffffffffffffe0
and rax, r15
xor ecx, ecx
nop dword [rax]
movdqu xmm0, xmmword [rbx + rcx]
movdqu xmm1, xmmword [rbx + rcx + 0x10]
movdqa xmm2, xmm0
paddb xmm2, xmm6
movdqa xmm3, xmm1
paddb xmm3, xmm6
movdqa xmm4, xmm2
pminub xmm4, xmm7
pcmpeqb xmm4, xmm2
pand xmm4, xmm9
movdqa xmm2, xmm3
pminub xmm2, xmm7
pcmpeqb xmm2, xmm3
pand xmm2, xmm9
por xmm4, xmm0
por xmm2, xmm1
movdqu xmmword [rbx + rcx], xmm4
movdqu xmmword [rbx + rcx + 0x10], xmm2
add rcx, 0x20
cmp rax, rcx
jne 0x140002210
cmp r15, rax
je 0x1400022ff
test r15b, 0x18
je 0x1400022c9
movabs rcx, 0x8000000000000000
lea rdx, [rcx - 8]
and rdx, r15
lea rcx, [rdx + r13]
nop dword [rax]
movq xmm0, qword [rbx + rax]
movdqa xmm1, xmm0
paddb xmm1, xmm8
movdqa xmm2, xmm1
pmaxub xmm2, xmm10
pcmpeqb xmm2, xmm1
pandn xmm2, xmm11
por xmm2, xmm0
movq qword [rbx + rax], xmm2
add rax, 8
cmp rdx, rax
jne 0x140002290
cmp r15, rdx
jne 0x1400022d0
jmp 0x1400022ff
add rax, r13
mov rcx, rax
nop
add r13, r15
nop word cs:[rax + rax]
movzx eax, byte [rcx]
lea edx, [rax - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
mov byte [rcx], dl
lea rax, [rcx + 1]
mov rcx, rax
cmp rax, r13
jne 0x1400022e0
mov qword [rsp + 0x68], rsi
mov rdx, qword [rsp + 0x28]
lea rax, [rdx*2]
test rax, rax
je 0x140002324
mov r8d, 1
mov rcx, r12
call fcn.140008a40
lea rax, [0x1404191a0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x28]
mov rcx, qword [rsp + 0x28]
mov dword [rsp + 0x28], 0x3c34b99a
mov edx, dword [rsp + 0x28]
call fcn.140004070
mov rsi, qword [rax]
mov rbp, qword [rax + 8]
movzx r13d, byte [rax + 0x10]
mov rax, qword [0x140457a18]
movzx eax, byte [rax]
mov r12d, 0x11
mov ecx, 0x11
mov edx, 1
call fcn.140008a30
test rax, rax
je 0x140002b36
movabs rcx, 0xc3fd1b74e7dbe890
xor rbp, rcx
mov qword [rax + 8], rbp
movabs rcx, 0x63fa6db6179f192b
xor rsi, rcx
movzx ecx, word [rax + 0xe]
movd xmm0, ecx
mov rcx, rsi
shr rcx, 0x38
movd xmm1, ecx
mov rcx, rsi
shr rcx, 0x30
movd xmm2, ecx
mov rcx, rsi
shr rcx, 0x28
movd xmm4, ecx
mov rcx, rsi
shr rcx, 0x20
movd xmm3, ecx
mov ecx, esi
shr ecx, 0x18
movd xmm6, ecx
mov ecx, esi
shr ecx, 0x10
movd xmm10, ecx
movd xmm5, esi
mov ecx, esi
shr ecx, 8
movd xmm11, ecx
mov ecx, ebp
shr ecx, 0x18
movd xmm12, ecx
mov ecx, ebp
shr ecx, 0x10
movd xmm13, ecx
mov ecx, ebp
shr ecx, 8
movd xmm8, ecx
xor r13b, 0x9d
movd xmm7, ebp
shr rbp, 0x20
movd xmm14, ebp
movzx ecx, byte [rax + 0xd]
movd xmm15, ecx
lea ecx, [r13 - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, r13b
punpcklbw xmm2, xmm1
punpcklbw xmm3, xmm4
punpcklwd xmm3, xmm2
punpcklbw xmm10, xmm6
punpcklbw xmm5, xmm11
punpcklwd xmm5, xmm10
punpckldq xmm5, xmm3
punpcklbw xmm13, xmm12
punpcklbw xmm7, xmm8
punpcklwd xmm7, xmm13
punpcklbw xmm14, xmm15
punpckldq xmm7, xmm14
punpcklqdq xmm5, xmm7
pand xmm5, xmmword [0x140102070]
pslldq xmm0, 0xe
por xmm0, xmm5
movdqa xmm1, xmm0
paddb xmm1, xmmword [0x140102010]
movdqa xmm2, xmm1
pminub xmm2, xmmword [0x140102020]
pcmpeqb xmm2, xmm1
pand xmm2, xmm9
por xmm2, xmm0
movdqu xmmword [rax], xmm2
mov byte [rax + 0x10], cl
cmp r15, 0x11
jne 0x1400024ed
movdqu xmm0, xmmword [rbx]
movdqu xmm1, xmmword [rax]
pcmpeqb xmm1, xmm0
movzx ecx, byte [rbx + 0x10]
movzx edx, byte [rax + 0x10]
movd xmm0, ecx
movd xmm2, edx
pcmpeqb xmm2, xmm0
pand xmm2, xmm1
pmovmskb ecx, xmm2
cmp ecx, 0xffff
je 0x140002b6b
mov edx, 0x11
mov r8d, 1
mov rcx, rax
call fcn.140008a40
lea rax, [0x14041f8e2]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x28]
mov rcx, qword [rsp + 0x28]
mov dword [rsp + 0x28], 0xd0442c6a
mov edx, dword [rsp + 0x28]
call fcn.140004050
movdqa xmm6, xmmword [0x140102040]
movdqa xmm7, xmmword [0x140102050]
movdqa xmm8, xmmword [0x140102060]
mov rbp, qword [rax]
mov esi, dword [rax + 8]
movzx r13d, byte [rax + 0xc]
mov rax, qword [0x140457a18]
movzx eax, byte [rax]
mov r12d, 0xd
mov ecx, 0xd
mov edx, 1
call fcn.140008a30
test rax, rax
je 0x140002b36
xor r13b, 0xa4
movabs rcx, 0xd2235928b9ee66b4
xor rbp, rcx
mov ecx, ebp
shr ecx, 8
movq xmm0, rbp
movdqa xmm1, xmm0
psrlq xmm1, 0x10
pshufd xmm2, xmm0, 0x44
movdqa xmm3, xmm2
psrlq xmm3, 0x18
movsd xmm3, xmm1
movdqa xmm1, xmm0
psrlq xmm1, 0x20
movdqa xmm4, xmm2
psrlq xmm4, 0x28
movsd xmm4, xmm1
movdqa xmm1, xmm0
psrlq xmm1, 0x30
psrlq xmm2, 0x38
movsd xmm2, xmm1
movd xmm1, ecx
punpcklqdq xmm0, xmm1
movapd xmm1, xmmword [0x140102080]
andpd xmm2, xmm1
andpd xmm4, xmm1
packuswb xmm4, xmm2
andpd xmm3, xmm1
pand xmm0, xmm1
packuswb xmm0, xmm3
packuswb xmm0, xmm4
packuswb xmm0, xmm0
movdqa xmm1, xmm0
paddb xmm1, xmm6
movdqa xmm2, xmm1
pmaxub xmm2, xmm7
pcmpeqb xmm2, xmm1
pandn xmm2, xmm8
por xmm2, xmm0
movq qword [rax], xmm2
xor esi, 0x99c6b0cb
movd xmm0, esi
movdqa xmm1, xmm0
paddb xmm1, xmmword [0x140102090]
movdqa xmm2, xmm1
pmaxub xmm2, xmmword [0x1401020a0]
pcmpeqb xmm2, xmm1
pandn xmm2, xmmword [0x1401020b0]
por xmm2, xmm0
movd dword [rax + 8], xmm2
lea ecx, [r13 - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, r13b
mov byte [rax + 0xc], cl
cmp r15, 0xd
jne 0x140002689
mov rcx, qword [rbx]
xor rcx, qword [rax]
mov rdx, qword [rbx + 5]
xor rdx, qword [rax + 5]
or rdx, rcx
je 0x140002b5f
mov edx, 0xd
mov r8d, 1
mov rcx, rax
call fcn.140008a40
lea rax, [0x14041a556]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x28]
mov rcx, qword [rsp + 0x28]
mov dword [rsp + 0x28], 0xdcdc0ec5
mov edx, dword [rsp + 0x28]
call fcn.140004150
mov r13, qword [rax]
mov esi, dword [rax + 8]
mov rax, qword [0x140457a18]
movzx eax, byte [rax]
mov r12d, 0xc
mov ecx, 0xc
mov edx, 1
call fcn.140008a30
test rax, rax
je 0x140002b36
movabs rcx, 0xb20242e9abb6689b
xor r13, rcx
mov ecx, r13d
shr ecx, 8
movq xmm0, r13
movdqa xmm1, xmm0
psrlq xmm1, 0x10
pshufd xmm2, xmm0, 0x44
movdqa xmm3, xmm2
psrlq xmm3, 0x18
movsd xmm3, xmm1
movdqa xmm1, xmm0
psrlq xmm1, 0x20
movdqa xmm4, xmm2
psrlq xmm4, 0x28
movsd xmm4, xmm1
movdqa xmm1, xmm0
psrlq xmm1, 0x30
psrlq xmm2, 0x38
movsd xmm2, xmm1
movd xmm1, ecx
punpcklqdq xmm0, xmm1
movapd xmm1, xmmword [0x140102080]
andpd xmm2, xmm1
andpd xmm4, xmm1
packuswb xmm4, xmm2
andpd xmm3, xmm1
pand xmm0, xmm1
packuswb xmm0, xmm3
packuswb xmm0, xmm4
packuswb xmm0, xmm0
movdqa xmm1, xmm0
paddb xmm1, xmm6
movdqa xmm2, xmm1
pmaxub xmm2, xmm7
pcmpeqb xmm2, xmm1
pandn xmm2, xmm8
por xmm2, xmm0
movq qword [rax], xmm2
xor esi, 0xb1bce706
movd xmm0, esi
movdqa xmm1, xmm0
paddb xmm1, xmmword [0x140102090]
movdqa xmm2, xmm1
pmaxub xmm2, xmmword [0x1401020a0]
pcmpeqb xmm2, xmm1
pandn xmm2, xmmword [0x1401020b0]
por xmm2, xmm0
movd dword [rax + 8], xmm2
cmp r15, 0xc
jne 0x1400027ef
mov rcx, qword [rbx]
xor rcx, qword [rax]
mov edx, dword [rbx + 8]
xor edx, dword [rax + 8]
or rdx, rcx
je 0x140002b77
mov edx, 0xc
mov r8d, 1
mov rcx, rax
call fcn.140008a40
lea rax, [0x14041d9f9]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x28]
mov rcx, qword [rsp + 0x28]
mov dword [rsp + 0x28], 0x64c8264
mov edx, dword [rsp + 0x28]
call fcn.1400041f0
mov rsi, qword [rax]
mov rbp, qword [rax + 8]
movzx r13d, word [rax + 0x10]
mov rax, qword [0x140457a18]
movzx eax, byte [rax]
mov r12d, 0x12
mov ecx, 0x12
mov edx, 1
call fcn.140008a30
test rax, rax
je 0x140002b36
movabs rcx, 0x94df7990cd1dd01f
xor rbp, rcx
mov qword [rax + 8], rbp
movabs rcx, 0xc70648f31fcd6341
xor rsi, rcx
movzx ecx, word [rax + 0xe]
movd xmm0, ecx
mov rcx, rsi
shr rcx, 0x38
movd xmm1, ecx
mov rcx, rsi
shr rcx, 0x30
movd xmm2, ecx
mov rcx, rsi
shr rcx, 0x28
movd xmm4, ecx
mov rcx, rsi
shr rcx, 0x20
movd xmm3, ecx
mov ecx, esi
shr ecx, 0x18
movd xmm14, ecx
mov ecx, esi
shr ecx, 0x10
movd xmm15, ecx
movd xmm5, esi
mov ecx, esi
shr ecx, 8
movd xmm6, ecx
mov ecx, ebp
shr ecx, 0x18
movd xmm10, ecx
mov ecx, ebp
shr ecx, 0x10
movd xmm11, ecx
mov ecx, ebp
shr ecx, 8
movd xmm12, ecx
mov ecx, r13d
shr ecx, 8
xor cl, 0xc8
xor r13b, 0xa6
movd xmm13, ebp
shr rbp, 0x20
movd xmm7, ebp
movzx edx, byte [rax + 0xd]
movd xmm8, edx
lea edx, [r13 - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, r13b
lea r8d, [rcx - 0x41]
cmp r8b, 0x1a
setb r8b
shl r8b, 5
or r8b, cl
punpcklbw xmm2, xmm1
punpcklbw xmm3, xmm4
punpcklwd xmm3, xmm2
punpcklbw xmm15, xmm14
punpcklbw xmm5, xmm6
movdqa xmm6, xmmword [0x140102010]
punpcklwd xmm5, xmm15
punpckldq xmm5, xmm3
punpcklbw xmm11, xmm10
punpcklbw xmm13, xmm12
punpcklwd xmm13, xmm11
punpcklbw xmm7, xmm8
punpckldq xmm13, xmm7
movdqa xmm7, xmmword [0x140102020]
punpcklqdq xmm5, xmm13
pand xmm5, xmmword [0x140102070]
pslldq xmm0, 0xe
por xmm0, xmm5
movdqa xmm1, xmm0
paddb xmm1, xmm6
movdqa xmm2, xmm1
pminub xmm2, xmm7
pcmpeqb xmm2, xmm1
pand xmm2, xmm9
por xmm2, xmm0
movdqu xmmword [rax], xmm2
mov byte [rax + 0x10], dl
mov byte [rax + 0x11], r8b
cmp r15, 0x12
je 0x140002080
mov edx, 0x12
mov r8d, 1
mov rcx, rax
call fcn.140008a40
test r15, r15
jne 0x1400020cc
jmp 0x1400020dd
lea rcx, [rsp + 0x70]
call fcn.140001750
call fcn.140008310
call fcn.140007360
mov ecx, 0x7d0
call fcn.1400071b0
mov rax, qword [0x140457a18]
movzx eax, byte [rax]
mov esi, 1
mov ecx, 0x324dd5
mov edx, 1
call fcn.140008a30
test rax, rax
je 0x140002bdc
mov rbx, rax
lea rdx, [0x140102368]
mov r8d, 0x324dd5
mov rcx, rax
call sub.msvcrt.dll_memcpy
lea rax, [0x14042713d]
nop dword [rax + rax]
lea ecx, [rsi - 1]
and ecx, 0x1e
movzx ecx, byte [rcx + rax]
xor byte [rbx + rsi - 1], cl
cmp rsi, 0x324dd5
je 0x140002a79
mov ecx, esi
and ecx, 0x1f
movzx ecx, byte [rcx + rax]
xor byte [rbx + rsi], cl
add rsi, 2
jmp 0x140002a50
mov ecx, 0x40000
xor edx, edx
xor r8d, r8d
call sub.kernel32.dll_HeapCreate
mov r14, rax
mov r8d, 0x324dd5
mov rcx, rax
mov edx, 8
call fcn.1400febc4
mov r15, rax
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x140002b08
mov ecx, 0xfa0
call fcn.1400071b0
lea rcx, [rsp + 0x70]
call fcn.1400043f0
mov rdx, qword [rsp + 0x70]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x140002ae7
test rdx, rdx
je 0x140002ae7
mov rcx, qword [rsp + 0x78]
mov r8d, 1
call fcn.140008a40
mov r8d, 0x324dd5
mov rcx, r15
mov rdx, rbx
call sub.msvcrt.dll_memmove
call r15
mov rcx, r14
xor edx, edx
mov r8, r15
call fcn.1400febd4
mov edx, 0x324dd5
mov r8d, 1
mov rcx, rbx
call fcn.140008a40
mov rdi, qword [rsp + 0x58]
mov byte [rdi], 0
mov rsi, qword [rsp + 0x60]
test rsi, rsi
jne 0x140001f79
jmp 0x140001f8a
mov ecx, 1
mov rdx, r12
call fcn.1400dc200
jmp 0x140002beb
xor ebp, ebp
jmp 0x140002b4f
mov rbx, r15
mov rcx, rbp
mov rdx, rbx
call fcn.1400dc200
jmp 0x140002beb
mov esi, 0xd
mov edx, 0xd
jmp 0x140002b81
mov esi, 0x11
mov edx, 0x11
jmp 0x140002b81
mov esi, 0xc
mov edx, 0xc
mov r8d, 1
mov rcx, rax
call fcn.140008a40
mov r15, rsi
xor ecx, ecx
call fcn.14009ec10
jmp 0x140002beb
movdqu xmm0, xmmword [rsp + 0x28]
movdqu xmm1, xmmword [rsp + 0x38]
movdqa xmmword [rsp + 0x80], xmm1
movdqa xmmword [rsp + 0x70], xmm0
lea rax, str.src_main.rs
mov qword [rsp + 0x20], rax
lea r9, [0x1401021d0]
lea r8, [rsp + 0x70]
mov ecx, 1
xor edx, edx
call fcn.1400e95a0
jmp 0x140002beb
mov ecx, 1
mov edx, 0x324dd5
call fcn.1400dc200
ud2