Function at 0x140004766
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x318
movdqa xmmword [rsp + 0x300], xmm8
movdqa xmmword [rsp + 0x2f0], xmm7
movdqa xmmword [rsp + 0x2e0], xmm6
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], rdx
mov rsi, rcx
movsxd rax, dword [rcx + 0x3c]
add rcx, rax
xor edx, edx
cmp word [rax + rsi + 0x18], 0x10b
setne dl
shl edx, 4
movsxd rax, dword [rdx + rcx + 0x78]
mov r12d, dword [rax + rsi + 0x18]
movsxd rcx, dword [rax + rsi + 0x1c]
mov qword [rsp + 0x58], rcx
movsxd r14, dword [rax + rsi + 0x20]
movsxd rax, dword [rax + rsi + 0x24]
mov qword [rsp + 0xb0], rax
add r14, rsi
xor eax, eax
test r12d, r12d
cmovle r12d, eax
lea rbx, [rsp + 0x170]
xor edi, edi
cmp rdi, r12
je 0x1400048bb
movsxd r15, dword [r14 + rdi*4]
add r15, rsi
mov edx, 1
mov rcx, rbx
xor r8d, r8d
call fcn.140001f42
movzx edx, byte [r15]
test edx, edx
je 0x140004829
mov rcx, rbx
call fcn.140005457
inc r15
jmp 0x140004814
mov r13, qword [rsp + 0x178]
mov r8, qword [rsp + 0x180]
lea rcx, [rsp + 0x60]
mov rdx, r13
call fcn.140001ff5
lea rcx, [rsp + 0xe0]
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
call fcn.140001ff5
mov rbp, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov r15, qword [rsp + 0xe8]
mov r9, qword [rsp + 0xf0]
mov rcx, rbp
mov r8, r15
call fcn.140003d0f
test al, al
jne 0x1400048c2
inc rdi
mov rcx, qword [rsp + 0xe0]
mov rdx, r15
call fcn.140001e7d
mov rcx, qword [rsp + 0x60]
mov rdx, rbp
call fcn.140001e7d
mov rcx, qword [rsp + 0x170]
mov rdx, r13
call fcn.140001e7d
jmp 0x1400047f4
xor ebx, ebx
jmp 0x1400053cd
mov rcx, qword [rsp + 0xe0]
mov rdx, r15
call fcn.140001e7d
mov rcx, qword [rsp + 0x60]
mov rdx, rbp
call fcn.140001e7d
mov rax, qword [rsp + 0xb0]
add rax, rsi
movsx rax, word [rax + rdi*2]
mov rcx, qword [rsp + 0x58]
add rcx, rsi
movsxd rbx, dword [rcx + rax*4]
add rbx, rsi
xor edi, edi
lea rsi, [rsp + 0xc8]
mov edx, 1
mov rcx, rsi
xor r8d, r8d
call fcn.140001f42
movzx edx, byte [rbx + rdi]
test edx, edx
je 0x140004935
mov rcx, rsi
call fcn.140005457
inc rdi
cmp edi, 0x64
jne 0x140004918
jmp 0x1400053a3
mov rdx, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xd8]
mov qword [rsp + 0x20], 1
lea r9, [0x14000dd32]
lea rdi, [rsp + 0x260]
mov rcx, rdi
mov r8, rsi
call fcn.140003122
and qword [rdi + 0x68], 0
mov qword [rdi + 0x70], rsi
mov word [rdi + 0x78], 1
mov rcx, rdi
call fcn.140003558
test rax, rax
je 0x140005091
mov rsi, rax
mov rdi, rdx
mov qword [rsp + 0xa8], rbx
mov ecx, 4
mov edx, 8
mov r8d, 0x10
call fcn.140003740
mov r15, rdx
mov qword [rdx], rsi
mov qword [rdx + 8], rdi
lea rbx, [rsp + 0x60]
mov qword [rbx], rax
mov qword [rbx + 8], rdx
mov qword [rbx + 0x10], 1
lea r14, [rsp + 0xe0]
lea rsi, [rsp + 0x260]
mov ecx, 0x10
mov rdi, r14
rep movsq qword [rdi], qword [rsi]
mov esi, 1
mov r13d, 0x18
mov rcx, r14
call fcn.140003558
test rax, rax
je 0x140004a3c
mov rdi, rax
mov r12, rdx
cmp rsi, qword [rsp + 0x60]
jne 0x140004a25
mov r8d, 1
mov r9d, 0x10
mov rcx, rbx
mov rdx, rsi
call fcn.1400083a1
mov r15, qword [rsp + 0x68]
mov qword [r15 + r13 - 8], rdi
mov qword [r15 + r13], r12
inc rsi
mov qword [rsp + 0x70], rsi
add r13, 0x10
jmp 0x1400049ef
mov rcx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
cmp rsi, 2
jne 0x14000509d
mov qword [rsp + 0xb8], rcx
mov rdx, qword [rdi]
mov r8, qword [rdi + 8]
lea rcx, [rsp + 0x40]
call fcn.140001f42
mov rdx, qword [rdi + 0x10]
mov qword [rsp + 0xc0], rdi
mov r8, qword [rdi + 0x18]
lea rcx, [rsp + 0x188]
call fcn.140001f42
call qword [sym.imp.kernel32.dll_GetCurrentProcess]
mov rsi, rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x220], xmm0
movaps xmmword [rsp + 0x210], xmm0
movaps xmmword [rsp + 0x200], xmm0
lea rdx, [0x14000d798]
lea rdi, [rsp + 0xe0]
mov r8d, 9
mov rcx, rdi
call fcn.14000411c
mov rbx, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
mov rcx, rbx
call fcn.140004265
mov r14, rax
mov rcx, qword [rdi]
mov rdx, rbx
call fcn.140001e7d
lea rdx, [0x14000d7fa]
lea rbx, [rsp + 0xe0]
mov r8d, 0x19
mov rcx, rbx
call fcn.14000411c
mov r15, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
mov rcx, r14
mov rdx, r15
call fcn.140004766
mov rdi, rax
mov rcx, qword [rbx]
mov rdx, r15
call fcn.140001e7d
test rdi, rdi
je 0x140004b43
and qword [rsp + 0x20], 0
lea r8, [rsp + 0x200]
mov rcx, rsi
xor edx, edx
mov r9d, 0x30
call rdi
lea rdx, [0x14000d7a1]
lea rdi, [rsp + 0xe0]
mov r8d, 0xc
mov rcx, rdi
call fcn.14000411c
mov rbx, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
mov rcx, rbx
call fcn.140004265
mov r14, rax
mov rcx, qword [rdi]
mov rdx, rbx
call fcn.140001e7d
lea rdx, [0x14000d7b9]
lea rbx, [rsp + 0xe0]
mov r8d, 0xb
mov rcx, rbx
call fcn.14000411c
mov r15, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
mov rcx, r14
mov rdx, r15
call fcn.140004766
mov rdi, rax
mov rcx, qword [rbx]
mov rdx, r15
call fcn.140001e7d
test rdi, rdi
je 0x140004bc6
mov rcx, rsi
call rdi
xor ebp, ebp
xor ecx, ecx
call fcn.1400056ee
mov rcx, qword [rax]
mov rdx, qword [rax + 8]
lea r8, [rcx + 1]
mov qword [rax], r8
movups xmm0, xmmword [0x14000d730]
lea rax, [rsp + 0x80]
movaps xmmword [rax - 0x10], xmm0
movdqu xmm0, xmmword [0x14000d720]
movdqa xmmword [rax - 0x20], xmm0
mov qword [rax], rcx
mov qword [rax + 8], rdx
mov rax, qword [rsp + 0x208]
mov rax, qword [rax + 0x68]
mov ecx, dword [rax + 0xc]
movsxd rdx, dword [rax + 0x10]
mov qword [rsp + 0x30], rax
add rdx, rax
mov qword [rsp + 0x168], rdx
test ecx, ecx
cmovle ecx, ebp
mov qword [rsp + 0xb0], rcx
lea rbx, [rsp + 0x1a0]
lea r13, [rsp + 0xe0]
pcmpeqd xmm6, xmm6
cmp rbp, qword [rsp + 0xb0]
je 0x1400050aa
mov rax, rbp
movabs rcx, 0x1800000000
imul rax, rcx
sar rax, 0x20
mov rcx, qword [rsp + 0x168]
movsxd rdi, dword [rcx + rax + 4]
movsxd r14, dword [rcx + rax + 0x10]
mov esi, dword [rcx + rax + 8]
mov r12d, dword [rcx + rax + 0x14]
add rdi, qword [rsp + 0x30]
xor r15d, r15d
mov edx, 1
mov rcx, rbx
xor r8d, r8d
call fcn.140001f42
mov eax, esi
cdq
mov ecx, 2
idiv ecx
mov esi, eax
cmp r15d, esi
jge 0x140004cc6
movzx edx, byte [rdi]
test edx, edx
je 0x140004cc1
mov rcx, rbx
call fcn.140005457
inc r15d
inc rdi
jmp 0x140004caa
mov r15, qword [rsp + 0x1a8]
mov rsi, qword [rsp + 0x1b0]
lea r8, [rsi - 2]
mov rcx, r15
mov rdx, rsi
call fcn.140003949
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1e8], rdx
lea rax, [0x14000d778]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], 2
and qword [rsp + 0x100], 0
lea rax, [rsp + 0x1e0]
mov qword [rsp + 0x1d0], rax
lea rax, [0x140003110]
mov qword [rsp + 0x1d8], rax
lea rax, [rsp + 0x1d0]
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0xf8], 1
lea rcx, [rsp + 0x90]
mov rdx, r13
call fcn.140003965
cmp r12d, 1
jne 0x140004d71
add r14, qword [rsp + 0x30]
jmp 0x140004ddc
mov qword [rsp + 0x38], rbp
add r14, qword [rsp + 0x30]
mov rbx, r14
xor ebp, ebp
sub r12, 1
jb 0x140004dd0
mov edx, 1
mov rcx, r13
xor r8d, r8d
call fcn.140001f42
mov rdi, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xf0]
mov rcx, rdi
mov r8, r15
mov r9, rsi
call fcn.140003d0f
test al, al
cmove rbp, rbx
mov rcx, qword [rsp + 0xe0]
mov rdx, rdi
call fcn.140001e7d
add rbx, 0x14
jmp 0x140004d80
test rbp, rbp
cmovne r14, rbp
mov rbp, qword [rsp + 0x38]
movsxd rdi, dword [r14 + 0xc]
mov esi, dword [r14 + 0x10]
mov edx, 1
lea r14, [rsp + 0x1b8]
mov rcx, r14
xor r8d, r8d
call fcn.140001f42
test esi, esi
je 0x140004e2d
add rdi, qword [rsp + 0x30]
mov eax, esi
cdq
mov ecx, 2
idiv ecx
mov esi, eax
xor ebx, ebx
cmp ebx, esi
jge 0x140004e2d
movzx edx, byte [rdi]
test edx, edx
je 0x140004e28
mov rcx, r14
call fcn.140005457
inc ebx
inc rdi
jmp 0x140004e13
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0xa0]
call fcn.140003a26
mov rsi, rax
cmp qword [rsp + 0x70], 0
je 0x140004fbd
inc rbp
mov qword [rsp + 0x38], rbp
mov r12, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
mov rdi, rbx
and rdi, rsi
shr rsi, 0x39
movd xmm0, esi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm7, xmm0, 0
xor ebp, ebp
mov qword [rsp + 0x58], 0
movdqu xmm8, xmmword [r12 + rdi]
movdqa xmm0, xmm7
pcmpeqb xmm0, xmm8
pmovmskb eax, xmm0
mov word [rsp + 0xe0], ax
mov rcx, r13
call fcn.140003e5b
test rax, rax
je 0x140004eec
add rdx, rdi
and rdx, rbx
neg rdx
imul r14, rdx, 0x30
mov rdx, qword [r12 + r14 - 0x28]
mov r8, qword [r12 + r14 - 0x20]
lea rcx, [rsp + 0x90]
call fcn.140003f98
test al, al
je 0x140004eb5
jmp 0x140004f42
test byte [rsp + 0x58], 1
jne 0x140004f1d
movdqa xmmword [rsp + 0x1f0], xmm8
mov rcx, rbx
lea rdx, [rsp + 0x1f0]
mov r8, rdi
call fcn.140003fae
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x160], rdx
pcmpeqb xmm8, xmm6
pmovmskb eax, xmm8
test eax, eax
jne 0x140004fd4
add rdi, rbp
add rdi, 0x10
add rbp, 0x10
and rdi, rbx
jmp 0x140004e9a
add r12, r14
mov rsi, qword [r12 - 0x18]
mov rdi, qword [r12 - 0x10]
mov rax, qword [rsp + 0x1c8]
mov qword [r12 - 8], rax
movdqu xmm0, xmmword [rsp + 0x1b8]
movdqu xmmword [r12 - 0x18], xmm0
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
call fcn.140001e7d
movabs rax, 0x8000000000000000
cmp rsi, rax
mov rbp, qword [rsp + 0x38]
je 0x140004fa0
mov rcx, rsi
mov rdx, rdi
call fcn.140001e7d
mov rcx, qword [rsp + 0x1a0]
mov rdx, r15
call fcn.140001e7d
lea rbx, [rsp + 0x1a0]
jmp 0x140004c48
lea rcx, [rsp + 0x60]
lea rdx, [rsp + 0x80]
call fcn.1400090cf
jmp 0x140004e61
mov r8, qword [rsp + 0x160]
mov al, byte [r12 + r8]
test al, al
js 0x140004ff6
movdqa xmm0, xmmword [r12]
pmovmskb eax, xmm0
bsf r8d, eax
mov al, byte [r12 + r8]
mov rcx, qword [rsp + 0xa0]
mov qword [rsp + 0xf0], rcx
movups xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0xe0], xmm0
mov rcx, qword [rsp + 0x1c8]
lea rdx, [rsp + 0xf8]
mov qword [rdx + 0x10], rcx
movups xmm0, xmmword [rsp + 0x1b8]
and al, 1
movzx eax, al
sub qword [rsp + 0x70], rax
movups xmmword [rdx], xmm0
lea rax, [r8 - 0x10]
and rbx, rax
mov byte [r12 + r8], sil
mov byte [r12 + rbx + 0x10], sil
inc qword [rsp + 0x78]
neg r8
imul rax, r8, 0x30
movdqa xmm0, xmmword [rsp + 0xe0]
movaps xmm1, xmmword [rsp + 0xf0]
movaps xmm2, xmmword [rsp + 0x100]
movups xmmword [r12 + rax - 0x10], xmm2
movups xmmword [r12 + rax - 0x20], xmm1
movdqu xmmword [r12 + rax - 0x30], xmm0
mov rbp, qword [rsp + 0x38]
jmp 0x140004fa0
mov edi, 8
xor ecx, ecx
jmp 0x14000539b
mov rbx, qword [rsp + 0xa8]
jmp 0x14000539b
lea rax, [rsp + 0x60]
movaps xmm0, xmmword [rax]
movaps xmm1, xmmword [rax + 0x10]
movaps xmm2, xmmword [rax + 0x20]
lea rax, [rsp + 0x230]
movaps xmmword [rax + 0x20], xmm2
movaps xmmword [rax + 0x10], xmm1
movaps xmmword [rax], xmm0
lea r13, [rsp + 0xe0]
mov rcx, r13
call fcn.140008245
mov rcx, qword [r13 + 8]
mov r15, qword [rcx + 8]
and qword [rcx + 8], 0
test r15, r15
mov eax, 1
cmove r15, rax
lea r12, [0x14000dd98]
cmovne r12, qword [rcx + 0x10]
call fcn.1400082e5
lea rdx, [0x14000d740]
mov ecx, 1
call fcn.1400081d7
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
lea rdi, [rbp - 2]
mov rcx, rbx
mov rdx, rbp
mov r8, rdi
call fcn.140003949
lea rsi, [rsp + 0x200]
mov qword [rsi], rax
mov qword [rsi + 8], rdx
lea rax, [0x14000d778]
mov qword [r13], rax
mov eax, 2
mov qword [r13 + 8], rax
and qword [r13 + 0x20], 0
mov qword [rsp + 0x90], rsi
lea r14, [0x140003110]
mov qword [rsp + 0x98], r14
lea rax, [rsp + 0x90]
mov qword [r13 + 0x10], rax
mov eax, 1
mov qword [r13 + 0x18], rax
lea r13, [rsp + 0xe0]
lea r14, [rsp + 0x60]
mov rcx, r14
mov rdx, r13
call fcn.140003965
mov rcx, qword [r14]
mov rdx, qword [r14 + 8]
call fcn.140001e7d
mov rcx, r15
mov r15, rbx
mov rdx, r12
call fcn.1400081d7
mov rcx, rbx
mov rdx, rbp
mov r8, rdi
call fcn.140003949
mov qword [rsi], rax
mov qword [rsi + 8], rdx
lea rax, [0x14000d778]
mov qword [r13], rax
mov eax, 2
mov qword [r13 + 8], rax
and qword [r13 + 0x20], 0
mov qword [rsp + 0x90], rsi
lea rax, [0x140003110]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x90]
mov qword [r13 + 0x10], rax
mov eax, 1
mov qword [r13 + 0x18], rax
lea rdi, [rsp + 0x60]
lea rdx, [rsp + 0xe0]
mov rcx, rdi
call fcn.140003965
lea rcx, [rsp + 0x230]
mov rdx, rdi
call fcn.140003e84
test rax, rax
je 0x140005281
lea rcx, [rsp + 0x230]
lea rdx, [rsp + 0x60]
call fcn.140003e84
test rax, rax
mov rbx, qword [rsp + 0xa8]
je 0x1400052cb
mov rdx, qword [rax + 0x20]
mov r8, qword [rax + 0x28]
lea rcx, [rsp + 0xe0]
call fcn.140001f42
mov rcx, qword [rsp + 0x40]
mov rdx, r15
call fcn.140001e7d
jmp 0x1400052e5
mov rax, qword [rsp + 0x50]
lea rsi, [rsp + 0xe0]
mov qword [rsi + 0x10], rax
movaps xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsi], xmm0
lea rdx, str..dll
lea r8, [0x14000d774]
mov rcx, rsi
call fcn.140001bc5
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x50], rax
movaps xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x40], xmm0
mov rbx, qword [rsp + 0xa8]
jmp 0x1400052ff
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0xf0], rax
movups xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0xe0], xmm0
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x50], rax
movaps xmm0, xmmword [rsp + 0xe0]
movaps xmmword [rsp + 0x40], xmm0
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rcx, rsi
mov rdx, rdi
call fcn.140004265
test rax, rax
jne 0x14000532d
mov rcx, rsi
mov rdx, rdi
call fcn.1400054c1
test rax, rax
je 0x1400053fd
mov rdi, qword [rsp + 0x190]
mov r8, qword [rsp + 0x198]
mov rcx, rax
mov rdx, rdi
call fcn.140004766
mov rbx, rax
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
call fcn.140001e7d
xor ecx, ecx
call fcn.1400056ac
lea rcx, [rsp + 0x230]
call fcn.140003d40
mov rcx, qword [rsp + 0x188]
mov rdx, rdi
call fcn.140001e7d
mov rcx, qword [rsp + 0x40]
mov rdx, rsi
call fcn.140001e7d
mov rdi, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xb8]
mov rdx, rdi
call fcn.140003d1e
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0xd0]
call fcn.140001e7d
mov rcx, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x178]
call fcn.140001e7d
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x2e0]
movaps xmm7, xmmword [rsp + 0x2f0]
movaps xmm8, xmmword [rsp + 0x300]
add rsp, 0x318
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
call fcn.140001e7d
xor ecx, ecx
call fcn.1400056ac
lea rcx, [rsp + 0x230]
call fcn.140003d40
mov rcx, qword [rsp + 0x188]
mov rdx, qword [rsp + 0x190]
call fcn.140001e7d
mov rcx, qword [rsp + 0x40]
mov rdx, rsi
call fcn.140001e7d
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xc0]
jmp 0x14000539e