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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov rax, qword [0x18010e350]
xor rax, rsp
mov qword [rsp + 0xb0], rax
xor esi, esi
test rcx, rcx
mov ebp, r9d
mov eax, esi
setne al
mov rbx, r8
test eax, eax
mov r12, rdx
mov rdi, rcx
je 0x180025070
xor eax, eax
lea r8d, [rsi + 0x30]
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
mov r11d, dword [rsp + 0x74]
mov eax, esi
test r11b, 0xee
setne al
test r11d, 0x101
jne 0x180025070
test eax, eax
je 0x180025070
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x68]
lea rax, [rdi + 1]
add rdx, rcx
cmp rdx, rax
jb 0x180025070
mov ecx, dword [rdi]
test cl, 8
je 0x180024e12
lea eax, [rsi + 0xd]
jmp 0x180025088
mov r14d, dword [rsp + 0x120]
and ecx, 0xffffff0f
mov dword [rdi + 0x64], esi
mov eax, r14d
mov dword [rdi + 0x80], esi
mov dword [rdi + 0x68], esi
and eax, 0xffffffef
mov dword [rdi + 0x1c], esi
mov dword [rdi], ecx
sub eax, 1
je 0x180024f89
sub eax, 1
je 0x180024e8c
cmp eax, 6
je 0x180024e75
test rbx, rbx
je 0x180025070
test ebp, ebp
je 0x180025070
or ecx, 0xa0
mov qword [rdi + 0x70], rbx
mov dword [rdi + 0x78], ebp
mov dword [rdi + 0x60], ebp
mov dword [rdi + 0x7c], esi
mov dword [rdi], ecx
jmp 0x180024f0b
mov qword [rdi + 0x70], rsi
mov dword [rdi + 0x60], esi
mov dword [rsp + 0xa8], 0x41c00010
jmp 0x180024f2c
test rbx, rbx
je 0x180025070
mov qword [rsp + 0x30], rsi
mov ebp, 1
xor r9d, r9d
test r14b, 0x10
mov dword [rsp + 0x28], esi
mov edx, 0x80000000
mov r8d, ebp
mov rcx, rbx
mov dword [rsp + 0x20], 3
je 0x180024ec7
call qword [sym.imp.KERNEL32.dll_CreateFileW]
jmp 0x180024ecd
call qword [sym.imp.KERNEL32.dll_CreateFileA]
cmp rax, 0xffffffffffffffff
mov qword [rdi + 0x70], rax
je 0x180024fbc
lea r8, [rsp + 0x98]
xor edx, edx
mov rcx, rdi
call fcn.18001f140
test eax, eax
mov ebp, eax
jne 0x180024f78
or dword [rdi], 0x40
test r12, r12
jne 0x180024f02
mov r12, rbx
test byte [rdi], 0x20
jne 0x180024fc3
mov edx, r14d
mov rcx, r12
mov ebx, 0x81800000
call fcn.18001f390
mov ecx, 0x81c00000
test eax, eax
cmove ebx, ecx
mov dword [rsp + 0xa8], ebx
lea r8, [rsp + 0x44]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x98]
call fcn.18001e130
mov r15d, dword [rsp + 0x98]
movzx r13d, word [rsp + 0x40]
mov eax, r15d
shl r13d, 0x10
mov dword [rsp + 0x4c], eax
mov dword [rsp + 0x9c], eax
mov dword [rsp + 0x48], eax
mov dword [rsp + 0xa0], eax
movzx eax, word [rsp + 0x44]
or r13d, eax
jmp 0x180024fe9
mov rcx, qword [rdi + 0x70]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebp
jmp 0x180025088
test rbx, rbx
mov qword [rdi + 0x70], rbx
je 0x180025070
cmp rbx, 0xffffffffffffffff
je 0x180025070
lea r8, [rsp + 0x98]
mov edx, ebp
mov rcx, rdi
call fcn.18001f140
test eax, eax
mov ebp, eax
je 0x180024f02
mov eax, ebp
jmp 0x180025088
mov eax, dword [rsp + 0xa0]
mov r13d, dword [rsp + 0xa4]
mov r15d, dword [rsp + 0x98]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x9c]
mov dword [rsp + 0x4c], eax
mov edx, 0x159
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
test rax, rax
mov rbx, rax
jne 0x180025004
lea r13d, [rax + 2]
jmp 0x180025076
xor edx, edx
mov r8d, 0x150
mov rcx, rax
call fcn.180086e90
test r14b, 0x10
lea rbp, [rbx + 0x40]
je 0x18002504b
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
or r9d, 0xffffffff
mov r8, r12
xor edx, edx
mov ecx, 0xfde9
mov dword [rsp + 0x28], 0x104
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
jmp 0x180025060
mov rdx, r12
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, esi
mov dword [rbx + 0x14], eax
jne 0x1800250b3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov r13d, 9
test byte [rdi], 0x40
je 0x180025085
mov rcx, qword [rdi + 0x70]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, r13d
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.180086e60
mov rbx, qword [rsp + 0x118]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp byte [rbp], sil
je 0x1800250d4
nop
nop
cmp byte [rbp], 0x5c
jne 0x1800250ca
mov byte [rbp], 0x2f
add rbp, 1
cmp byte [rbp], sil
jne 0x1800250c0
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0xa8]
mov dword [rbx + 4], r13d
mov dword [rbx + 0x28], eax
mov word [rbx], 8
mov dword [rbx + 0x1c], 9
lea rax, [rsp + 0x80]
mov r13d, 0x11
xor bpl, bpl
mov qword [rbx + 0x30], rax
mov dword [rbx + 0x18], r13d
lea rax, [rbx + 0x150]
mov qword [rbx + 0x38], rax
movzx eax, byte [rsp + 0x9c]
mov byte [rsp + 0x80], 0x55
mov byte [rsp + 0x85], al
mov byte [rsp + 0x81], 0x54
mov byte [rsp + 0x82], SafeArrayGetDim
mov byte [rsp + 0x83], sil
mov byte [rsp + 0x84], 7
mov eax, ecx
sar eax, 8
mov r12d, esi
mov dword [rsp + 0x44], esi
mov byte [rsp + 0x86], al
mov eax, ecx
sar ecx, 0x18
sar eax, 0x10
mov byte [rsp + 0x88], cl
mov ecx, dword [rsp + 0x48]
mov byte [rsp + 0x87], al
movzx eax, byte [rsp + 0x98]
mov byte [rsp + 0x40], bpl
mov byte [rsp + 0x89], al
mov eax, r15d
sar eax, 8
mov byte [rsp + 0x8a], al
mov eax, r15d
sar r15d, 0x18
sar eax, 0x10
mov byte [rsp + 0x8c], r15b
mov byte [rsp + 0x8b], al
movzx eax, byte [rsp + 0xa0]
mov byte [rsp + 0x8d], al
mov eax, ecx
sar eax, 8
mov byte [rsp + 0x8e], al
mov eax, ecx
sar ecx, 0x18
mov byte [rsp + 0x90], cl
sar eax, 0x10
mov byte [rsp + 0x8f], al
mov rcx, qword [rbx + 0x30]
mov rdx, qword [rbx + 0x38]
mov rax, qword [rcx]
mov qword [rdx], rax
movzx eax, byte [rcx + 8]
mov byte [rdx + 8], al
mov rax, qword [rbx + 0x38]
mov byte [rax + 2], 5
mov rax, qword [rbx + 0x38]
mov byte [rax + 4], 1
bt dword [rdi], 0x1f
jae 0x180025215
mov dword [rbx + 0x18], esi
jmp 0x180025249
test r14b, 8
je 0x180025233
mov edx, dword [rbx + 0x14]
lea eax, [rdx - 1]
cmp byte [rax + rbx + 0x40], 0x2f
je 0x180025251
mov byte [rdx + rbx + 0x40], 0x2f
add dword [rbx + 0x14], 1
jmp 0x180025251
cmp qword [rdi + 0x10], rsi
je 0x180025249
mov r12d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov word [rbx], 9
mov dword [rsp + 0x44], r12d
mov bpl, 8
mov byte [rsp + 0x40], bpl
test bpl, bpl
movzx eax, word [rbx]
movzx r14d, bpl
mov word [rbx + 0x24], ax
mov word [rbx + 2], r14w
jne 0x180025274
mov eax, dword [rdi + 0x60]
cmp eax, 0xffffffff
je 0x180025274
add eax, r12d
mov dword [rbx + 0xc], eax
mov eax, dword [rdi + 0x60]
mov rdx, rdi
mov rcx, rbx
mov dword [rbx + 0x10], eax
mov eax, dword [rdi + 0x1c]
add eax, dword [rdi + 0x18]
mov dword [rbx + 0x2c], eax
mov dword [rdi + 0x20], esi
call fcn.180022060
mov r11d, dword [rdi + 0x20]
test r11d, r11d
jne 0x1800253fb
bt dword [rdi], 0x1f
mov eax, dword [rbx + 0x14]
jae 0x1800252b2
add eax, 0xb
mov dword [rdi + 0x18], eax
jmp 0x180025375
mov ecx, dword [rbx + 0x18]
lea ecx, [rcx + rax + 0x1e]
add dword [rdi + 0x18], ecx
test r12d, r12d
je 0x180025375
mov r11, qword [rdi + 0x10]
mov dword [rdi + 0x38], 0x12345678
mov dword [rdi + 0x3c], 0x23456789
test r11, r11
mov dword [rdi + 0x40], 0x34567890
je 0x1800252fa
movzx edx, byte [r11]
test dl, dl
je 0x1800252fa
lea rcx, [rdi + 0x38]
call fcn.18001edf0
add r11, 1
jne 0x1800252e3
mov rbp, rsi
nop
call fcn.18008cee0
add rbp, 1
sar eax, 7
cmp rbp, 0xc
mov byte [rsp + rbp + 0x97], al
jl 0x180025300
movzx eax, byte [rbx + 5]
mov byte [rsp + 0xa3], al
movzx edx, byte [rsp + rsi + 0x98]
lea rcx, [rdi + 0x38]
call fcn.18001ee70
add rsi, 1
cmp rsi, 0xc
mov byte [rsp + rsi + 0x97], al
jl 0x180025324
lea rdx, [rsp + 0x98]
mov r8d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov rcx, rdi
call fcn.18001ef80
mov r11d, dword [rdi + 0x20]
test r11d, r11d
jne 0x1800253fb
add dword [rdi + 0x18], 0xc
movzx ebp, byte [rsp + 0x40]
or dword [rdi], 0x10
cmp qword [rdi + 0x70], 0
je 0x1800253b3
cmp bpl, 8
mov rcx, rdi
jne 0x18002538f
mov rdx, rbx
call fcn.180024b90
jmp 0x180025394
call fcn.18001f2e0
mov r11d, dword [rdi + 0x20]
test r11d, r11d
jne 0x1800253fb
and dword [rdi], 0xffffffef
mov rcx, rdi
call fcn.18001f290
mov r11d, dword [rdi + 0x80]
add dword [rdi + 0x18], r11d
mov eax, dword [rdi]
bt eax, 0x1f
jae 0x18002540c
mov edx, dword [rdi + 0x68]
or eax, 8
mov rcx, rdi
mov dword [rdi], eax
call fcn.18001eea0
movzx edx, word [rdi + 0x6a]
mov rcx, rdi
call fcn.18001eea0
mov edx, dword [rdi + 0x64]
mov rcx, rdi
call fcn.18001eea0
movzx edx, word [rdi + 0x66]
mov rcx, rdi
call fcn.18001eea0
mov r11d, dword [rdi + 0x20]
test r11d, r11d
je 0x180025527
mov r13d, r11d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x180025076
mov eax, dword [rdi + 0x80]
mov r8d, dword [rsp + 0x44]
lea ecx, [r8 + rax]
mov eax, dword [rdi + 0x68]
cmp dword [rbx + 0xc], ecx
mov dword [rbx + 8], eax
mov eax, dword [rdi + 0x80]
lea ecx, [r8 + rax]
sete dl
mov dword [rbx + 0xc], ecx
mov eax, dword [rdi + 0x60]
mov dword [rbx + 0x10], eax
test byte [rdi], 4
je 0x1800254ab
test r8d, r8d
jne 0x1800254ab
movzx eax, word [rbx]
mov word [rbx + 2], r14w
test al, 1
jne 0x180025457
and ax, 0xfff7
mov word [rbx], ax
movzx eax, word [rbx]
mov edx, dword [rbx + 0x2c]
mov rcx, rdi
mov word [rbx + 0x24], ax
sub edx, dword [rdi + 0x1c]
call fcn.18001f0d0
test eax, eax
je 0x180025497
mov rdx, rdi
mov rcx, rbx
call fcn.180022060
mov r11d, dword [rdi + 0x20]
test r11d, r11d
jne 0x1800253fb
mov edx, dword [rdi + 0x18]
mov rcx, rdi
call fcn.18001f0d0
test eax, eax
jne 0x1800254e6
mov rcx, rbx
mov r13d, reloc.OLEAUT32.dll_SafeArrayGetDim
call qword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x180025076
cmp word [rbx + 2], r14w
jne 0x1800253fe
test bpl, bpl
jne 0x1800254c3
test dl, dl
je 0x1800253fe
mov rdx, rdi
mov rcx, rbx
call fcn.180021f50
mov r11d, dword [rdi + 0x20]
test r11d, r11d
jne 0x1800253fb
add dword [rdi + 0x18], 0x10
movzx eax, word [rbx + 0x24]
mov word [rbx], ax
mov rcx, qword [rdi + 0x58]
test rcx, rcx
jne 0x1800254fa
mov qword [rdi + 0x58], rbx
xor eax, eax
jmp 0x180025088
lea rax, [rcx + 0x148]
cmp qword [rax], 0
je 0x180025520
nop
nop
nop
mov rcx, qword [rax]
lea rax, [rcx + 0x148]
cmp qword [rax], 0
jne 0x180025510
mov qword [rcx + 0x148], rbx
xor eax, eax
jmp 0x180025088