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

Disassembly:
push r15
mov eax, 0x3428
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.0067cdd0
sub rsp, rax
xor r8d, r8d
xor ebx, ebx
movabs rdx, 0xf83e0f83e0f83e1
mov rax, qword [rcx + 0x80]
sub rax, qword [rcx + 0x78]
lea rbp, [rsp + 0xb0]
mov r14, rcx
lea rsi, [rsp + 0x2f0]
sar rax, 2
imul rax, rdx
mov rdx, rcx
mov rcx, rbp
mov rdi, rax
mov qword [rsp + 0x90], rax
call fcn.004337a0
lea rax, [rsp + 0x1c0]
mov rcx, r14
mov qword [rsp + 0x1c8], 0
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x1e2]
mov qword [rsp + 0x1d0], rax
lea rax, [0x00840bc0]
mov qword [rsp + 0x1c0], rax
lea rdx, [rsi + 0x22]
mov qword [rsp + 0x2f0], rax
mov rax, qword [r14 + 0x10]
lea r8, [0x007f83c2]
mov qword [rsp + 0x2f8], 0
mov qword [rsp + 0x300], rdx
mov word [rsp + 0x1e2], bx
lea rbx, [rsp + 0x1420]
mov rdx, qword [rax + 8]
mov r9, rbx
mov qword [rsp + 0xa0], rsi
xor esi, esi
mov qword [rsp + 0x1d8], pe_nt_image_headers64
mov byte [rsp + 0x1e0], 0
mov qword [rsp + 0x308], pe_nt_image_headers64
mov byte [rsp + 0x310], 0
mov word [rsp + 0x312], si
call fcn.00412940
lea rdx, [0x007f83ca]
mov rcx, rbx
call qword [sym.imp.msvcrt.dll__wfopen]
mov rcx, qword [0x00826910]
mov r8, rbx
mov r15, rax
mov qword [rsp + 0x38], rax
lea rdx, str.Saving__s_n
call fcn.0041e020
mov rcx, qword [r14 + 0x110]
xor eax, eax
mov dword [rsp + 0x84], edi
mov edx, dword [r14]
mov r8d, dword [r14 + 4]
cmp byte [rcx], 0
mov dword [rsp + 0x20], edi
mov esi, edx
lea rdx, str._s_s___d_inf_files__n
setne al
add eax, eax
sub esi, eax
sub r8d, eax
lea r9, [rcx + r8]
mov rax, rsi
lea r8, [rcx + rax]
mov rcx, r15
call sub.msvcrt.dll_fwprintf
test rdi, rdi
je 0x41321a
mov rax, qword [sym.imp.USER32.dll_wsprintfA]
xor r13d, r13d
xor r12d, r12d
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x58], rax
mov rbx, qword [rsp + 0x88]
lea rdi, str._s_s_n
xor r15d, r15d
xor esi, esi
add rbx, qword [r14 + 0x78]
mov rax, qword [r14 + 0x110]
mov ecx, dword [rbx + 4]
mov edx, dword [rbx]
mov r8d, dword [rbx + 0x7c]
lea r9, [rax + rcx]
mov rcx, qword [rsp + 0x38]
mov dword [rsp + 0x20], r8d
lea r8, [rax + rdx]
lea rdx, str.___s_s___d_bytes__n
call fcn.00411270
mov r11d, dword [rsp + 0x84]
mov eax, dword [rsp + 0x68]
test r11d, r11d
mov dword [rsp + 0x30], eax
jle 0x412d3f
cmp esi, dword [rsp + 0x30]
je 0x412d2c
mov rax, r15
add rax, qword [r14 + 0x78]
mov edx, dword [rax + 0x80]
cmp dword [rbx + 0x80], edx
jne 0x412d2c
mov rdx, qword [r14 + 0x110]
mov ecx, dword [rax + 4]
mov eax, dword [rax]
lea r9, [rdx + rcx]
mov rcx, qword [rsp + 0x38]
lea r8, [rdx + rax]
mov rdx, rdi
call fcn.00411270
add esi, 1
add r15, 0x84
cmp dword [rsp + 0x84], esi
jne 0x412cf0
mov rdx, qword [rsp + 0x98]
lea rsi, [rbx + 0x60]
mov r8d, 1
mov rcx, rsi
call fcn.00403910
mov rdx, qword [rsp + 0xa0]
mov rcx, rsi
call fcn.00403a10
mov rdi, qword [rsp + 0x38]
lea rdx, str.____date_t_t_t_S_n
mov r8, qword [rsp + 0x1d0]
mov rcx, rdi
call sub.msvcrt.dll_fwprintf
mov r8, qword [rsp + 0x300]
lea rdx, str.____version_t_t_t_S_n
mov rcx, rdi
call sub.msvcrt.dll_fwprintf
mov eax, dword [rbx + 8]
test eax, eax
jne 0x41370b
mov eax, dword [rbx + 0xc]
test eax, eax
jne 0x4136be
mov eax, dword [rbx + 0x10]
test eax, eax
jne 0x413671
mov eax, dword [rbx + 0x14]
test eax, eax
jne 0x413624
mov eax, dword [rbx + 0x18]
test eax, eax
jne 0x4135d7
mov eax, dword [rbx + 0x1c]
test eax, eax
jne 0x41358a
mov eax, dword [rbx + 0x20]
test eax, eax
jne 0x41353d
mov eax, dword [rbx + 0x24]
test eax, eax
jne 0x4134f0
mov eax, dword [rbx + 0x28]
test eax, eax
jne 0x4134a3
mov eax, dword [rbx + 0x2c]
test eax, eax
jne 0x413456
mov eax, dword [rbx + 0x30]
test eax, eax
jne 0x413409
lea rdi, [rsp + 0xe0]
mov rax, 0xffffffffffffffff
mov ecx, 0x1c
mov rdx, qword [r14 + 0x90]
mov qword [rsp + 0xa8], rdi
rep stosq qword [rdi], rax
mov rcx, qword [r14 + 0x98]
mov rax, rcx
sub rax, rdx
sar rax, 4
cmp r13, rax
jae 0x41316e
mov rax, r13
mov qword [rsp + 0x60], r13
shl rax, 4
mov dword [rsp + 0x44], 0
mov qword [rsp + 0x70], rax
jmp 0x412e9f
cmp qword [rsp + 0x60], r13
jne 0x413176
add qword [rsp + 0x60], 1
mov rax, rcx
mov rdi, qword [rsp + 0x60]
sub rax, rdx
add qword [rsp + 0x70], 0x10
sar rax, 4
cmp rdi, rax
jae 0x413176
mov rax, qword [rsp + 0x70]
add rax, rdx
mov r8d, dword [rax]
cmp r8, qword [rsp + 0x68]
jne 0x412e70
mov ecx, dword [rax + 4]
test ecx, ecx
je 0x412ee2
add rcx, qword [r14 + 0x110]
lea rdx, str._______s_n
mov r8, rcx
mov rcx, qword [rsp + 0x38]
call fcn.00411270
mov rdx, qword [r14 + 0x90]
mov rax, qword [rsp + 0x70]
add rax, rdx
mov r10d, dword [rax + 0xc]
test r10d, r10d
jle 0x41334c
lea rdi, [rsp + 0x420]
mov qword [rsp + 0x78], 0
movabs r13, 0xaaaaaaaaaaaaaaab
mov qword [rsp + 0x30], rdi
mov rdi, qword [rsp + 0x78]
mov rbx, qword [r14 + 0x110]
mov dword [rsp + 0x80], edi
mov esi, dword [rax + 8]
mov rax, rdi
add rsi, rbx
mov edx, dword [rsi]
add rdx, rbx
test rax, rax
jne 0x413360
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_strcpy
mov rcx, qword [rsp + 0x30]
call fcn.00432ce0
test eax, eax
mov dword [rsp + 0x48], eax
js 0x4133d4
cdqe
mov r8d, dword [rsp + rax*4 + 0xe0]
test r8d, r8d
js 0x4132e5
xor ebx, ebx
mov r8, qword [rsp + 0x30]
lea rdx, str.__________s__n
mov rcx, qword [rsp + 0x38]
call fcn.00411270
mov r9, qword [r14 + 0xb0]
mov r8, qword [r14 + 0xa8]
mov rax, r9
sub rax, r8
sar rax, 3
imul rax, r13
test rax, rax
je 0x413323
mov edx, dword [rsp + 0x80]
test edx, edx
sete al
xor edi, edi
and eax, ebx
mov byte [rsp + 0x4f], al
movsxd rax, dword [rsp + 0x48]
mov qword [rsp + 0x50], rax
jmp 0x412feb
mov rax, r9
add rdi, 1
sub rax, r8
sar rax, 3
imul rax, r13
cmp rdi, rax
jae 0x413323
lea rax, [rdi + rdi*2]
lea rax, [r8 + rax*8]
mov edx, dword [rax]
cmp qword [rsp + 0x60], rdx
jne 0x412fd0
mov esi, dword [rsp + 0x80]
cmp dword [rax + 4], esi
jne 0x412fd0
mov rcx, qword [r14 + 0xc8]
mov rdx, qword [r14 + 0xc0]
mov rax, rcx
sub rax, rdx
sar rax, 2
imul rax, r13
cmp r12, rax
jae 0x412fd0
lea rsi, [r12 + r12*2]
mov rbx, r12
shl rsi, 2
jmp 0x413068
cmp rbx, r12
jne 0x413310
mov rax, rcx
add rbx, 1
add rsi, 0xc
sub rax, rdx
sar rax, 2
imul rax, r13
cmp rbx, rax
jae 0x413310
mov eax, dword [rdx + rsi]
cmp rax, rdi
jne 0x413040
lea rax, [r12 + 1]
cmp rax, rbx
je 0x413096
test rbx, rbx
je 0x413096
mov rcx, qword [rsp + 0x38]
mov r9d, ebx
mov r8d, r12d
lea rdx, str.Skip:_u__u_n
call fcn.00411270
mov eax, dword [rsp + 0x48]
mov qword [rsp + 0xb8], rbx
test eax, eax
js 0x4130b3
mov rax, qword [rsp + 0x50]
add dword [rsp + rax*4 + 0xe0], 1
mov rcx, rbp
cmp byte [rsp + 0x4f], 1
sbb dword [rsp + 0x44], 0xffffffff
call fcn.00436a00
test eax, eax
je 0x4132f5
mov rcx, rbp
call fcn.00436a00
lea rdx, str.__2d
mov r8d, eax
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x58]
call rax
mov rcx, rbp
call fcn.00436880
mov rcx, rbp
mov r15, rax
call fcn.004368c0
mov rcx, rbp
mov r12, rax
call fcn.00436a20
mov qword [rsp + 0x28], r15
mov r15, qword [rsp + 0x38]
mov r9, rax
mov r8, qword [rsp + 0x30]
mov qword [rsp + 0x20], r12
lea rdx, str.________s___50s__20s_t_s_n
mov rcx, r15
call fcn.00411270
mov rcx, rbp
call fcn.00436900
mov rcx, rbp
mov r12, rax
call fcn.00436940
mov r9, r12
mov rcx, r15
movzx r8d, al
lea rdx, str.__________feature:__42hX__20s_n_n
mov r12, rbx
call fcn.00411270
mov rcx, qword [r14 + 0xc8]
mov rdx, qword [r14 + 0xc0]
jmp 0x413049
mov dword [rsp + 0x44], 0
mov rdi, qword [rsp + 0x38]
lea rdx, str.__Decors:_n
lea rbx, str.______15s_d_n
mov rcx, rdi
call fcn.00411270
mov r9d, dword [rsp + 0x44]
mov rcx, rdi
xor edi, edi
lea r8, str.plain
lea rdx, str.______15s_d_n
call fcn.00411270
mov rsi, qword [0x00828d00]
mov rax, qword [rsp + 0xa8]
mov r9d, dword [rax + rdi]
test r9d, r9d
js 0x4131d7
mov r8, qword [rsi + rdi*2]
mov rdx, rbx
mov rcx, qword [rsp + 0x38]
call fcn.00411270
add rdi, 4
cmp rdi, 0xe0
jne 0x4131b5
mov rcx, qword [rsp + 0x38]
lea rdx, [0x007f85be]
call fcn.00411270
add qword [rsp + 0x68], 1
add qword [rsp + 0x88], 0x84
mov rax, qword [rsp + 0x68]
cmp qword [rsp + 0x90], rax
jne 0x412c95
mov r8, qword [r14 + 0xc8]
lea rdx, str.__HWIDS:_u_n
sub r8, qword [r14 + 0xc0]
mov rdi, qword [rsp + 0x38]
sar r8, 2
imul r8d, r8d, 0xaaaaaaab
mov rcx, rdi
call fcn.00411270
mov rcx, rdi
call sub.msvcrt.dll_fclose
mov rcx, qword [rsp + 0x2f8]
lea rbx, [0x008407e0]
mov qword [rsp + 0x2f0], rbx
test rcx, rcx
je 0x413270
call fcn.007da030
mov rcx, qword [rsp + 0x1c8]
mov qword [rsp + 0x1c0], rbx
test rcx, rcx
je 0x41328b
call fcn.007da030
nop
add rsp, 0x3428
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + rax*4 + 0xe0], 0
jmp 0x412f6c
lea rdx, [0x007f8561]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.USER32.dll_wsprintfA]
jmp 0x4130eb
mov r9, qword [r14 + 0xb0]
mov r8, qword [r14 + 0xa8]
jmp 0x412fd0
mov rdx, qword [r14 + 0x90]
mov rax, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rax, rdx
lea ecx, [rdi + 1]
add rdi, 1
cmp dword [rax + 0xc], ecx
mov qword [rsp + 0x78], rdi
jg 0x412f14
mov rcx, qword [r14 + 0x98]
mov r13, qword [rsp + 0x60]
jmp 0x412e7b
mov rdi, qword [rsp + 0x30]
mov rcx, rdi
call sub.msvcrt.dll_strcpy
mov rax, rdi
mov ecx, dword [rax]
add rax, 4
lea edx, [rcx - 0x1010101]
not ecx
and edx, ecx
and edx, 0x80808080
je 0x413370
mov ecx, edx
mov r9d, 0x2e
shr ecx, 0x10
test edx, 0x8080
cmove edx, ecx
lea rcx, [rax + 2]
mov edi, edx
cmove rax, rcx
add dil, dl
mov rdi, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x78]
sbb rax, 3
sub rax, rdi
mov word [rdi + rax], r9w
mov edx, dword [rsi + rdx*4]
lea rcx, [rdi + rax + 1]
add rdx, rbx
call sub.msvcrt.dll_strcpy
jmp 0x412f43
mov ecx, dword [rsp + 0x80]
test ecx, ecx
jle 0x4133ff
mov r8, qword [rsp + 0x30]
lea rdx, str._____s__n
mov ebx, 1
mov rcx, qword [rsp + 0x38]
call fcn.00411270
jmp 0x412f6e
mov ebx, 1
jmp 0x412f6e
add rax, qword [r14 + 0x110]
lea r8, str.driverpackagetype
mov rcx, qword [rsp + 0x38]
lea rdx, str.______28s_s_n
mov r9, rax
call fcn.00411270
mov eax, dword [rbx + 0x5c]
test eax, eax
je 0x412e15
add rax, qword [r14 + 0x110]
lea rdx, [0x007f848b]
mov rcx, qword [rsp + 0x38]
mov r8, rax
call fcn.00411270
jmp 0x412e15
add rax, qword [r14 + 0x110]
lea r8, str.driverpackagedisplayname
mov rcx, qword [rsp + 0x38]
lea rdx, str.______28s_s_n
mov r9, rax
call fcn.00411270
mov eax, dword [rbx + 0x58]
test eax, eax
je 0x412e0a
add rax, qword [r14 + 0x110]
lea rdx, [0x007f848b]
mov rcx, qword [rsp + 0x38]
mov r8, rax
call fcn.00411270
jmp 0x412e0a
add rax, qword [r14 + 0x110]
lea r8, str.driverver
mov rcx, qword [rsp + 0x38]
lea rdx, str.______28s_s_n
mov r9, rax
call fcn.00411270
mov eax, dword [rbx + 0x54]
test eax, eax
je 0x412dff
add rax, qword [r14 + 0x110]
lea rdx, [0x007f848b]
mov rcx, qword [rsp + 0x38]
mov r8, rax
call fcn.00411270
jmp 0x412dff
add rax, qword [r14 + 0x110]
lea r8, str.catalogfile.ntamd64
mov rcx, qword [rsp + 0x38]
lea rdx, str.______28s_s_n
mov r9, rax
call fcn.00411270
mov eax, dword [rbx + 0x50]
test eax, eax
je 0x412df4
add rax, qword [r14 + 0x110]
lea rdx, [0x007f848b]
mov rcx, qword [rsp + 0x38]
mov r8, rax
call fcn.00411270
jmp 0x412df4
add rax, qword [r14 + 0x110]
lea r8, str.catalogfile.ntia64
mov rcx, qword [rsp + 0x38]
lea rdx, str.______28s_s_n
mov r9, rax
call fcn.00411270
mov eax, dword [rbx + 0x4c]
test eax, eax
je 0x412de9
add rax, qword [r14 + 0x110]
lea rdx, [0x007f848b]
mov rcx, qword [rsp + 0x38]
mov r8, rax
call fcn.00411270
jmp 0x412de9
add rax, qword [r14 + 0x110]
lea r8, str.catalogfile.ntx86
mov rcx, qword [rsp + 0x38]
lea rdx, str.______28s_s_n
mov r9, rax
call fcn.00411270
mov eax, dword [rbx + 0x48]
test eax, eax
je 0x412dde
add rax, qword [r14 + 0x110]
lea rdx, [0x007f848b]
mov rcx, qword [rsp + 0x38]
mov r8, rax
call fcn.00411270
jmp 0x412dde
add rax, qword [r14 + 0x110]
lea r8, str.catalogfile.nt
mov rcx, qword [rsp + 0x38]
lea rdx, str.______28s_s_n
mov r9, rax
call fcn.00411270
mov eax, dword [rbx + 0x44]
test eax, eax
je 0x412dd3
add rax, qword [r14 + 0x110]
lea rdx, [0x007f848b]
mov rcx, qword [rsp + 0x38]
mov r8, rax
call fcn.00411270
jmp 0x412dd3
add rax, qword [r14 + 0x110]
lea r8, str.catalogfile
mov rcx, qword [rsp + 0x38]
lea rdx, str.______28s_s_n
mov r9, rax
call fcn.00411270
mov eax, dword [rbx + 0x40]
test eax, eax
je 0x412dc8
add rax, qword [r14 + 0x110]
lea rdx, [0x007f848b]
mov rcx, qword [rsp + 0x38]
mov r8, rax
call fcn.00411270
jmp 0x412dc8
add rax, qword [r14 + 0x110]
lea r8, str.provider
mov rcx, qword [rsp + 0x38]
lea rdx, str.______28s_s_n
mov r9, rax
call fcn.00411270
mov eax, dword [rbx + 0x3c]
test eax, eax
je 0x412dbd
add rax, qword [r14 + 0x110]
lea rdx, [0x007f848b]
mov rcx, qword [rsp + 0x38]
mov r8, rax
call fcn.00411270
jmp 0x412dbd
add rax, qword [r14 + 0x110]
lea r8, str.class
mov rcx, qword [rsp + 0x38]
lea rdx, str.______28s_s_n
mov r9, rax
call fcn.00411270
mov eax, dword [rbx + 0x38]
test eax, eax
je 0x412db2
add rax, qword [r14 + 0x110]
lea rdx, [0x007f848b]
mov rcx, qword [rsp + 0x38]
mov r8, rax
call fcn.00411270
jmp 0x412db2
add rax, qword [r14 + 0x110]
lea r8, str.classguid
mov rcx, qword [rsp + 0x38]
lea rdx, str.______28s_s_n
mov r9, rax
call fcn.00411270
mov eax, dword [rbx + 0x34]
test eax, eax
je 0x412da7
add rax, qword [r14 + 0x110]
lea rdx, [0x007f848b]
mov rcx, qword [rsp + 0x38]
mov r8, rax
call fcn.00411270
jmp 0x412da7