Function at 0x1402873eb
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, 0xc08
movaps xmmword [rsp + 0xbf0], xmm6
mov r14, r9
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
lea rbp, [rsp + 0x4c8]
mov rcx, rbp
call fcn.140281a6c
movups xmm0, xmmword [rbp]
movaps xmmword [rsp + 0x160], xmm0
mov rax, qword [rbp + 0x10]
mov qword [rsp + 0x170], rax
mov r15d, dword [rbp + 0x18]
mov r12d, dword [rbp + 0x1c]
mov r13d, dword [rbp + 0x20]
mov eax, dword [rbp + 0x24]
mov dword [rsp + 0x34], eax
mov eax, dword [rbp + 0x2a]
mov dword [rsp + 0x68], eax
movzx eax, word [rbp + 0x2e]
mov word [rsp + 0x6c], ax
mov rcx, rdi
mov rdx, rsi
call fcn.1402818e5
mov rsi, rdx
test rax, rax
je 0x140287480
mov qword [rbx + 8], rsi
mov qword [rbx], 0
jmp 0x140287f17
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x44], r12d
mov dword [rsp + 0x48], r15d
mov qword [rsp + 0x28], rbx
lea rdi, [rsp + 0x4c8]
mov rcx, rdi
call fcn.140066eaa
xorps xmm0, xmm0
lea rax, [rsp + 0x1c0]
mov ecx, 1
mov qword [rax], rcx
mov ecx, 1
mov qword [rax + 8], rsi
xor r12d, r12d
mov qword [rax + 0x18], r12
mov qword [rax + 0x70], r12
mov r15d, 8
mov qword [rax + 0x78], r15
movaps xmmword [rax + 0x80], xmm0
movaps xmmword [rax - 0x10], xmm0
movups xmm0, xmmword [rdi]
movaps xmmword [rax - 0x20], xmm0
mov dword [rax + 0xa0], 0
mov qword [rax + 0x90], rcx
mov qword [rax + 0x98], r12
movaps xmm0, xmmword [rsp + 0x160]
movaps xmmword [rsp + 0x110], xmm0
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x120], rax
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x38], eax
movzx eax, word [rsp + 0x6c]
mov word [rsp + 0x3c], ax
lea r13, [rsp + 0x50]
mov qword [r13], r12
mov qword [r13 + 8], r15
mov qword [r13 + 0x10], r12
mov rsi, qword [r14 + 8]
mov rbp, qword [r14 + 0x10]
mov rcx, rbp
xor edx, edx
call fcn.140056949
mov rdi, r14
mov r14, rax
mov rbx, rdx
mov rcx, rdx
mov rdx, rsi
mov r8, rbp
call fcn.1403abad0
mov qword [rsp + 0x70], rdi
mov sil, byte [rdi + 0x18]
mov rcx, r13
xor edx, edx
call fcn.14013ca35
mov rax, qword [r13 + 8]
mov rdi, qword [r13 + 0x10]
mov rcx, rdi
shl rcx, 5
mov qword [rax + rcx], r14
mov qword [rax + rcx + 8], rbx
mov qword [rax + rcx + 0x10], rbp
mov byte [rax + rcx + 0x18], sil
inc rdi
mov qword [r13 + 0x10], rdi
lea rax, [rsp + 0xa8]
mov qword [rax], r12
mov ecx, 1
mov qword [rax + 8], rcx
mov qword [rax + 0x10], r12
lea rbp, [rsp + 0x4dc]
lea r14, [rsp + 0x4dc]
lea r12, [rsp + 0x270]
add r15, r12
mov qword [rsp + 0x130], r15
mov ebx, dword [rsp + 0x34]
mov eax, ebx
or eax, 0x4000
mov dword [rsp + 0x84], eax
or ebx, 0x8000
movaps xmm6, xmmword [0x1403bca40]
mov dword [rsp + 0x34], ebx
test rdi, rdi
je 0x140287f6d
dec rdi
mov qword [rsp + 0x60], rdi
mov rax, qword [rsp + 0x58]
mov rdx, rdi
shl rdx, 5
mov cl, byte [rax + rdx + 0x18]
cmp cl, 2
je 0x140287f6f
add rax, rdx
mov rdx, qword [rax + 0x10]
mov qword [rsp + 0x740], rdx
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x730], xmm0
mov byte [rsp + 0x748], cl
mov ecx, dword [rax + 0x19]
mov eax, dword [rax + 0x1c]
lea rdx, [rsp + 0x740]
mov dword [rdx + 0xc], eax
mov dword [rdx + 9], ecx
lea rcx, [rsp + 0x4c8]
lea rdx, [rsp + 0x730]
call fcn.140200ba4
mov esi, dword [rsp + 0x4d8]
mov rdi, qword [rsp + 0x4c8]
cmp esi, 2
je 0x140287fe1
mov rbx, qword [rsp + 0x4d0]
mov r8d, 0x254
lea r13, [rsp + 0x99c]
mov rcx, r13
mov rdx, rbp
call fcn.1403abad0
mov qword [rsp + 0x4c8], rdi
mov qword [rsp + 0x4d0], rbx
mov dword [rsp + 0x4d8], esi
mov r8d, 0x254
mov rcx, r14
mov rdx, r13
call fcn.1403abad0
mov r14, qword [rsp + 0x70]
lea r13, [rsp + 0x88]
lea rcx, [rsp + 0x730]
lea rdx, [rsp + 0x4c8]
call fcn.140246190
cmp qword [rsp + 0x730], 0
je 0x140287d4b
mov rsi, qword [rsp + 0x738]
mov rdi, qword [rsp + 0x988]
test rdi, rdi
je 0x140287d72
mov r8d, 0x248
mov rcx, qword [rsp + 0x130]
lea rdx, [rsp + 0x740]
call fcn.1403abad0
mov qword [rsp + 0x270], rsi
mov qword [rsp + 0x4c0], rdi
mov rcx, r13
mov rdx, r12
call fcn.1402463e0
mov rax, qword [rsp + 0x4c0]
lock dec qword [rax]
jne 0x140287775
mov rcx, qword [rsp + 0x4c0]
call fcn.140278f2d
mov rbx, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x98]
mov rcx, rbp
xor edx, edx
call fcn.140056949
mov rsi, rax
mov rdi, rdx
mov rcx, rdx
mov rdx, rbx
mov r8, rbp
call fcn.1403abad0
mov rcx, r12
mov rdx, rdi
mov r8, rbp
xor r9d, r9d
call fcn.140248460
mov rbp, qword [rsp + 0x270]
mov rbx, qword [rsp + 0x278]
cmp rbp, 2
je 0x1402877dd
mov r15d, dword [rsp + 0x2b0]
mov eax, dword [rsp + 0x2b4]
mov dword [rsp + 0x4c], eax
test rsi, rsi
je 0x1402877f4
mov rcx, qword [0x14051f200]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.DLL_HeapFree]
cmp ebp, 2
je 0x140287d87
bt r15d, 0xa
setae al
bt dword [rsp + 0x4c], 0x1d
setae cl
or cl, al
mov eax, r15d
and eax, 0x10
cmp cl, 1
jne 0x140287a5f
test eax, eax
jne 0x140287a5f
xor eax, eax
mov dword [r12 + 0x20], eax
mov word [r12 + 0x24], 0
mov qword [rsp + 0x270], 0
mov dword [rsp + 0x278], eax
movups xmmword [rsp + 0x280], xmm6
mov byte [rsp + 0x290], 1
mov rbp, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x98]
mov rcx, rbp
mov rdx, rsi
mov r8, r12
call fcn.1402447f0
mov rdi, rdx
test rax, rax
jne 0x140287d92
mov qword [rsp + 0x78], rdi
mov rcx, r12
lea rdx, [rsp + 0x78]
lea r8, [rsp + 0xa8]
call fcn.1402460d0
cmp qword [rsp + 0x270], 0
jne 0x140287da7
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
mov qword [rsp + 0x20], rsi
lea rcx, [rsp + 0xc0]
mov r9, rbp
call fcn.140284670
mov rbp, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xd0]
lea rcx, [rsp + 0xf8]
mov rdx, rbp
call fcn.1402849ac
cmp dword [rsp + 0x40], 1
mov eax, 0x81a4
cmove eax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0xf0], rcx
movups xmm0, xmmword [rsp + 0xf8]
movaps xmmword [rsp + 0xe0], xmm0
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 0x280], rcx
movaps xmm0, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0x270], xmm0
mov esi, dword [rsp + 0x48]
mov dword [rsp + 0x288], esi
mov ebx, dword [rsp + 0x44]
mov dword [rsp + 0x28c], ebx
mov dword [rsp + 0x290], 1
mov dword [rsp + 0x294], eax
mov word [rsp + 0x298], 0
movzx eax, word [rsp + 0x3c]
mov word [r12 + 0x2e], ax
mov eax, dword [rsp + 0x38]
mov dword [r12 + 0x2a], eax
mov qword [rsp + 0x180], 0
lea rax, [rsp + 0x180]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x138]
lea rdx, [rsp + 0x1a0]
lea r8, [rsp + 0xe0]
mov r9, r12
call fcn.140285bb6
mov rax, qword [rsp + 0x138]
cmp rax, 4
jne 0x140287dc1
mov dword [rsp + 0x20], ebx
mov rcx, r12
lea rdx, [rsp + 0x1c0]
xor r8d, r8d
mov r9d, esi
call fcn.140283bd0
mov rax, qword [rsp + 0x270]
cmp rax, 4
jne 0x140287dcb
mov byte [rsp + 0x260], 1
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xb8]
lea rcx, [rsp + 0x1a0]
call fcn.140285224
test rax, rax
jne 0x140287dee
mov qword [rsp + 0xb8], 0
cmp qword [rsp + 0xc0], 0
je 0x140287a51
mov rcx, qword [0x14051f200]
xor edx, edx
mov r8, rbp
call qword [sym.imp.KERNEL32.DLL_HeapFree]
mov rdi, qword [rsp + 0x78]
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x140287d20
mov ecx, r15d
shr ecx, 0xa
mov edx, dword [rsp + 0x4c]
shr edx, 0x1d
and edx, ecx
test dl, 1
jne 0x140287d20
test eax, eax
je 0x140287d20
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
mov r14, qword [rsp + 0x90]
mov r13, qword [rsp + 0x98]
mov qword [rsp + 0x20], r13
lea rcx, [rsp + 0xc0]
mov r9, r14
call fcn.140284670
mov rsi, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xd0]
lea rcx, [rsp + 0xf8]
mov rdx, rsi
call fcn.1402849ac
cmp dword [rsp + 0x40], 1
mov edi, 0x41ed
cmove edi, dword [rsp + 0x84]
mov rax, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x108]
test rdx, rdx
je 0x140287b5f
mov bl, byte [rcx + rdx - 1]
test bl, bl
js 0x140287b08
movzx ebx, bl
jmp 0x140287b55
movzx ebp, byte [rcx + rdx - 2]
cmp bpl, 0xc0
jge 0x140287b37
mov r9, rsi
movzx esi, byte [rcx + rdx - 3]
cmp sil, 0xc0
jge 0x140287b3c
movzx r8d, byte [rcx + rdx - 4]
and r8d, 7
shl r8d, 6
and esi, 0x3f
or esi, r8d
jmp 0x140287b3f
and ebp, 0x1f
jmp 0x140287b4a
and esi, 0xf
shl esi, 6
and ebp, 0x3f
or ebp, esi
mov rsi, r9
shl ebp, 6
and bl, 0x3f
movzx ebx, bl
or ebx, ebp
cmp ebx, 0x2f
je 0x140287ba4
cmp ebx, 0x5c
je 0x140287ba4
mov qword [rsp + 0x270], rax
mov qword [rsp + 0x278], rcx
mov qword [rsp + 0x280], rdx
mov r8d, 1
mov rcx, r12
lea rdx, [0x1404ef060]
call fcn.14005777d
mov rax, qword [rsp + 0x270]
mov rcx, qword [rsp + 0x278]
mov rdx, qword [rsp + 0x280]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xf0], rdx
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x280], rax
movaps xmm0, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0x270], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x288], eax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x28c], eax
mov dword [rsp + 0x290], 1
mov dword [rsp + 0x294], edi
mov word [rsp + 0x298], 0
movzx eax, word [rsp + 0x3c]
mov word [r12 + 0x2e], ax
mov eax, dword [rsp + 0x38]
mov dword [r12 + 0x2a], eax
mov qword [rsp + 0x180], 0
lea rax, [rsp + 0x180]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x138]
lea rdx, [rsp + 0x1a0]
lea r8, [rsp + 0xe0]
mov r9, r12
call fcn.140285bb6
mov rax, qword [rsp + 0x138]
cmp rax, 4
jne 0x140287f33
mov byte [rsp + 0x260], 0
mov rcx, r13
xor edx, edx
call fcn.140056949
mov rsi, rax
mov rdi, rdx
mov rcx, rdx
mov rdx, r14
mov r8, r13
call fcn.1403abad0
mov bl, byte [rsp + 0xa0]
mov rdx, qword [rsp + 0x60]
cmp rdx, qword [rsp + 0x50]
jne 0x140287cb5
lea rcx, [rsp + 0x50]
call fcn.14013ca35
mov rdx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x70]
mov rax, qword [rsp + 0x58]
mov rcx, rdx
shl rcx, 5
mov qword [rax + rcx], rsi
mov qword [rax + rcx + 8], rdi
mov qword [rax + rcx + 0x10], r13
mov byte [rax + rcx + 0x18], bl
mov ebp, dword [rsp + 0x270]
mov ebx, dword [rsp + 0x273]
mov dword [rax + rcx + 0x19], ebp
mov dword [rax + rcx + 0x1c], ebx
inc rdx
mov qword [rsp + 0x60], rdx
cmp qword [rsp + 0xc0], 0
je 0x140287d18
mov r8, qword [rsp + 0xc8]
mov rcx, qword [0x14051f200]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_HeapFree]
lea r13, [rsp + 0x88]
cmp qword [rsp + 0x88], 0
je 0x1402876e7
mov r8, qword [rsp + 0x90]
mov rcx, qword [0x14051f200]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_HeapFree]
jmp 0x1402876e7
lea rcx, [rsp + 0x4c8]
call fcn.140005f57
mov rdi, qword [rsp + 0x60]
lea rbp, [rsp + 0x4dc]
lea r14, [rsp + 0x4dc]
jmp 0x140287605
mov rax, qword [rsp + 0x28]
mov qword [rax + 8], rsi
mov qword [rax], 0
jmp 0x140287e49
mov rax, qword [rsp + 0x28]
mov qword [rax + 8], rbx
jmp 0x140287d9b
mov rax, qword [rsp + 0x28]
mov qword [rax + 8], rdi
mov qword [rax], 0
jmp 0x140287e27
mov rax, qword [rsp + 0x278]
mov rcx, qword [rsp + 0x28]
mov qword [rcx + 8], rax
mov qword [rcx], 0
jmp 0x140287e1e
movups xmm0, xmmword [rsp + 0x140]
jmp 0x140287dd3
movups xmm0, xmmword [rsp + 0x278]
movaps xmmword [rsp + 0x150], xmm0
mov rcx, qword [rsp + 0x28]
movaps xmm0, xmmword [rsp + 0x150]
movups xmmword [rcx + 8], xmm0
jmp 0x140287df9
mov rcx, qword [rsp + 0x28]
mov qword [rcx + 8], rax
xor eax, eax
mov qword [rcx], rax
cmp qword [rsp + 0xc0], 0
je 0x140287e1e
mov rcx, qword [0x14051f200]
xor edx, edx
mov r8, rbp
call qword [sym.imp.KERNEL32.DLL_HeapFree]
mov rdi, qword [rsp + 0x78]
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
cmp qword [rsp + 0x88], 0
je 0x140287e49
mov r8, qword [rsp + 0x90]
mov rcx, qword [0x14051f200]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_HeapFree]
lea rcx, [rsp + 0x4c8]
call fcn.140005f57
cmp qword [rsp + 0xa8], 0
je 0x140287e78
mov r8, qword [rsp + 0xb0]
mov rcx, qword [0x14051f200]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_HeapFree]
mov rsi, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call fcn.1400ca86d
cmp qword [rsp + 0x50], 0
je 0x140287ea4
mov rcx, qword [0x14051f200]
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.DLL_HeapFree]
lea rsi, [rsp + 0x1a0]
mov rcx, rsi
call fcn.140286fa4
lea rcx, [rsp + 0x1c0]
call fcn.14028550c
mov rcx, qword [rsi + 0x98]
mov rdx, qword [rsi + 0xa0]
call fcn.1402845d0
cmp qword [rsi + 0x90], 0
je 0x140287ef5
mov r8, qword [rsp + 0x238]
mov rcx, qword [0x14051f200]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_HeapFree]
cmp qword [rsp + 0x248], 0
je 0x140287f17
mov r8, qword [rsp + 0x250]
mov rcx, qword [0x14051f200]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_HeapFree]
movaps xmm6, xmmword [rsp + 0xbf0]
add rsp, 0xc08
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movups xmm0, xmmword [rsp + 0x140]
mov rcx, qword [rsp + 0x28]
movups xmmword [rcx + 8], xmm0
mov qword [rcx], rax
cmp qword [rsp + 0xc0], 0
je 0x140287e27
mov rcx, qword [0x14051f200]
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.DLL_HeapFree]
jmp 0x140287e27
xor edi, edi
lea rsi, [rsp + 0x4c8]
lea rdx, [rsp + 0x1a0]
mov rcx, rsi
call fcn.1402865c7
mov rax, qword [rsi]
cmp rax, 4
jne 0x140287ff6
mov rcx, qword [rsp + 0x4d0]
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
mov rax, qword [rsp + 0x28]
mov qword [rax], 4
cmp qword [rsp + 0xa8], 0
je 0x140287fd1
mov r8, qword [rsp + 0xb0]
mov rcx, qword [0x14051f200]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_HeapFree]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x58]
mov rcx, rsi
mov rdx, rdi
jmp 0x140287e85
mov rax, qword [rsp + 0x28]
mov qword [rax + 8], rdi
mov qword [rax], 0
jmp 0x140287e56
movups xmm0, xmmword [rsp + 0x4d0]
mov rcx, qword [rsp + 0x28]
mov qword [rcx], rax
movups xmmword [rcx + 8], xmm0
jmp 0x140287e56