Function at 0x140068979
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, 0x138
movaps xmmword [rsp + 0x120], xmm12
movdqa xmmword [rsp + 0x110], xmm11
movaps xmmword [rsp + 0x100], xmm10
movdqa xmmword [rsp + 0xf0], xmm9
movdqa xmmword [rsp + 0xe0], xmm8
movdqa xmmword [rsp + 0xd0], xmm7
movaps xmmword [rsp + 0xc0], xmm6
mov qword [rsp + 0x70], r9
mov r12, r8
mov r14, rdx
mov rsi, qword [rsp + 0x1a0]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rcx + 0x10]
mov dword [rsp + 0x20], 0
xor edi, edi
mov qword [rsp + 0x60], rcx
mov edx, 0x11
xor r8d, r8d
xor r9d, r9d
call fcn.14004e997
mov dword [rsp + 0x80], eax
mov r13, qword [r12 + 0x20]
mov rbx, qword [r14 + 0x20]
mov qword [rsp + 0x88], r14
movsxd rax, dword [r14 + 0x14]
mov rcx, rax
shl rcx, 6
add rcx, rbx
mov qword [rsp + 0x58], rcx
mov rbp, qword [rsi + 0x48]
test rax, rax
mov qword [rsp + 0x68], rbp
jle 0x140068bc4
xor r14d, r14d
xor eax, eax
mov qword [rsp + 0x48], rax
xor r15d, r15d
xor eax, eax
mov qword [rsp + 0x50], rax
mov rsi, qword [rsp + 0x70]
cmp qword [rbp], 0
jne 0x140068af9
test byte [rbx + 0x12], 2
jne 0x140068af9
mov rdi, qword [rbx]
test byte [rdi + 4], 1
jne 0x140068af9
mov eax, dword [r12 + 0x44]
mov byte [rsp + 0xb4], 3
lea rcx, [0x14004c488]
mov qword [rsp + 0x98], rcx
lea rcx, [0x14004c55e]
mov qword [rsp + 0xa0], rcx
mov dword [rsp + 0xb8], eax
lea rcx, [rsp + 0x90]
mov rdx, rdi
call fcn.14004c568
cmp byte [rsp + 0xb4], 0
je 0x140068af9
mov rbp, qword [rsp + 0x40]
mov rcx, qword [rbp]
mov rdx, rdi
xor r8d, r8d
xor r9d, r9d
call fcn.14004cae7
mov rcx, rbp
mov rbp, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x50]
mov r8, rax
call fcn.14004692c
mov qword [rsp + 0x50], rax
mov rcx, rbx
mov rdx, r12
mov r8, rsi
call fcn.14006c1f1
test eax, eax
je 0x140068b63
movsxd rcx, dword [rbx + 0x28]
mov ebp, 1
shl rbp, cl
cmp rcx, 0x40
movabs rax, 0x8000000000000000
cmovge rbp, rax
test r15b, r15b
jne 0x140068b4f
mov r8, qword [r13]
mov rax, qword [r13 + 8]
shl rcx, 5
mov r9, qword [rax + rcx]
mov ecx, 0x11c
lea rdx, [0x1402b2680]
call fcn.14001f1b1
mov r15b, 1
test qword [rsp + 0x48], rbp
je 0x140068b68
mov edi, r14d
mov rbp, qword [rsp + 0x68]
jmp 0x140068bb0
mov edi, r14d
jmp 0x140068bb0
mov rsi, r12
mov r12, r13
lea edi, [r14 + 1]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
mov r13, qword [rsp + 0x68]
mov rdx, r13
mov r8d, edi
call fcn.14006c240
test eax, eax
jne 0x140069169
mov rax, qword [r13 + 0x38]
movsxd rcx, r14d
mov qword [rax + rcx*8], rbx
or qword [rsp + 0x48], rbp
mov rbp, r13
mov r13, r12
mov r12, rsi
mov rsi, qword [rsp + 0x70]
add rbx, 0x40
mov r14d, edi
cmp rbx, qword [rsp + 0x58]
jb 0x140068a5e
jmp 0x140068bd7
xor eax, eax
mov qword [rsp + 0x50], rax
xor eax, eax
mov qword [rsp + 0x48], rax
mov rsi, qword [rsp + 0x70]
mov word [rbp + 0x2c], di
mov word [rbp + 0x18], di
mov dword [rbp + 0x28], 0x4241
mov rax, qword [r12 + 0x58]
mov r8, qword [rsp + 0x48]
not r8
movabs rcx, 0x8000000000000000
or r8, rcx
and r8, rax
movsx r9d, word [r13 + 0x46]
cmp r9w, 0x3f
mov r15d, 0x3f
cmovl r15d, r9d
test r9d, r9d
mov qword [rsp + 0x48], r8
jle 0x140068d85
cmp r15d, 2
mov edx, 1
cmovge edx, r15d
lea rcx, [rdx - 1]
add edx, 3
and edx, 0xfffc
movq xmm1, rcx
movd xmm0, edi
movq xmm2, r8
pshufd xmm3, xmm2, 0x44
and rcx, 0xfffffffffffffffc
movdqa xmm4, xmmword [reloc.OLEAUT32.dll_SysReAllocString]
movdqa xmm5, xmmword [0x14022bfc0]
movdqa xmm6, xmmword [0x14022c0d0]
pxor xmm7, xmm7
pcmpeqd xmm8, xmm8
movdqa xmm9, xmmword [reloc.OLEAUT32.dll_SysReAllocStringLen]
movdqa xmm2, xmm0
movdqa xmm10, xmm6
psllq xmm10, xmm5
pshufd xmm11, xmm5, 0xee
movdqa xmm0, xmm6
psllq xmm0, xmm11
movsd xmm0, xmm10
movdqa xmm10, xmm6
psllq xmm10, xmm4
pshufd xmm11, xmm4, 0xee
movdqa xmm12, xmm6
psllq xmm12, xmm11
movsd xmm12, xmm10
andpd xmm12, xmm3
andpd xmm0, xmm3
pcmpeqd xmm0, xmm7
pcmpeqd xmm12, xmm7
movdqa xmm10, xmm0
shufps xmm10, xmm12, 0xdd
shufps xmm0, xmm12, 0x88
andps xmm0, xmm10
paddd xmm0, xmm2
psubd xmm0, xmm8
paddq xmm5, xmm9
paddq xmm4, xmm9
add rdx, 0xfffffffffffffffc
jne 0x140068c80
movq xmm3, rcx
pshufd xmm3, xmm3, 0x44
movdqa xmm4, xmmword [0x14022bfc0]
por xmm4, xmm3
por xmm3, xmmword [0x14022bfb0]
movdqa xmm5, xmmword [0x14022bfd0]
pxor xmm3, xmm5
pxor xmm1, xmm5
pshufd xmm6, xmm1, 0x44
pxor xmm4, xmm5
movdqa xmm5, xmm4
shufps xmm4, xmm3, 0xdd
pcmpgtd xmm3, xmm6
pcmpgtd xmm5, xmm6
movdqa xmm6, xmm5
shufps xmm6, xmm3, 0xdd
shufps xmm5, xmm3, 0x88
pshufd xmm1, xmm1, 0x55
pcmpeqd xmm1, xmm4
pand xmm1, xmm5
por xmm1, xmm6
pand xmm2, xmm1
pandn xmm1, xmm0
por xmm1, xmm2
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd edi, xmm1
mov r14, qword [rsp + 0x40]
mov qword [rsp + 0x70], r9
lea ecx, [r9 - 0x3e]
test rax, rax
mov edx, 1
cmovs edx, ecx
add edx, edi
mov rcx, qword [r14]
xor edi, edi
lea r9, [rsp + 0x90]
mov dword [rsp + 0x84], edx
xor r8d, r8d
call fcn.14006c2c0
test rax, rax
je 0x14006916e
mov rbx, rax
mov dword [rsp + 0x7c], r15d
mov qword [rbp + 0x20], rax
lea rax, [0x1402b26a0]
mov qword [rbx], rax
mov qword [rbx + 0x18], r13
mov rax, qword [rsp + 0x88]
mov r14, qword [rax + 0x20]
cmp r14, qword [rsp + 0x58]
jae 0x140068e7b
xor edi, edi
xor r15d, r15d
mov rcx, r14
mov rdx, r12
mov r8, rsi
call fcn.14006c1f1
test eax, eax
je 0x140068e70
mov ecx, dword [r14 + 0x28]
mov ebp, 1
shl rbp, cl
cmp ecx, 0x40
movabs rax, 0x8000000000000000
cmovge rbp, rax
test rbp, r15
jne 0x140068e6b
mov rax, qword [r14]
mov rdx, qword [rbx + 8]
movsxd rdi, edi
mov word [rdx + rdi*2], cx
mov rdx, qword [rax + 0x10]
mov r8, qword [rax + 0x18]
mov rcx, qword [rsp + 0x40]
call fcn.14005df3b
lea rcx, [0x1402a7ac0]
test rax, rax
je 0x140068e5e
mov rcx, qword [rax]
or r15, rbp
mov rax, qword [rbx + 0x40]
mov qword [rax + rdi*8], rcx
inc edi
mov rbp, qword [rsp + 0x68]
add r14, 0x40
cmp r14, qword [rsp + 0x58]
jb 0x140068dfb
cmp word [rsp + 0x70], 0
jle 0x140068ed3
mov ecx, dword [rsp + 0x7c]
cmp ecx, 2
mov eax, 1
cmovge eax, ecx
xor ecx, ecx
lea rdx, [0x1402a7ac0]
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x1a0]
mov r9, qword [rsp + 0x48]
bt r9, rcx
jae 0x140068ec9
mov r8, qword [rbx + 8]
movsxd rdi, edi
mov word [r8 + rdi*2], cx
mov r8, qword [rbx + 0x40]
mov qword [r8 + rdi*8], rdx
inc edi
inc rcx
cmp rax, rcx
jne 0x140068ead
jmp 0x140068ee0
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x1a0]
cmp qword [r12 + 0x58], 0
jns 0x140068f1d
cmp word [r13 + 0x46], 0x40
jl 0x140068f1d
movsxd rdi, edi
mov eax, 0x3f
lea rcx, [0x1402a7ac0]
mov rdx, qword [rbx + 8]
mov word [rdx + rdi*2], ax
mov rdx, qword [rbx + 0x40]
mov qword [rdx + rdi*8], rcx
inc rdi
inc eax
movsx edx, word [r13 + 0x46]
cmp eax, edx
jl 0x140068eff
mov rax, qword [rbx + 8]
movsxd rcx, edi
mov word [rax + rcx*2], 0xffff
mov rax, qword [rbx + 0x40]
lea rdx, [0x1402a7ac0]
mov qword [rax + rcx*8], rdx
mov r8d, dword [r15 + 0x34]
lea eax, [r8 + 1]
mov dword [r15 + 0x34], eax
mov dword [r14 + 8], r8d
mov dword [rsp + 0x20], 0
mov r12, qword [rsp + 0x60]
mov rcx, r12
mov edx, 0x6f
mov r9d, dword [rsp + 0x84]
call fcn.14004e997
mov rcx, r15
mov rdx, rbx
call fcn.1400578a1
mov rax, qword [rsp + 0x88]
mov rax, qword [rax]
mov rsi, qword [rax + 8]
movzx eax, byte [r14 + 0x2c]
imul r13, rax, 0x70
test byte [rsi + r13 + 0x48], 0x10
jne 0x140068fb4
mov r8d, dword [r14 + 4]
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x48], 0
mov rcx, r12
mov edx, 0x24
jmp 0x140069009
mov ebp, dword [rsi + r13 + 0x3c]
xor r14d, r14d
mov dword [rsp + 0x20], r14d
mov rcx, r12
mov edx, 0x46
xor r8d, r8d
xor r9d, r9d
call fcn.14004e997
mov dword [rsp + 0x48], eax
mov eax, dword [rsi + r13 + 0x38]
mov dword [rsp + 0x20], eax
mov rcx, r12
mov edx, 0xd
mov r8d, ebp
xor r9d, r9d
call fcn.14004e997
mov dword [rsp + 0x20], r14d
mov rcx, r12
mov edx, 0xe
mov r8d, ebp
mov rbp, qword [rsp + 0x68]
xor r9d, r9d
call fcn.14004e997
mov qword [rsp + 0x58], rax
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x140069042
mov r14d, dword [r15 + 0x44]
dec r14d
mov dword [r15 + 0x44], r14d
mov rcx, r15
mov r8d, r14d
mov r9d, 0x10
call fcn.14005c7a5
or byte [rbp + 0x2a], 2
jmp 0x140069045
xor r14d, r14d
mov al, byte [r15 + 0x1f]
test al, al
je 0x140069060
dec al
mov byte [r15 + 0x1f], al
movzx eax, al
mov ebp, dword [r15 + rax*4 + 0xbc]
jmp 0x14006906a
mov ebp, dword [r15 + 0x38]
inc ebp
mov dword [r15 + 0x38], ebp
mov rcx, r15
mov r12, qword [rsp + 0x1a0]
mov r8d, dword [r12 + 4]
xor r15d, r15d
mov dword [rsp + 0x38], r15d
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], r15d
mov rdx, rbx
mov r9d, ebp
call fcn.140059548
mov ebx, eax
mov r8d, dword [r12 + 8]
mov dword [rsp + 0x20], r15d
mov r15, qword [rsp + 0x60]
mov rcx, r15
mov edx, 0x84
mov r9d, ebp
call fcn.14004e997
mov eax, dword [r15 + 0x90]
test eax, eax
jle 0x1400690dc
mov rcx, qword [r15 + 0x88]
dec eax
lea rax, [rax + rax*2]
mov word [rcx + rax*8 + 2], 0x10
lea r15, [rsi + r13]
add r15, 0x48
cmp qword [rsp + 0x50], 0
je 0x1400690f9
mov rcx, qword [rsp + 0x60]
mov edx, r14d
call fcn.140057934
test byte [r15], 0x10
jne 0x140069133
mov rsi, qword [rsp + 0x58]
lea r9d, [rsi + 1]
mov rax, qword [rsp + 0x1a0]
mov r8d, dword [rax + 4]
mov dword [rsp + 0x20], 0
mov rdi, qword [rsp + 0x60]
mov rcx, rdi
mov edx, 5
call fcn.14004e997
jmp 0x1400691cd
mov edx, dword [rsp + 0x48]
test edx, edx
mov rcx, qword [rsp + 0x1a0]
jns 0x140069150
mov rax, qword [rsp + 0x60]
mov edx, dword [rax + 0x90]
dec edx
add ebx, edi
mov rdi, qword [rsp + 0x60]
mov rax, qword [rdi]
cmp byte [rax + 0x61], 0
je 0x140069178
lea rax, [0x1402c6528]
jmp 0x14006918a
mov r14, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
jmp 0x140069287
movsxd rax, edx
lea rax, [rax + rax*2]
shl rax, 3
add rax, qword [rdi + 0x88]
mov dword [rax + 8], ebx
mov r8d, dword [rcx + 4]
mov eax, dword [rcx + 8]
mov r9d, dword [rsi + r13 + 0x40]
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x58]
mov edx, esi
call fcn.140066110
mov dword [rsp + 0x20], 0
mov rcx, rdi
mov edx, 0xb
xor r8d, r8d
mov r9d, esi
call fcn.14004e997
and byte [r15], 0xef
mov eax, dword [rdi + 0x90]
test eax, eax
mov rdx, qword [rsp + 0x50]
jle 0x1400691f6
mov rcx, qword [rdi + 0x88]
dec eax
lea rax, [rax + rax*2]
mov word [rcx + rax*8 + 2], 3
mov eax, dword [rdi + 0x90]
mov r14, qword [rsp + 0x40]
mov rcx, qword [rdi]
cmp byte [rcx + 0x61], 0
je 0x14006920d
lea rcx, [0x1402c6528]
jmp 0x140069227
lea ecx, [rax - 1]
test esi, esi
cmovns ecx, esi
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [rdi + 0x88]
mov dword [rcx + 8], eax
test ebp, ebp
je 0x140069248
movzx eax, byte [r14 + 0x1f]
cmp rax, 7
ja 0x140069248
lea ecx, [rax + 1]
mov byte [r14 + 0x1f], cl
mov dword [r14 + rax*4 + 0xbc], ebp
mov eax, dword [rdi + 0x90]
mov rcx, qword [rdi]
cmp byte [rcx + 0x61], 0
je 0x140069260
lea rcx, [0x1402c6528]
jmp 0x140069284
lea ecx, [rax - 1]
mov r8d, dword [rsp + 0x80]
test r8d, r8d
cmovns ecx, r8d
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [rdi + 0x88]
mov dword [rcx + 8], eax
test rdx, rdx
je 0x140069294
mov rcx, qword [r14]
call fcn.1400204fd
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm12, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret