Function at 0x14001d8e8
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, 0x268
movaps xmmword [rsp + 0x250], xmm8
movaps xmmword [rsp + 0x240], xmm7
movaps xmmword [rsp + 0x230], xmm6
mov rdi, r9
mov rbx, r8
mov r14, rdx
mov rsi, rcx
mov rcx, rdx
mov rdx, r8
mov r8, r9
call fcn.14001ebc4
movabs rbp, 0x8000000000000002
test al, al
je 0x14001da74
xor eax, eax
cmp byte [rdi + 0x10], 2
setne al
mov ecx, 0x11
mov edx, 0x20
cmove rdx, rcx
cmp byte [rdi + 0x20], 2
lea r15, [rax*8 + 9]
cmove r15, rdx
and word [rsp + 0x4e], 0
or r15, 4
sub rbx, r15
jb 0x14001e643
lea r12, [rsp + 0x4e]
mov rcx, r12
mov rdx, r14
mov r8, r15
call fcn.140027670
add r14, r15
movzx ecx, word [r12]
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], rbx
cmp rbx, 4
jb 0x14001da3b
mov r15d, dword [r14]
mov edx, r15d
shr edx, 8
mov r8d, r15d
shr r8d, 0x10
mov eax, r15d
shr eax, 0x18
movzx ecx, cx
mov r9d, ecx
xor r9b, r15b
shr ecx, 8
xor ecx, edx
movzx edx, r9b
lea r13, [0x140119580]
movzx edx, word [r13 + rdx*2]
xor ecx, edx
shr edx, 8
xor edx, r8d
mov r8d, 0xff
and ecx, r8d
movzx r9d, word [r13 + rcx*2]
xor edx, r9d
shr r9d, 8
xor r9d, eax
and edx, r8d
movzx ecx, word [r13 + rdx*2]
xor r9d, ecx
and r9d, r8d
movzx edx, word [r13 + r9*2]
cmp r15d, 0x676e6958
je 0x14001da2a
cmp r15d, 0x6f666e49
jne 0x14001dc2d
mov rax, rbx
and rax, 0xfffffffffffffffc
cmp rax, 4
jne 0x14001db92
lea rdx, str.buffer_underrunout_of_bounds
mov r8d, 0xf
mov cl, 0x25
call fcn.140026f68
mov rdx, rax
mov r13, rbp
xor r12d, r12d
mov dword [rsp + 0x48], eax
cmp r13, rbp
jne 0x14001da83
mov ecx, r12d
call fcn.14001eb86
dec rbp
mov qword [rsi], rbp
jmp 0x14001db65
mov rbx, rsi
dec rbp
mov dword [rsp + 0x48], eax
mov r13, rbp
jmp 0x14001daa1
mov rbx, rsi
mov edi, dword [rsp + 0x2c]
mov r14d, dword [rsp + 0x94]
mov ebp, dword [rsp + 0x90]
mov rsi, rdx
mov byte [rsp + 0x40], r15b
lea r15, [rsp + 0x100]
lea rdx, [rsp + 0x168]
mov r8d, 0x64
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbx], r13
mov byte [rbx + 8], r12b
mov eax, dword [rsp + 0x80]
mov dword [rbx + 9], eax
mov eax, dword [rsp + 0x83]
mov dword [rbx + 0xc], eax
mov qword [rbx + 0x10], rsi
mov dword [rbx + 0x18], edi
movss dword [rbx + 0x1c], xmm8
mov dword [rbx + 0x20], r14d
movss dword [rbx + 0x24], xmm6
mov dword [rbx + 0x28], ebp
movss dword [rbx + 0x2c], xmm7
mov eax, dword [rsp + 0x50]
mov dword [rbx + 0x30], eax
mov eax, dword [rsp + 0x78]
mov dword [rbx + 0x34], eax
mov eax, dword [rsp + 0xac]
mov dword [rbx + 0x38], eax
mov eax, dword [rsp + 0xa4]
mov dword [rbx + 0x3c], eax
mov eax, dword [rsp + 0xa0]
mov dword [rbx + 0x40], eax
mov eax, dword [rsp + 0xa8]
mov dword [rbx + 0x44], eax
mov eax, dword [rsp + 0x9c]
mov dword [rbx + 0x48], eax
mov eax, dword [rsp + 0x98]
mov dword [rbx + 0x4c], eax
mov eax, dword [rsp + 0x48]
mov byte [rbx + 0x50], al
lea rcx, [rbx + 0x51]
mov r8d, 0x64
mov rdx, r15
call sub.VCRUNTIME140.dll_memcpy
mov al, byte [rsp + 0x40]
mov byte [rbx + 0xb5], al
movaps xmm6, xmmword [rsp + 0x230]
movaps xmm7, xmmword [rsp + 0x240]
movaps xmm8, xmmword [rsp + 0x250]
add rsp, 0x268
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rbx, 7
jbe 0x14001e643
shr ecx, 8
xor ecx, edx
mov r12d, dword [r14 + 4]
mov qword [rsp + 0x68], 8
mov r8d, r12d
shr r8d, 8
mov r9d, r12d
shr r9d, 0x10
mov r10d, r12d
shr r10d, 0x18
xor cl, r12b
movzx edx, dx
shr edx, 8
xor edx, r8d
movzx ecx, cl
movzx ecx, word [r13 + rcx*2]
xor edx, ecx
shr ecx, 8
xor ecx, r9d
mov r8d, 0xff
and edx, r8d
movzx edx, word [r13 + rdx*2]
xor ecx, edx
shr edx, 8
xor edx, r10d
and ecx, r8d
movzx ecx, word [r13 + rcx*2]
xor edx, ecx
shr ecx, 8
and edx, r8d
movzx edx, word [r13 + rdx*2]
xor ecx, edx
mov word [rsp + 0x70], cx
bswap r12d
xor r10d, r10d
test r12b, 1
jne 0x14001dc36
mov edx, 8
xor eax, eax
jmp 0x14001dcc7
lea r13, [rbp - 1]
jmp 0x14001da55
cmp rax, 8
je 0x14001da3b
cmp rbx, 0xb
jbe 0x14001e643
mov r11d, dword [r14 + 8]
mov qword [rsp + 0x68], 0xc
mov eax, r11d
shr eax, 8
mov r8d, r11d
shr r8d, 0x10
mov r9d, r11d
shr r9d, 0x18
xor cl, r11b
movzx edx, dx
shr edx, 8
xor edx, eax
movzx eax, cl
movzx eax, word [r13 + rax*2]
xor edx, eax
shr eax, 8
xor eax, r8d
mov r8d, 0xff
and edx, r8d
movzx edx, word [r13 + rdx*2]
xor eax, edx
shr edx, 8
xor edx, r9d
and eax, r8d
movzx ecx, word [r13 + rax*2]
xor edx, ecx
shr ecx, 8
and edx, r8d
xor cx, word [r13 + rdx*2]
mov word [rsp + 0x70], cx
bswap r11d
mov eax, 1
mov edx, 0xc
mov dword [rsp + 0xac], eax
test r12b, 2
jne 0x14001dcdc
mov rax, rdx
jmp 0x14001dd72
mov rax, rbx
sub rax, rdx
cmp rax, 4
jb 0x14001da3b
lea rax, [rdx + 4]
cmp rax, rbx
ja 0x14001e643
mov r14d, dword [r14 + rdx]
mov edx, r14d
shr edx, 8
mov r8d, r14d
shr r8d, 0x10
mov r9d, r14d
shr r9d, 0x18
movzx ecx, cx
mov r10d, ecx
xor r10b, r14b
shr ecx, 8
xor ecx, edx
movzx edx, r10b
movzx edx, word [r13 + rdx*2]
xor ecx, edx
shr edx, 8
xor edx, r8d
mov r8d, 0xff
and ecx, r8d
movzx ecx, word [r13 + rcx*2]
xor edx, ecx
shr ecx, 8
xor ecx, r9d
and edx, r8d
movzx edx, word [r13 + rdx*2]
xor ecx, edx
shr edx, 8
and ecx, r8d
xor dx, word [r13 + rcx*2]
mov qword [rsp + 0x68], rax
mov word [rsp + 0x70], dx
bswap r14d
mov r10d, 1
xor edx, edx
mov ecx, 0
test r12b, 4
je 0x14001de16
mov ebp, r10d
mov r13d, r11d
xorps xmm0, xmm0
lea rdx, [rsp + 0x100]
movaps xmmword [rdx + 0x50], xmm0
movaps xmmword [rdx + 0x40], xmm0
movaps xmmword [rdx + 0x30], xmm0
movaps xmmword [rdx + 0x20], xmm0
movaps xmmword [rdx + 0x10], xmm0
movaps xmmword [rdx], xmm0
and dword [rdx + 0x60], 0
lea rcx, [rsp + 0x58]
mov r8d, 0x64
call fcn.14001b577
test rax, rax
je 0x14001ddd6
mov rdx, rax
movabs rbp, 0x8000000000000002
jmp 0x14001da52
lea rcx, [rsp + 0x1cc]
lea rdx, [rsp + 0x100]
mov r8d, 0x64
call sub.VCRUNTIME140.dll_memcpy
mov rbx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
mov cl, 1
mov r11d, r13d
mov r10d, ebp
movabs rbp, 0x8000000000000002
lea r13, [0x140119580]
xor edx, edx
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0xa8], r14d
test r12b, 8
jne 0x14001de30
mov rcx, rax
jmp 0x14001dee7
mov rcx, rbx
sub rcx, rax
cmp rcx, 4
jb 0x14001da3b
cmp rax, 0xfffffffffffffffb
ja 0x14001e643
lea rcx, [rax + 4]
cmp rcx, rbx
ja 0x14001e643
mov r14, rbp
mov ebp, r10d
mov rdx, qword [rsp + 0x58]
mov r12d, dword [rdx + rax]
mov qword [rsp + 0x68], rcx
mov eax, r12d
shr eax, 8
mov edx, r12d
shr edx, 0x10
mov r8d, r12d
shr r8d, 0x18
movzx r9d, word [rsp + 0x70]
mov r10d, r12d
xor r10d, r9d
shr r9d, 8
xor r9d, eax
mov eax, 0xff
and r10d, eax
movzx r10d, word [r13 + r10*2]
xor r9d, r10d
shr r10d, 8
xor r10d, edx
and r9d, eax
movzx edx, word [r13 + r9*2]
xor r10d, edx
shr edx, 8
xor edx, r8d
and r10d, eax
movzx r8d, word [r13 + r10*2]
xor edx, r8d
shr r8d, 8
and edx, eax
xor r8w, word [r13 + rdx*2]
mov word [rsp + 0x70], r8w
bswap r12d
mov edx, 1
mov r10d, ebp
mov rbp, r14
sub rbx, rcx
cmp rbx, 0x17
mov dword [rsp + 0xa4], r11d
mov dword [rsp + 0xa0], r10d
mov dword [rsp + 0x9c], edx
mov dword [rsp + 0x98], r12d
jbe 0x14001e5a6
lea rdx, [rsp + 0xd8]
mov byte [rdx + 8], 0
and qword [rdx], 0
lea rcx, [rsp + 0x58]
mov r8d, 9
call fcn.14001b577
mov rdx, rax
test rax, rax
jne 0x14001da52
mov r14, qword [rsp + 0x60]
mov r10, qword [rsp + 0x68]
cmp r14, r10
je 0x14001da3b
jbe 0x14001e643
lea rcx, [r10 + 1]
cmp r14, rcx
je 0x14001da3b
jbe 0x14001e643
lea rdx, [r10 + 2]
mov rax, r14
sub rax, rdx
cmp rax, 4
jb 0x14001da3b
cmp rdx, 0xfffffffffffffffb
ja 0x14001e643
lea rax, [r10 + 6]
mov r8, r14
sub r8, rax
jb 0x14001e643
mov r9, qword [rsp + 0x58]
mov qword [rsp + 0x40], r9
mov edx, dword [r9 + rdx]
mov qword [rsp + 0xd0], rdx
test edx, edx
setne byte [rsp + 0x2b]
cmp r8, 2
jb 0x14001da3b
cmp rax, 0xfffffffffffffffd
ja 0x14001e643
lea rdx, [r10 + 8]
mov r8, r14
mov qword [rsp + 0x78], rdx
sub r8, rdx
mov qword [rsp + 0x50], r8
jb 0x14001e643
mov r12, r13
mov r11, r13
movzx edx, word [rsp + 0x70]
mov r13, qword [rsp + 0x40]
mov r8b, byte [r13 + r10]
xor r8b, dl
shr edx, 8
movzx r8d, r8b
movzx r8d, word [r11 + r8*2]
xor edx, r8d
xor dl, byte [r13 + rcx]
movzx ecx, r8w
shr ecx, 8
movzx edx, dl
movzx edx, word [r11 + rdx*2]
xor ecx, edx
mov rbx, qword [rsp + 0xd0]
mov r8d, ebx
shr r8d, 8
mov r9d, ebx
shr r9d, 0x10
mov qword [rsp + 0x30], r10
mov r10d, ebx
shr r10d, 0x18
xor cl, bl
movzx edx, dx
shr edx, 8
xor edx, r8d
movzx ecx, cl
movzx ecx, word [r11 + rcx*2]
xor edx, ecx
shr ecx, 8
xor ecx, r9d
mov r8d, 0xff
and edx, r8d
movzx edx, word [r11 + rdx*2]
xor ecx, edx
shr edx, 8
xor edx, r10d
and ecx, r8d
movzx r9d, word [r11 + rcx*2]
xor edx, r9d
shr r9d, 8
and edx, r8d
movzx edx, word [r11 + rdx*2]
xor r9d, edx
movzx ecx, word [r13 + rax]
mov eax, ecx
shr eax, 8
xor r9b, cl
movzx edx, dx
shr edx, 8
xor edx, eax
movzx eax, r9b
movzx r13d, word [r11 + rax*2]
xor edx, r13d
movzx eax, dl
movzx ebx, word [r11 + rax*2]
rol cx, 8
mov dl, 1
call fcn.14001ec2b
mov rcx, qword [rsp + 0x30]
cmp qword [rsp + 0x50], 2
jb 0x14001da3b
mov rdx, qword [rsp + 0x78]
cmp rdx, 0xfffffffffffffffd
ja 0x14001e643
mov dword [rsp + 0x94], eax
lea rax, [rcx + 0xa]
mov qword [rsp + 0x50], rax
cmp rax, r14
ja 0x14001e643
movaps xmm6, xmm0
shr r13d, 8
xor r13d, ebx
mov rax, qword [rsp + 0x40]
movzx ecx, word [rax + rdx]
mov eax, ecx
shr eax, 8
xor r13b, cl
movzx edx, bx
shr edx, 8
xor edx, eax
movzx eax, r13b
movzx r13d, word [r12 + rax*2]
xor edx, r13d
movzx eax, dl
movzx ebx, word [r12 + rax*2]
rol cx, 8
mov dl, 2
call fcn.14001ec2b
mov r8, qword [rsp + 0x50]
cmp r14, r8
mov rdx, qword [rsp + 0x30]
je 0x14001da3b
jbe 0x14001e643
shr r13d, 8
xor r13d, ebx
mov rcx, qword [rsp + 0x40]
xor r13b, byte [rcx + r8]
lea r8, [rdx + 0xb]
movzx r11d, bx
shr r11d, 8
movzx ecx, r13b
movzx r13d, word [r12 + rcx*2]
xor r11d, r13d
mov word [rsp + 0x70], r11w
cmp r14, r8
je 0x14001da3b
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x90], eax
lea rax, [rdx + 0xc]
mov qword [rsp + 0x68], rax
cmp r8, r14
jae 0x14001e643
mov rcx, r14
sub rcx, rax
cmp rcx, 3
movabs rbp, 0x8000000000000002
mov rsi, qword [rsp + 0x38]
jb 0x14001da3b
mov dword [rsp + 0x2c], 0
cmp rax, 0xfffffffffffffffc
ja 0x14001e643
mov rcx, qword [rsp + 0x30]
lea r9, [rcx + 0xf]
mov rdx, r14
sub rdx, r9
jb 0x14001e643
movaps xmm7, xmm0
mov r10, qword [rsp + 0x40]
movzx ecx, word [r10 + rax]
movzx eax, byte [r10 + rax + 2]
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0xd8]
cmp eax, 0x454d414c
je 0x14001e239
cmp eax, 0x6676614c
je 0x14001e239
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x78], 0
cmp eax, 0x6376614c
jne 0x14001e275
mov r10, qword [rsp + 0xc8]
shl r10d, 0x10
or r10d, ecx
bswap r10d
mov ebp, r10d
shr ebp, 8
shr r10d, 0x14
mov ebx, 0x211
add r10d, ebx
mov dword [rsp + 0x50], r10d
and ebp, 0xfff
xor r10d, r10d
sub ebp, ebx
cmovb ebp, r10d
mov dword [rsp + 0x78], ebp
cmp rdx, 0xc
jb 0x14001e514
cmp r14, r9
movabs rbp, 0x8000000000000002
mov rsi, qword [rsp + 0x38]
je 0x14001da3b
jbe 0x14001e643
mov rdx, qword [rsp + 0x30]
add rdx, 0x10
cmp r14, rdx
mov rsi, qword [rsp + 0x38]
je 0x14001da3b
jbe 0x14001e643
mov r10, qword [rsp + 0x30]
lea rbx, [r10 + 0x11]
mov r10, r14
mov rsi, rbx
mov qword [rsp + 0xc0], rbx
sub r10, rbx
cmp r10, 2
mov rsi, qword [rsp + 0x38]
jb 0x14001da3b
cmp qword [rsp + 0xc0], 0xfffffffffffffffd
ja 0x14001e643
mov r10, qword [rsp + 0x30]
lea rsi, [r10 + 0x13]
mov rbx, r14
mov r10, rsi
mov qword [rsp + 0xb8], rsi
sub rbx, rsi
jb 0x14001e643
cmp rbx, 4
mov rsi, qword [rsp + 0x38]
jb 0x14001da3b
cmp qword [rsp + 0xb8], 0xfffffffffffffffb
ja 0x14001e643
mov r10, qword [rsp + 0x30]
lea rsi, [r10 + 0x17]
mov rbx, r14
mov r10, rsi
mov qword [rsp + 0xb0], rsi
sub rbx, rsi
jb 0x14001e643
cmp rbx, 2
mov rsi, qword [rsp + 0x38]
jb 0x14001da3b
mov dword [rsp + 0x2c], 0
cmp qword [rsp + 0xb0], 0xfffffffffffffffd
ja 0x14001e643
mov r10, qword [rsp + 0x30]
lea rsi, [r10 + 0x19]
mov rbp, r14
mov r10, rsi
mov qword [rsp + 0x88], rsi
sub rbp, rsi
jb 0x14001e643
mov rbx, qword [rsp + 0x40]
xor r11b, byte [rbx + r8]
movzx r8d, r11b
movzx r10d, r13w
shr r10d, 8
movzx r8d, word [r12 + r8*2]
xor r10d, r8d
xor r10d, ecx
mov r11d, 0xff
and r10d, r11d
movzx r8d, r8w
shr ecx, 8
shr r8d, 8
xor r8d, ecx
movzx ecx, word [r12 + r10*2]
xor r8d, ecx
and r8d, r11d
shr ecx, 8
movzx r8d, word [r12 + r8*2]
xor ecx, r8d
and ecx, r11d
mov r10, qword [rsp + 0xc8]
xor r10d, ecx
shr r8d, 8
movzx ecx, word [r12 + r10*2]
xor r8d, ecx
xor r8b, byte [rbx + r9]
movzx ecx, cx
shr ecx, 8
movzx r8d, r8b
movzx r8d, word [r12 + r8*2]
xor ecx, r8d
xor cl, byte [rbx + rdx]
movzx edx, r8w
shr edx, 8
movzx ecx, cl
xor dx, word [r12 + rcx*2]
mov rcx, qword [rsp + 0xc0]
xor dx, word [rbx + rcx]
movzx ecx, dx
mov r8d, 0xff
mov edx, ecx
and edx, r8d
shr ecx, 8
movzx edx, word [r12 + rdx*2]
xor ecx, edx
shr edx, 8
and ecx, r8d
movzx r9d, word [r12 + rcx*2]
xor edx, r9d
mov rcx, qword [rsp + 0xb8]
mov r8d, dword [rbx + rcx]
mov r10d, r8d
mov ecx, r8d
xor edx, r8d
mov r11d, r8d
shr r11d, 8
shr r10d, 0x10
shr ecx, 0x18
mov r8d, 0xff
and edx, r8d
movzx r9d, r9w
shr r9d, 8
xor r9d, r11d
movzx edx, word [r12 + rdx*2]
xor r9d, edx
and r9d, r8d
shr edx, 8
xor edx, r10d
movzx r9d, word [r12 + r9*2]
xor edx, r9d
and edx, r8d
shr r9d, 8
movzx edx, word [r12 + rdx*2]
xor r9d, edx
and r9d, r8d
xor r9d, ecx
shr edx, 8
xor dx, word [r12 + r9*2]
mov rcx, qword [rsp + 0xb0]
xor dx, word [rbx + rcx]
movzx edx, dx
mov ecx, edx
and ecx, r8d
shr edx, 8
movzx ecx, word [r12 + rcx*2]
xor edx, ecx
shr ecx, 8
and edx, r8d
xor cx, word [r12 + rdx*2]
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x68], rdx
mov word [rsp + 0x70], cx
cmp byte [rdi + 0x26], 0
jne 0x14001e5d8
cmp eax, 0x454d414c
je 0x14001e5d8
lea rdi, [rsp + 0x100]
lea rdx, [rsp + 0xd8]
mov r8d, 9
mov rcx, rdi
call fcn.140004e91
lea r14, [rsp + 0xe8]
mov rcx, r14
mov rdx, rdi
call fcn.140004c3d
mov r13, qword [r14]
mov r12b, byte [r14 + 8]
mov eax, dword [r14 + 9]
mov dword [rsp + 0x80], eax
mov eax, dword [r14 + 0xc]
mov dword [rsp + 0x83], eax
mov rdi, qword [r14 + 0x10]
mov rax, qword [rsp + 0xd0]
bswap eax
cvtsi2ss xmm8, rax
mulss xmm8, dword [0x1400a9f00]
mulss xmm8, dword [0x1400a9ec8]
mov eax, dword [rsp + 0x2c]
mov cl, byte [rsp + 0x2b]
mov al, cl
mov dword [rsp + 0x2c], eax
movabs rbp, 0x8000000000000002
mov rsi, qword [rsp + 0x38]
jmp 0x14001e5aa
lea r13, [rbp - 2]
cmp r15d, 0x6f666e49
sete r15b
lea rcx, [rsp + 0x168]
lea rdx, [rsp + 0x1cc]
mov r8d, 0x64
call sub.VCRUNTIME140.dll_memcpy
mov rdx, rdi
jmp 0x14001da5c
cmp rbp, 2
movabs rbp, 0x8000000000000002
mov rsi, qword [rsp + 0x38]
jb 0x14001da3b
mov dword [rsp + 0x2c], 0
cmp qword [rsp + 0x88], 0xfffffffffffffffd
ja 0x14001e643
mov rax, qword [rsp + 0x30]
add rax, 0x1b
cmp rax, r14
ja 0x14001e643
mov rax, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x88]
movzx eax, word [rax + rdx]
rol ax, 8
cmp cx, ax
je 0x14001e514
movabs rax, 0x8000000000000002
lea r13, [rax - 2]
jmp 0x14001e566
ud2