Function at 0x180039d30
Capabilities:
Execute anti-debugging instructions

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rsi, rdx
mov r14, rcx
mov edi, dword [rsp + 0x100]
rdtsc
mov rcx, rdx
shl rcx, 0x20
or rcx, rax
rdtsc
shl rdx, 0x20
or rdx, rax
cmp rcx, rdx
mov eax, 0x19e70dcd
mov r13d, 0xe0c4d45b
cmove r13d, eax
mov eax, dword [rsi + rdi]
mov ecx, dword [r14]
mov r10d, dword [rsp + 0x4c]
not r10d
mov edx, r13d
xor edx, 0x44df0a6d
and r10d, edx
mov r11d, r13d
xor r11d, 0xbb20f592
mov r15d, dword [rsp + 0x4c]
and r15d, r11d
mov ebp, r13d
xor ebp, 0x1f3b2ba5
imul r15d, ebp
mov r12d, dword [rsp + 0x4c]
or r12d, edx
mov r8d, r13d
xor r8d, 0xe0c4d459
add r11d, r8d
sub r11d, r10d
mov ebx, r13d
xor ebx, 0xe0c4d45a
xor edx, dword [rsp + 0x4c]
imul r12d, ebx
add r11d, r15d
add r11d, r12d
add edx, r11d
inc edx
mov r10d, r13d
xor r10d, 0x1515662c
imul r10d, edx
mov edx, r13d
xor edx, 0x6abe995
add edx, r10d
mov dword [rsp + 0x84], edx
mov edx, r13d
xor edx, 0x6acf131c
imul edx, dword [rsp + 0x84]
mov r10d, r13d
xor r10d, 0xa846d85
add r10d, edx
cmp ecx, r10d
sete dl
mov ecx, r13d
mov r10d, r13d
xor r10d, 0x4635229d
mov r11d, r13d
xor r11d, 0xe0c4d441
add r11d, r10d
sub r11d, dword [rsp + 0x68]
xor ecx, 0xb9cadd62
or ecx, dword [rsp + 0x68]
imul ecx, r8d
add ecx, r11d
xor r10d, dword [rsp + 0x68]
imul r10d, ebx
add r10d, ecx
mov ecx, r13d
xor ecx, 0xc9c8881c
imul ecx, r10d
mov r10d, r13d
xor r10d, 0xf50637c3
add r10d, ecx
mov dword [rsp + 0x80], r10d
mov r10d, r13d
xor r10d, 0x2c
imul r10d, dword [rsp + 0x80]
mov ecx, r13d
xor ecx, 3
add ecx, r10d
mov r10d, eax
shr r10d, cl
mov qword [rsp + 0x88], r9
mov byte [rsp + 0x50], r10b
mov ecx, dword [rsp + 0x48]
mov r9d, r13d
xor r9d, 0xe6c230d8
mov r10d, r13d
xor r10d, 0xe6c230d9
mov r11d, r13d
xor r11d, 0xe0c4d44b
add r11d, r9d
mov r9d, dword [rsp + 0x48]
xor r9d, r10d
imul r9d, r8d
add r11d, r9d
mov r9d, r13d
xor r9d, 0x193dcf26
or ecx, r9d
not ecx
or r10d, dword [rsp + 0x48]
imul ecx, ebp
and r9d, dword [rsp + 0x48]
not r9d
imul r9d, ebx
add r11d, ecx
sub r11d, r10d
add r11d, r9d
mov ecx, r13d
xor ecx, 0x3310fba8
imul ecx, r11d
mov r9d, r13d
xor r9d, 0x97801d7d
add r9d, ecx
mov dword [rsp + 0x7c], r9d
mov r9d, r13d
xor r9d, 0x60
imul r9d, dword [rsp + 0x7c]
mov ecx, r13d
xor ecx, 0x65
add ecx, r9d
mov r9d, eax
shr r9d, cl
mov byte [rsp + 0x51], r9b
mov ecx, r13d
xor ecx, 0x77e6160c
mov r9d, dword [rsp + 0x44]
mov r10d, r13d
xor r10d, 0x8819e9f2
mov r11d, dword [rsp + 0x44]
or r11d, ecx
imul r11d, r8d
mov r8d, r13d
xor r8d, 0xe0c4d453
add r8d, r10d
xor r9d, ecx
imul r9d, ebp
add r8d, r9d
add r8d, r11d
mov r9d, r13d
xor r9d, 0x8819e9f3
or r9d, dword [rsp + 0x44]
sub r8d, r9d
and ecx, dword [rsp + 0x44]
not ecx
imul ecx, ebx
add r8d, ecx
mov ecx, r13d
xor ecx, 0xe85e5f94
imul ecx, r8d
mov r8d, r13d
xor r8d, 0x5e829e33
add r8d, ecx
mov dword [rsp + 0x78], r8d
mov r8d, r13d
xor r8d, 0x74
imul r8d, dword [rsp + 0x78]
mov ecx, r13d
xor ecx, 0xb3
add ecx, r8d
mov r8d, eax
shr r8d, cl
inc dl
mov byte [rsp + 0x52], r8b
mov byte [rsp + 0x53], al
mov byte [rsp + 0x54], dl
lea rcx, [rsp + 0x55]
mov r12d, 0xe0c4d44b
lea r8, [r12 + 0x11]
xor r8, r13
xor edx, edx
call fcn.18003ad10
mov r14, qword [r14 + 8]
xor r12, r13
lea rcx, [rsp + 0x30]
xor edx, edx
mov r8, r12
call fcn.18003ad10
mov eax, r13d
xor eax, 0xdb67198a
mov ecx, dword [rsp + 0x64]
or ecx, eax
mov edx, r13d
xor edx, 0xdb671988
add edx, ebx
add edx, dword [rsp + 0x64]
and eax, dword [rsp + 0x64]
not ecx
not eax
add eax, ecx
imul eax, ebx
add eax, edx
mov ecx, r13d
xor ecx, 0x17f6b60c
imul ecx, eax
mov eax, r13d
xor eax, 0x7bf9c363
add eax, ecx
mov dword [rsp + 0x74], eax
mov eax, r13d
xor eax, 0x6b8d7d3c
imul eax, dword [rsp + 0x74]
mov ecx, r13d
xor ecx, 0xc2cfae7c
mov edx, dword [rsp + 0x40]
and edx, ecx
imul ebp, dword [rsp + 0x40]
or ecx, dword [rsp + 0x40]
add ecx, edx
mov edx, r13d
xor edx, 0x3d305182
mov r8d, r13d
xor r8d, 0xe0c4d457
add r8d, edx
mov edx, r13d
xor edx, 0xcfdb6423
add r8d, ebp
imul ecx, ebx
add r8d, dword [rsp + 0x40]
add r8d, ecx
mov ecx, r13d
xor ecx, 0x41635240
imul ecx, r8d
mov r8d, r13d
xor r8d, 0x9ce9ac7f
add r8d, ecx
mov dword [rsp + 0x70], r8d
mov ecx, r13d
xor ecx, 0x7db73048
imul ecx, dword [rsp + 0x70]
add edx, eax
mov r9d, r13d
xor r9d, 0xddb0d10f
add r9d, ecx
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea r8, [rsp + 0x50]
mov rcx, r14
call fcn.18000a310
test eax, eax
mov eax, 0x6699482d
mov ebx, 0xf21bbb26
cmove ebx, eax
xor ebx, r13d
xor ebx, 0xbc284546
mov r12d, r13d
xor r12d, 0x6bc211fc
mov r15d, r13d
xor r15d, 0x64126790
mov qword [rsp + 0x90], r13
xor r13d, 0xbe44f1d7
jmp 0x18003a17a
cmp eax, 0x265d5aec
je 0x18003a2e7
cmp eax, 0x2cfac5a6
jne 0x18003a17a
mov ebp, 0xffffffff
mov ebx, r13d
mov eax, ebx
imul eax, r12d
add eax, r15d
cmp eax, 0x265d5aeb
jg 0x18003a1c0
cmp eax, 0xe1f4a747
jg 0x18003a200
cmp eax, 0x8f84b118
je 0x18003a2ee
cmp eax, 0xaddeb661
jne 0x18003a3a8
mov rcx, qword [rsp + 0x88]
xor edx, edx
mov r8, rdi
call fcn.18003ad10
jmp 0x18003a172
cmp eax, 0x53cdffc6
jle 0x18003a160
cmp eax, 0x53cdffc7
je 0x18003a172
cmp eax, 0x7ef9521b
jne 0x18003a17a
mov rcx, r14
mov rdx, rsi
mov r8, qword [rsp + 0x88]
mov r9d, edi
call fcn.18000e3c0
mov ecx, 0x476572db
test eax, eax
je 0x18003a1f9
mov ecx, 0xa66c5294
xor ebx, ecx
jmp 0x18003a17a
cmp eax, 0xe1f4a748
je 0x18003a172
cmp eax, 0xf7e228ee
jne 0x18003a17a
movzx eax, byte [rsi + rdi + 6]
movzx ecx, byte [rsi + rdi + 7]
xor al, byte [rsp + 0x30]
xor cl, byte [rsp + 0x31]
movzx edx, byte [rsi + rdi + 8]
xor dl, byte [rsp + 0x32]
movzx r8d, byte [rsi + rdi + 9]
xor r8b, byte [rsp + 0x33]
or cl, al
movzx r9d, byte [rsi + rdi + 0xa]
xor r9b, byte [rsp + 0x34]
or r8b, dl
movzx edx, byte [rsi + rdi + 0xb]
xor dl, byte [rsp + 0x35]
or r8b, cl
movzx eax, byte [rsi + rdi + 0xc]
xor al, byte [rsp + 0x36]
or dl, r9b
movzx ecx, byte [rsi + rdi + 0xd]
xor cl, byte [rsp + 0x37]
or al, dl
movzx edx, byte [rsi + rdi + 0xe]
xor dl, byte [rsp + 0x38]
or al, r8b
movzx r8d, byte [rsi + rdi + 0xf]
xor r8b, byte [rsp + 0x39]
or dl, cl
movzx ecx, byte [rsi + rdi + 0x10]
xor cl, byte [rsp + 0x3a]
or r8b, dl
movzx edx, byte [rsi + rdi + 0x11]
xor dl, byte [rsp + 0x3b]
or cl, r8b
movzx r8d, byte [rsi + rdi + 0x12]
xor r8b, byte [rsp + 0x3c]
or cl, al
movzx eax, byte [rsi + rdi + 0x13]
xor al, byte [rsp + 0x3d]
or r8b, dl
movzx edx, byte [rsi + rdi + 0x14]
xor dl, byte [rsp + 0x3e]
or al, r8b
or dl, al
or dl, cl
movzx eax, byte [rsi + rdi + 0x15]
xor al, byte [rsp + 0x3f]
or al, dl
mov eax, 0xc9eaa9d2
je 0x18003a2e0
mov eax, 0x8523bb5f
xor ebx, eax
jmp 0x18003a17a
xor ebp, ebp
jmp 0x18003a177
mov r8d, ebx
xor r8d, dword [rsp + 0x90]
mov eax, r8d
xor eax, 0x9dd47fb1
imul eax, dword [rsp + 0x60]
mov ecx, r8d
xor ecx, 0x429024de
mov edx, r8d
xor edx, 0x72765207
mov r9d, dword [rsp + 0x60]
or r9d, edx
mov r10d, r8d
xor r10d, 0x622b804e
imul r10d, r9d
xor edx, dword [rsp + 0x60]
mov r9d, r8d
xor r9d, 0x8d89adf8
add r9d, ecx
mov ecx, r8d
xor ecx, 0x9dd47fa0
add ecx, r9d
add ecx, eax
add ecx, r10d
lea eax, [rdx + rcx]
inc eax
mov ecx, r8d
xor ecx, 0x71bf37e1
imul ecx, eax
mov eax, r8d
xor eax, 0xab472e88
add eax, ecx
mov dword [rsp + 0x6c], eax
mov eax, r8d
xor eax, 0xd7377f01
imul eax, dword [rsp + 0x6c]
xor r8d, 0x92a8a7f8
add r8d, eax
mov rcx, r14
lea rdx, [rsp + 0x30]
call fcn.18000e650
mov ecx, 0xd99cd7ce
test eax, eax
je 0x18003a3a1
mov ecx, 0x5ceb2b46
xor ebx, ecx
jmp 0x18003a17a
cmp eax, 0xac9bee1f
jne 0x18003a17a
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x58], 0
mov eax, ebp
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret