Function at 0x140374640
Capabilities:
Execute anti-debugging instructions
Resolve function by parsing pe exports

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xcd8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xc50], 0xfffffffffffffffe
mov qword [rbp + 0xc48], 0
cmp rcx, 0x1fefa
je 0x1403746ab
mov rsi, rdx
mov rbx, rcx
call fcn.1403751b0
rdtsc
mov r12, rax
mov r13, rdx
shl r13, 0x20
test rsi, rsi
je 0x140374708
mov rax, qword [rsi]
cmp rax, 7
jb 0x1403746f8
inc qword [0x14055b580]
jmp 0x140374740
cmp qword [0x14055b5ec], 0x33c0
jne 0x140374f8d
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x38], 0xfe3ebf08
mov dword [rsp + 0x30], 0xe8be63d3
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.140377db0
add rax, 0x33c0
mov qword [0x14055b5ec], rax
jmp 0x140374f8d
cmp rax, qword [0x14055b578]
jbe 0x140374708
mov qword [0x14055b578], rax
xor r14d, r14d
test rbx, rbx
je 0x140374740
mov qword [rbp + 0xbf8], rsi
nop word [rax + rax]
mov edi, r14d
movzx eax, byte [rbx + rdi]
test eax, eax
je 0x14037474a
cmp eax, 0x2e
je 0x14037474a
mov eax, r14d
xor eax, 1
and r14d, 1
lea r14d, [rax + r14*2]
jmp 0x140374720
xor r15d, r15d
xor esi, esi
jmp 0x140374e7f
xor r15d, r15d
cmp byte [rbx + rdi], 0x2e
mov esi, 0
jne 0x140374e7f
mov qword [rbp + 0xc30], 0
mov r8d, 0x400
sub r8, rdi
xor esi, esi
cmp r14d, 0x400
cmovae r8, rsi
lea rcx, [rdi + rbp]
add rcx, 0x7c0
xor edx, edx
call fcn.14041da70
lea r15, [rbp + 0x7c0]
mov rcx, r15
mov qword [rbp + 0xc08], rbx
mov rdx, rbx
mov r8, rdi
call fcn.14041d3c0
mov dword [rsp + 0x20], 0xdf690e60
xor ecx, ecx
mov edx, 1
mov r8, r15
mov r9d, 0x42631cc8
call fcn.140377e80
mov qword [rbp + 0xc30], rax
mov ecx, 0
mov qword [rbp + 0xc40], rcx
test rax, rax
jne 0x1403748fe
xor eax, eax
mov qword [rbp + 0xc40], rax
lea rcx, [rbp + 0x7c0]
xor edx, edx
call fcn.140373d30
xor ecx, ecx
test rax, rax
sete cl
lea rbx, [0x14055b4d0]
mov rdx, qword [rbx + rcx*8 + 0x58]
mov r8, rdx
xor r8, 1
and edx, 1
mov qword [rbp + 0xc30], rax
lea rdx, [r8 + rdx*2]
mov qword [rbx + rcx*8 + 0x58], rdx
test rax, rax
jne 0x1403748fe
xor eax, eax
mov qword [rbp + 0xc40], rax
mov r15d, 1
xor ecx, ecx
mov edx, 1
mov r8d, 0x5dccadbc
call fcn.1403774f0
test rax, rax
je 0x1403748fe
mov qword [rbp + 0xbd8], 0
lea rcx, [rbp - 0x40]
mov qword [rbp + 0xbe0], rcx
xor ecx, ecx
xor r10d, r10d
nop word [rax + rax]
mov edx, r10d
mov r8d, r10d
movsx r9d, byte [rbp + r8 + 0x7c0]
xor r10d, r10d
test r9w, r9w
setne r10b
mov word [rbp + r8*2 - 0x40], r9w
movzx ecx, cl
cmove ecx, r15d
add r10d, edx
test cl, 1
je 0x140374880
lea ecx, [r10 + r10]
mov word [rbp + 0xbd8], cx
lea ecx, [r10 + r10]
add ecx, 2
mov word [rbp + 0xbda], cx
lea r8, [rbp + 0xbd8]
lea r9, [rbp + 0xc30]
xor ecx, ecx
xor edx, edx
call qword [case.0x14013cbc3.0]
mov rdx, qword [rbp + 0xc30]
xor eax, eax
mov rcx, rdx
mov qword [rbp + 0xc40], rdx
test rdx, rdx
sete al
inc qword [rbx + rax*8 + 0x20]
lea rcx, [rbp + 0x7c0]
xor edx, edx
mov r8, rdi
call fcn.14041da70
mov eax, r14d
xor eax, 1
mov ecx, r14d
and ecx, 1
lea eax, [rax + rcx*2]
mov rcx, qword [rbp + 0xc08]
movzx ebx, byte [rcx + rax]
mov r15d, 0
cmp bl, 0x23
jne 0x140374961
add r14d, 2
mov rax, qword [rbp + 0xc08]
lea rcx, [rax + r14]
mov edx, 0x91e70531
mov r8d, 0x3a39f889
mov r9d, 0x5db34504
call fcn.1402a37e0
mov esi, eax
mov r15b, 1
mov eax, r14d
mov rcx, qword [rbp + 0xbf8]
test rcx, rcx
mov r9, qword [rbp + 0xc40]
je 0x140374986
cmp qword [rcx], 7
jb 0x140374986
inc qword [0x14055b580]
jmp 0x140374e42
mov rdi, qword [rbp + 0xc30]
test rdi, rdi
je 0x140374e42
movsxd rdx, dword [rdi + 0x3c]
mov ecx, dword [rdi + rdx + 0x88]
test rcx, rcx
je 0x140374e42
mov r10d, dword [rdi + rdx + 0x8c]
test r10, r10
je 0x140374e42
cmp dword [rdi + rdx + 0x8c], 0x28
jb 0x140374e42
lea r8, [rdi + rcx]
add r10, r8
mov edx, dword [r8 + 0x1c]
add rdx, rdi
mov qword [rbp + 0xbf0], rdx
mov edx, dword [r8 + 0x14]
cmp bl, 0x23
jne 0x140374a81
mov r8d, dword [r8 + 0x10]
inc qword [0x14055b500]
test edx, edx
je 0x140374e42
mov rax, rsi
mov sil, 1
mov r14, rax
sub eax, r8d
jb 0x140374e44
cmp eax, edx
jae 0x140374e44
mov eax, eax
mov rdx, qword [rbp + 0xbf0]
mov ebx, dword [rdx + rax*4]
test rbx, rbx
je 0x140374e42
mov eax, ebx
add rbx, rdi
cmp eax, ecx
jb 0x140374e3b
cmp rbx, r10
ja 0x140374e3b
mov rcx, rbx
mov rdx, qword [rbp + 0xc08]
call fcn.140373b20
test al, al
je 0x140374fa8
mov rcx, rbx
mov rdx, rdi
call fcn.140373d30
test rax, rax
je 0x14037502a
mov qword [rbp + 0xc30], rax
lea rax, [0x14055b528]
jmp 0x140375031
mov qword [rbp + 0xbd0], r10
mov r10d, dword [r8 + 0x20]
mov ecx, dword [r8 + 0x24]
mov qword [rbp + 0xbc8], r8
mov r8d, dword [r8 + 0x18]
inc qword [0x14055b508]
xor esi, esi
test edx, edx
je 0x140374e44
add r10, rdi
add rcx, rdi
test r8d, r8d
je 0x140374e44
mov qword [rbp + 0xbc0], rcx
je 0x140374e44
mov eax, eax
add rax, qword [rbp + 0xc08]
mov qword [rbp + 0xc00], rax
xor ecx, ecx
mov qword [rbp + 0xc18], r12
mov qword [rbp + 0xc20], r13
mov qword [rbp + 0xc28], r15
mov qword [rbp + 0xc10], r10
mov dword [rbp + 0xc3c], r8d
mov r14, qword [rbp + 0xc00]
jmp 0x140374b57
mov qword [rbp + 0xc48], 0
mov eax, dword [0x1405766c0]
mov rcx, qword [rbp + 0xbe8]
add ecx, eax
inc ecx
xor esi, esi
mov r8d, dword [rbp + 0xc3c]
cmp ecx, r8d
mov r12, qword [rbp + 0xc18]
mov r13, qword [rbp + 0xc20]
mov r9, qword [rbp + 0xc40]
mov r15, qword [rbp + 0xc28]
mov r10, qword [rbp + 0xc10]
jae 0x140374e44
mov qword [rbp + 0xbe8], rcx
mov eax, ecx
mov ecx, dword [r10 + rax*4]
test rcx, rcx
je 0x140374b11
mov rsi, qword [rbp + 0xc30]
add rcx, rsi
xor edx, edx
nop word cs:[rax + rax]
movzx r8d, byte [rcx + rdx]
movzx r9d, byte [r14 + rdx]
cmp r8b, r9b
setne r10b
sete r11b
test r8b, r8b
sete bl
setne dil
xor dil, r11b
and bl, r10b
or bl, dil
jne 0x140374baf
inc rdx
jmp 0x140374b80
cmp r8b, r9b
jne 0x140374b11
mov rcx, qword [rbp + 0xbc0]
movzx eax, word [rcx + rax*2]
mov rcx, qword [rbp + 0xbf0]
mov edi, dword [rcx + rax*4]
test rdi, rdi
je 0x140374b11
add rdi, rsi
cmp rdi, qword [rbp + 0xbc8]
jb 0x140374c89
cmp rdi, qword [rbp + 0xbd0]
ja 0x140374c89
mov rcx, rdi
mov rdx, qword [rbp + 0xc08]
call fcn.140373b20
test al, al
je 0x140374c68
mov rcx, rdi
mov rdx, rsi
call fcn.140373d30
test rax, rax
je 0x140374cdc
mov qword [rbp + 0xc30], rax
inc qword [0x14055b528]
mov rcx, rax
mov rdx, qword [rbp + 0xc00]
call fcn.140375560
mov qword [rbp + 0xc48], rax
mov rcx, qword [0x14055b4d8]
mov rdx, rcx
xor rdx, 1
and ecx, 1
lea rcx, [rdx + rcx*2]
mov qword [0x14055b4d8], rcx
test rax, rax
je 0x140374d0a
jmp 0x140375007
inc qword [0x14055b4d0]
mov rdx, qword [rbp + 0xbf8]
test rdx, rdx
je 0x140374c7e
inc qword [rdx]
mov rcx, rdi
call fcn.140374640
mov rdi, rax
mov qword [rbp + 0xc48], rdi
mov r12, qword [rbp + 0xc18]
mov r13, qword [rbp + 0xc20]
mov r9, qword [rbp + 0xc40]
mov r15, qword [rbp + 0xc28]
mov r10, qword [rbp + 0xc10]
mov r8d, dword [rbp + 0xc3c]
xor esi, esi
test rdi, rdi
jne 0x140374e44
mov rcx, qword [rbp + 0xbe8]
inc ecx
cmp ecx, r8d
jb 0x140374b57
jmp 0x140374e44
mov rax, qword [0x14055b530]
mov rcx, rax
xor rcx, 1
and eax, 1
lea rax, [rcx + rax*2]
mov qword [0x14055b530], rax
mov qword [rbp + 0xc48], 0
inc qword [0x14055b4d8]
call fcn.140382480
test rax, rax
je 0x140374b06
mov qword [rbp - 0x40], 0
xor ecx, ecx
xor edx, edx
mov r9, qword [rbp + 0xc00]
mov r10d, 1
mov r8, rcx
xor ecx, ecx
cmp byte [r9 + r8], 0
setne cl
movzx edx, dl
cmove edx, r10d
add rcx, r8
test dl, 1
je 0x140374d31
mov word [rbp - 0x40], cx
mov edx, ecx
xor edx, 1
and ecx, 1
lea ecx, [rdx + rcx*2]
mov word [rbp - 0x3e], cx
mov qword [rbp - 0x38], r9
mov rcx, qword [rbp + 0xc30]
lea rdx, [rbp - 0x40]
xor r8d, r8d
lea r9, [rbp + 0xc48]
call qword [case.0x14013cbc3.0]
cmp eax, 0xc0000142
je 0x140374d8d
cmp eax, 0xc0000138
jne 0x140374de0
mov qword [rbp + 0xc48], 0
inc qword [0x14055b538]
mov r12, qword [rbp + 0xc18]
mov r13, qword [rbp + 0xc20]
mov r9, qword [rbp + 0xc40]
mov r15, qword [rbp + 0xc28]
mov r10, qword [rbp + 0xc10]
mov r8d, dword [rbp + 0xc3c]
inc qword [0x14055b570]
lea rax, [0x14055b540]
lea rcx, [0x14055b550]
jmp 0x140374e29
inc qword [0x14055b538]
cmp qword [rbp + 0xc48], 0
lea rax, [0x14055b558]
lea rcx, [0x14055b568]
mov r12, qword [rbp + 0xc18]
mov r13, qword [rbp + 0xc20]
mov r9, qword [rbp + 0xc40]
mov r15, qword [rbp + 0xc28]
mov r10, qword [rbp + 0xc10]
mov r8d, dword [rbp + 0xc3c]
je 0x140374dc9
inc qword [rax]
inc qword [rcx]
mov rdi, qword [rbp + 0xc48]
jmp 0x140374cba
mov qword [rbp + 0xc48], rbx
xor esi, esi
mov rax, qword [rbp + 0xc48]
test rax, rax
jne 0x140374e86
test r9, r9
je 0x140374e86
mov ecx, 1
xor edx, edx
mov r8d, 0x1a24c328
mov r9d, 0xe48816e4
call fcn.140377f10
test rax, rax
je 0x140374e7f
mov rcx, qword [rbp + 0xc40]
call qword [case.0x14013cbc3.0]
mov rax, qword [rbp + 0xc48]
or r12, r13
test rax, rax
je 0x140374e97
lea rax, [0x14055b4e0]
jmp 0x140374eb5
lea rax, [0x14055b4d0]
inc qword [0x14055b4e8]
xor ecx, ecx
test r15b, r15b
sete cl
lea rax, [rax + rcx*8]
add rax, 0x40
inc qword [rax]
rdtsc
shl rdx, 0x20
or rdx, rax
sub rdx, r12
cmp qword [0x14055b5a0], 0
je 0x140374eda
mov rax, qword [0x14055b5a0]
cmp rax, rdx
jae 0x140374ee1
mov qword [0x14055b5a0], rdx
cmp qword [rbp + 0xc48], 0
je 0x140374f05
mov dword [rsp + 0x38], 0x3711ccfc
mov dword [rsp + 0x30], 0x726efe86
mov dword [rsp + 0x28], 0
jmp 0x140374f6f
test r15b, r15b
sete al
xor sil, 1
mov ecx, r15d
xor cl, sil
not cl
and cl, al
or cl, sil
jne 0x140374f38
mov dword [rsp + 0x38], 0x3711ccfc
mov dword [rsp + 0x30], 0x726efe86
mov dword [rsp + 0x28], 0x4750412d
jmp 0x140374f6f
test r15b, r15b
je 0x140374f57
mov dword [rsp + 0x38], 0x3711ccfc
mov dword [rsp + 0x30], 0x726efe86
mov dword [rsp + 0x28], 0xc0000138
jmp 0x140374f6f
mov dword [rsp + 0x38], 0x3711ccfc
mov dword [rsp + 0x30], 0x726efe86
mov dword [rsp + 0x28], 0xc0000139
mov qword [rsp + 0x20], 0
mov ecx, 1
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.1403778f0
mov rax, qword [rbp + 0xc48]
add rsp, 0xcd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [0x14055b4d0]
mov rcx, rax
not rcx
movabs rdx, 0x7ffffffffffffffe
and rdx, rcx
and ecx, 1
mov r8, rax
and r8, 0xfffffffffffffffe
or r8, rcx
xor rax, 1
or rdx, rax
not rdx
lea rax, [r8 + rdx*2]
mov qword [0x14055b4d0], rax
mov rdx, qword [rbp + 0xbf8]
test rdx, rdx
je 0x140374ff3
inc qword [rdx]
mov rcx, rbx
call fcn.140374640
mov qword [rbp + 0xc48], rax
jmp 0x140375153
xor esi, esi
mov r12, qword [rbp + 0xc18]
mov r13, qword [rbp + 0xc20]
mov r9, qword [rbp + 0xc40]
mov r15, qword [rbp + 0xc28]
jmp 0x140374e44
lea rax, [0x14055b530]
inc qword [rax]
mov qword [rbp + 0xc48], 0
inc qword [0x14055b4d8]
xor ecx, ecx
mov edx, 1
mov r8d, 0x1c0171c3
mov r9d, 0x5809a18f
call fcn.140377e20
test rax, rax
je 0x14037509d
inc qword [0x14055b538]
mov rcx, qword [rbp + 0xc30]
lea r9, [rbp + 0xc48]
xor edx, edx
mov r8d, r14d
call qword [case.0x14013cbc3.0]
add eax, dword [0x1405769e4]
cmp eax, 0xc0000138
jne 0x1403750ad
mov qword [rbp + 0xc48], 0
jmp 0x1403750ed
mov qword [rbp + 0xc48], 0
jmp 0x140375153
cmp qword [rbp + 0xc48], 0
je 0x1403750ed
inc qword [0x14055b570]
inc qword [0x14055b558]
mov rax, qword [0x14055b560]
mov ecx, eax
not ecx
and ecx, 1
mov rdx, rax
and rdx, 0xfffffffffffffffe
or rdx, rcx
and eax, 1
lea rax, [rdx + rax*2]
mov qword [0x14055b560], rax
jmp 0x140375153
mov rax, qword [0x14055b570]
movabs rcx, 0x7ffffffffffffffe
xor rcx, rax
and rcx, rax
xor rax, 1
lea rax, [rax + rcx*2]
mov qword [0x14055b570], rax
mov rax, qword [0x14055b540]
movabs rcx, 0xe1ed5c9efae5cb3d
xor rcx, rax
movabs rdx, 0x61ed5c9efae5cb3d
and rdx, rax
lea rax, [rcx + rdx*2]
movabs rcx, 0x1e12a361051a34c4
add rcx, rax
mov qword [0x14055b540], rcx
inc qword [0x14055b548]
xor esi, esi
mov r9, qword [rbp + 0xc40]
jmp 0x140374e44