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

Disassembly:
mov r11, rsp
sub rsp, 0xa8
mov rax, qword [0x14005b0e8]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov rax, qword [0x1417bba30]
cmp qword [rax + 0x210], 0
je 0x14001da27
mov qword [r11 + 8], rbx
mov ecx, 0x400
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
mov qword [r11 - 8], rdi
mov qword [r11 - 0x10], r12
mov qword [r11 - 0x18], r13
mov qword [r11 - 0x20], r14
mov qword [r11 - 0x28], r15
call qword [sym.imp.msvcrt.dll_malloc]
mov qword [0x1417fbe08], rax
test rax, rax
jne 0x14001dadb
mov rsi, qword [0x1417bba30]
mov rbx, qword [rsi + 0x240]
test rbx, rbx
jne 0x14001da3c
mov ecx, 0x27
lea edx, [rax + 1]
add ecx, 2
call qword [sym.imp.msvcrt.dll_calloc]
mov qword [rsi + 0x240], rax
mov rdx, rax
test rax, rax
je 0x14001e2a5
movups xmm0, xmmword [str.Memory_allocation_failed_in_NWL_SpdInit]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x1400415d8]
movups xmmword [rax + 0x10], xmm1
mov ecx, dword [0x1400415e8]
mov dword [rax + 0x20], ecx
movzx eax, word [0x1400415ec]
mov word [rdx + 0x24], ax
movzx eax, byte [0x1400415ee]
mov byte [rdx + 0x26], al
mov r14, qword [rsp + 0x88]
mov r13, qword [rsp + 0x90]
mov r12, qword [rsp + 0x98]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xc0]
mov rbp, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xb0]
mov r15, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140029990
add rsp, 0xa8
ret
mov r12d, 1
mov edx, r12d
lea eax, [rdx - 1]
cmp byte [rax + rbx], 0
jne 0x14001da56
mov edi, edx
cmp byte [rdi + rbx], 0
je 0x14001da5a
inc edx
jmp 0x14001da45
lea ecx, [rdx + 0x27]
mov rax, 0xffffffffffffffff
add ecx, 2
mov rdx, r12
cmovb rcx, rax
call qword [sym.imp.msvcrt.dll_calloc]
mov rbp, rax
test rax, rax
je 0x14001e2a5
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [str.Memory_allocation_failed_in_NWL_SpdInit]
mov rcx, rbx
movups xmmword [rdi + rbp], xmm0
movups xmm1, xmmword [0x1400415d8]
movups xmmword [rdi + rbp + 0x10], xmm1
mov eax, dword [0x1400415e8]
mov dword [rdi + rbp + 0x20], eax
movzx eax, word [0x1400415ec]
mov word [rdi + rbp + 0x24], ax
movzx eax, byte [0x1400415ee]
mov byte [rdi + rbp + 0x26], al
call qword [sym.imp.msvcrt.dll_free]
mov qword [rsi + 0x240], rbp
jmp 0x14001d9e7
mov rax, qword [0x1417bba30]
cmp dword [rax + 0x3c], 0
je 0x14001dafb
lea rcx, str._DBG__SPD_Init__find_PCI_0c05_devices_n
call fcn.140001010
mov rax, qword [0x1417bba30]
mov r15, qword [rax + 0x210]
xor ecx, ecx
xor r14d, r14d
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x68], ecx
mov ebp, r14d
mov byte [rsp + 0x44], cl
lea r12d, [r14 + 1]
test r15, r15
je 0x14001e1b5
mov rcx, qword [r15 + 0x230]
test rcx, rcx
je 0x14001e1b5
cmp rcx, 0xffffffffffffffff
je 0x14001e1b5
mov eax, r14d
mov dword [rsp + 0x40], eax
nop word [rax + rax]
mov r13d, r14d
mov esi, r14d
mov ebx, r14d
nop dword [rax]
test esi, esi
jne 0x14001db6c
test ebx, ebx
jne 0x14001dc72
mov rcx, qword [r15 + 0x230]
movzx edi, al
mov eax, r13d
and eax, 0x1f
shl edi, 5
or edi, eax
mov eax, ebx
and eax, 7
shl edi, 3
or edi, eax
test rcx, rcx
je 0x14001dc63
cmp rcx, 0xffffffffffffffff
je 0x14001dc63
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x50]
lea rax, [rsp + 0x60]
mov dword [rsp + 0x28], 0xc
mov r9d, 8
mov qword [rsp + 0x20], rax
mov edx, 0x9c406144
mov dword [rsp + 0x48], r14d
mov dword [rsp + 0x50], edi
mov dword [rsp + 0x54], r14d
call qword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x14001dc63
test ebx, ebx
jne 0x14001dc4d
mov rcx, qword [r15 + 0x230]
test rcx, rcx
je 0x14001dc4d
cmp rcx, 0xffffffffffffffff
je 0x14001dc4d
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x4c]
mov qword [rsp + 0x30], rax
lea r9d, [rbx + 8]
lea rax, [rsp + 0x44]
mov dword [rsp + 0x28], r12d
lea r8, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov edx, 0x9c406144
mov dword [rsp + 0x4c], r14d
mov dword [rsp + 0x58], edi
mov dword [rsp + 0x5c], 0xe
call qword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x14001dc4d
test byte [rsp + 0x44], 0x80
cmovne esi, r12d
mov eax, dword [rsp + 0x68]
and eax, 0xffffff00
cmp eax, 0xc050000
jne 0x14001dc63
test ebp, ebp
je 0x14001dca1
inc ebp
mov eax, dword [rsp + 0x40]
inc ebx
cmp ebx, 8
jb 0x14001db60
inc r13d
cmp r13d, 0x20
jb 0x14001db53
inc eax
mov dword [rsp + 0x40], eax
cmp eax, 7
jbe 0x14001db50
mov rsi, qword [0x1417bba30]
add rsi, 0x240
jmp 0x14001e1bc
mov rcx, qword [0x1417bba30]
mov dword [0x14005b1e4], edi
cmp dword [rcx + 0x3c], r14d
je 0x14001dcc9
mov edx, edi
lea rcx, str._DBG__SMBus_address__08X_n
call fcn.140001010
mov rcx, qword [0x1417bba30]
mov rcx, qword [rcx + 0x210]
xor r8d, r8d
call fcn.14001eee0
mov rcx, qword [0x1417bba30]
mov r8d, 2
mov word [0x14005b1d4], ax
mov rcx, qword [rcx + 0x210]
call fcn.14001eee0
movzx edx, ax
mov edi, 0xffff
movzx eax, word [0x14005b1d4]
mov word [0x14005b1c4], dx
cmp ax, di
je 0x14001e0da
cmp dx, di
je 0x14001e0da
mov rcx, qword [0x1417bba30]
cmp dword [rcx + 0x3c], r14d
je 0x14001dd4c
mov r8d, edx
lea rcx, str._DBG__SMBus_VID__04X__DID__04X_n
mov edx, eax
call fcn.140001010
movzx eax, word [0x14005b1d4]
movzx edx, word [0x14005b1c4]
movzx ecx, ax
sub ecx, 0x1002
je 0x14001e02f
sub ecx, 0x20
je 0x14001dfca
sub ecx, 0xbc
je 0x14001df89
cmp ecx, 0x6fa8
jne 0x14001e075
mov rcx, qword [0x1417bba30]
mov eax, 0x7113
mov rcx, qword [rcx + 0x210]
cmp dx, ax
je 0x14001df64
mov r8d, 4
call fcn.14001eee0
movzx edi, ax
test r12b, al
jne 0x14001de40
mov rcx, qword [0x1417bba30]
or di, r12w
mov ebp, dword [0x14005b1e4]
mov rsi, qword [rcx + 0x210]
test rsi, rsi
je 0x14001de40
mov rax, qword [rsi + 0x230]
test rax, rax
je 0x14001de40
cmp rax, 0xffffffffffffffff
je 0x14001de40
mov ecx, 0xa
mov dword [rsp + 0x4c], r14d
call qword [sym.imp.msvcrt.dll_malloc]
mov rbx, rax
test rax, rax
je 0x14001de40
mov word [rax + 8], di
mov r9d, 0xa
mov dword [rax], ebp
mov r8, rbx
mov dword [rax + 4], 4
mov edx, 0x9c40a148
mov rcx, qword [rsi + 0x230]
lea rax, [rsp + 0x4c]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.DLL_DeviceIoControl]
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_free]
mov rcx, qword [0x1417bba30]
mov r8d, 0x20
mov rcx, qword [rcx + 0x210]
call fcn.14001eee0
mov rcx, qword [0x1417bba30]
movzx ebx, ax
mov edx, 0xfff0
mov r8d, 0x40
and bx, dx
mov rcx, qword [rcx + 0x210]
call fcn.14001ee50
movzx ebp, al
test al, 4
jne 0x14001df1b
mov rcx, qword [0x1417bba30]
or bpl, 4
mov r15d, dword [0x14005b1e4]
mov rsi, qword [rcx + 0x210]
test rsi, rsi
je 0x14001df1b
mov rax, qword [rsi + 0x230]
test rax, rax
je 0x14001df1b
cmp rax, 0xffffffffffffffff
je 0x14001df1b
mov ecx, 9
mov dword [rsp + 0x48], r14d
call qword [sym.imp.msvcrt.dll_malloc]
mov rdi, rax
test rax, rax
je 0x14001df1b
mov byte [rax + 8], bpl
mov r9d, 9
mov dword [rax], r15d
mov r8, rdi
mov dword [rax + 4], 0x40
mov edx, 0x9c40a148
mov rcx, qword [rsi + 0x230]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.DLL_DeviceIoControl]
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_free]
mov rcx, qword [0x1417bba30]
movzx edx, word [0x1417bba48]
mov rcx, qword [rcx + 0x210]
call fcn.14001ed30
mov rcx, qword [0x1417bba30]
and al, 0x1f
movzx edx, word [0x1417bba48]
movzx r8d, al
mov rcx, qword [rcx + 0x210]
call fcn.14001edd0
mov ecx, 0x3e8
call fcn.14001ce10
jmp 0x14001e0ae
mov r8d, 0x90
call fcn.14001eee0
movzx ecx, ax
mov edx, 0xfff0
and cx, dx
mov ebx, r14d
cmp ax, di
cmovne bx, cx
jmp 0x14001e0ae
mov ecx, 0x200
mov eax, 0x20
cmp dx, cx
mov r8d, 0x50
mov rcx, qword [0x1417bba30]
cmovae r8d, eax
mov rcx, qword [rcx + 0x210]
call fcn.14001eee0
mov ecx, 0xfffc
and ax, cx
movzx ebx, ax
mov word [0x1417bba48], ax
jmp 0x14001e0b5
movzx eax, dx
cmp eax, 0x746a
je 0x14001e064
cmp eax, 0x780b
je 0x14001dffe
cmp eax, 0x790b
jne 0x14001e075
call fcn.14001ce90
movzx ebx, ax
mov word [0x1417bba48], ax
jmp 0x14001e0b5
mov rcx, qword [0x1417bba30]
mov r8d, 8
mov rcx, qword [rcx + 0x210]
call fcn.14001ee50
cmp al, 0x42
jne 0x14001e064
call fcn.14001ce90
movzx ebx, ax
mov word [0x1417bba48], ax
jmp 0x14001e0b5
movzx ecx, dx
sub ecx, 0x4353
je 0x14001e07e
sub ecx, 0x10
je 0x14001e07e
sub ecx, 0xf
je 0x14001e07e
cmp ecx, 0x13
jne 0x14001e075
lea r8d, [rcx - 0xb]
mov rcx, qword [0x1417bba30]
mov rcx, qword [rcx + 0x210]
call fcn.14001ee50
cmp al, 0x3d
jbe 0x14001e07e
call fcn.14001d0c0
movzx ebx, ax
mov word [0x1417bba48], ax
jmp 0x14001e0b5
movzx ebx, word [0x1417bba48]
jmp 0x14001e0b5
mov rcx, qword [0x1417bba30]
mov r8d, 0x90
mov rcx, qword [rcx + 0x210]
call fcn.14001eee0
mov edx, 0xfff0
movzx ecx, ax
and cx, dx
cmp ax, di
cmovne r14w, cx
movzx ebx, r14w
mov word [0x1417bba48], bx
mov rax, qword [0x1417bba30]
cmp dword [rax + 0x3c], 0
je 0x14001d9e7
movzx edx, bx
lea rcx, str._DBG__SMBus_base__04X_n
call fcn.140001010
jmp 0x14001d9e7
mov rbp, qword [0x1417bba30]
mov rbx, qword [rbp + 0x240]
test rbx, rbx
jne 0x14001e132
mov ecx, 0x13
mov rdx, r12
add ecx, 2
call qword [sym.imp.msvcrt.dll_calloc]
mov qword [rbp + 0x240], rax
test rax, rax
je 0x14001e2a5
movups xmm0, xmmword [str.SMBus_id_read_error]
movups xmmword [rax], xmm0
movzx ecx, word [0x140041658]
mov word [rax + 0x10], cx
movzx ecx, byte [0x14004165a]
mov byte [rax + 0x12], cl
jmp 0x14001d9e7
mov edx, r12d
lea eax, [rdx - 1]
cmp byte [rax + rbx], r14b
jne 0x14001e146
mov edi, edx
cmp byte [rdi + rbx], r14b
je 0x14001e14a
inc edx
jmp 0x14001e135
lea ecx, [rdx + 0x13]
mov rax, 0xffffffffffffffff
add ecx, 2
mov rdx, r12
cmovb rcx, rax
call qword [sym.imp.msvcrt.dll_calloc]
mov rsi, rax
test rax, rax
je 0x14001e2a5
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [str.SMBus_id_read_error]
movups xmmword [rdi + rsi], xmm0
movzx ecx, word [0x140041658]
mov word [rdi + rsi + 0x10], cx
mov rcx, rbx
movzx eax, byte [0x14004165a]
mov byte [rdi + rsi + 0x12], al
call qword [sym.imp.msvcrt.dll_free]
mov qword [rbp + 0x240], rsi
jmp 0x14001d9e7
lea rsi, [rax + 0x240]
mov rbx, qword [rsi]
mov eax, 0xffffffff
mov dword [0x14005b1e4], eax
test rbx, rbx
jne 0x14001e21e
mov ecx, 0xf
mov rdx, r12
add ecx, 2
call qword [sym.imp.msvcrt.dll_calloc]
mov qword [rsi], rax
mov rdx, rax
test rax, rax
je 0x14001e2a5
movsd xmm0, qword [str.SMBus_not_found]
movsd qword [rax], xmm0
mov ecx, dword [0x140041620]
mov dword [rax + 8], ecx
movzx ecx, word [0x140041624]
mov word [rax + 0xc], cx
movzx eax, byte [0x140041626]
mov byte [rdx + 0xe], al
jmp 0x14001d9e7
mov edx, r12d
lea eax, [rdx - 1]
cmp byte [rax + rbx], r14b
jne 0x14001e232
mov edi, edx
cmp byte [rdi + rbx], r14b
je 0x14001e236
inc edx
jmp 0x14001e221
lea ecx, [rdx + 0xf]
mov rax, 0xffffffffffffffff
add ecx, 2
mov rdx, r12
cmovb rcx, rax
call qword [sym.imp.msvcrt.dll_calloc]
mov rbp, rax
test rax, rax
je 0x14001e2a5
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call sub.msvcrt.dll_memcpy
movsd xmm0, qword [str.SMBus_not_found]
movsd qword [rdi + rbp], xmm0
mov ecx, dword [0x140041620]
mov dword [rdi + rbp + 8], ecx
mov rcx, rbx
movzx eax, word [0x140041624]
mov word [rdi + rbp + 0xc], ax
movzx eax, byte [0x140041626]
mov byte [rdi + rbp + 0xe], al
call qword [sym.imp.msvcrt.dll_free]
mov qword [rsi], rbp
jmp 0x14001d9e7
lea rdx, str.Failed_to_allocate_memory_in_NWL_NodeAppendMultiSz
mov ecx, 0xe
call fcn.140001650
int3