Function at 0x5418a0
Capabilities:
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1b8
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x13c]
call sym.system::modules::vznurdtbjjfpshkv::h79d670bcbb635979
movzx eax, byte [0x5da16c]
mov eax, dword [0x5da100]
test eax, eax
jne 0x5418e1
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x542422
mov dword [0x5da100], eax
push 0x1b
push 0
push eax
call sub.kernel32.dll_HeapAlloc
test eax, eax
je 0x542422
mov dword [eax + 0x17], 0x3a646564
mov esi, eax
mov dword [eax + 0x14], 0x64646120
mov dword [eax + 0x10], 0x676e6965
mov dword [eax + 0xc], 0x62207369
mov dword [eax + 8], 0x206e6f69
mov dword [eax + 4], 0x74616d72
mov dword [eax], 0x6f666e49
call dbg.now
mov ebx, dword [esp + 0x144]
mov dword [esp + 0x158], esi
mov dword [esp + 0x15c], 0x1b
mov dword [esp + 0x160], 0x1b
mov dword [esp + 0x14c], edx
mov dword [esp + 0x148], eax
mov dword [esp + 0x150], ecx
mov edx, dword [esp + 0x140]
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0x14], 4
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
test ebx, ebx
mov dword [esp + 0x20], edx
je 0x5419ea
shl ebx, 3
xor edx, edx
mov eax, 4
mov dword [esp + 8], ecx
jmp 0x5419c5
mov dword [eax + edx*8], esi
mov dword [eax + edx*8 + 4], edi
mov edx, dword [esp + 0x1c]
inc edx
add ebx, 0xfffffff8
mov dword [esp + 0x1c], edx
je 0x5419ea
mov esi, dword [ecx + ebx - 8]
mov edi, dword [ecx + ebx - 4]
cmp edx, dword [esp + 0x18]
jne 0x5419b0
lea ecx, [esp + 0x14]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h097fe01122eb0200
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x5419b0
cmp dword [esp + 0x20], 0
je 0x5419ff
push ecx
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea edi, [esp + 0x4c]
mov dword [esp + 0x4c], 0
push edi
push 0
push 0
push 0x565000
call sub.shell32.dll_SHGetKnownFolderPath
test eax, eax
mov eax, dword [esp + 0x4c]
jne 0x542433
push eax
call sub.kernel32.dll_lstrlenW
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x30]
push eax
call dbg.from_wide
add esp, 4
push dword [esp + 0x4c]
call sub.ole32.dll_CoTaskMemFree
cmp byte [esp + 0x3c], 2
je 0x54243e
mov dword [esp + 0x4c], 0
push edi
push 0
push 0
push 0x564f80
call sub.shell32.dll_SHGetKnownFolderPath
test eax, eax
mov eax, dword [esp + 0x4c]
je 0x541a80
push eax
call sub.ole32.dll_CoTaskMemFree
mov byte [esp + 0x174], 2
jmp 0x541aa3
push eax
call sub.kernel32.dll_lstrlenW
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x168]
push eax
call dbg.from_wide
add esp, 4
push dword [esp + 0x4c]
call sub.ole32.dll_CoTaskMemFree
mov dword [esp + 0x4c], 0
push edi
push 0
push 0
push 0x564f90
call sub.shell32.dll_SHGetKnownFolderPath
test eax, eax
mov eax, dword [esp + 0x4c]
je 0x541ad2
push eax
call sub.ole32.dll_CoTaskMemFree
mov byte [esp + 0x184], 2
jmp 0x541af7
lea esi, [esp + 0x178]
push eax
call sub.kernel32.dll_lstrlenW
mov edx, dword [esp + 0x4c]
mov ecx, esi
push eax
call dbg.from_wide
add esp, 4
push dword [esp + 0x4c]
call sub.ole32.dll_CoTaskMemFree
mov dword [esp + 0x4c], 0
push edi
push 0
push 0
push 0x564fa0
call sub.shell32.dll_SHGetKnownFolderPath
test eax, eax
mov eax, dword [esp + 0x4c]
je 0x541b26
push eax
call sub.ole32.dll_CoTaskMemFree
mov byte [esp + 0x194], 2
jmp 0x541b4b
lea esi, [esp + 0x188]
push eax
call sub.kernel32.dll_lstrlenW
mov edx, dword [esp + 0x4c]
mov ecx, esi
push eax
call dbg.from_wide
add esp, 4
push dword [esp + 0x4c]
call sub.ole32.dll_CoTaskMemFree
mov dword [esp + 0x4c], 0
push edi
push 0
push 0
push 0x564fb0
call sub.shell32.dll_SHGetKnownFolderPath
test eax, eax
mov eax, dword [esp + 0x4c]
je 0x541b7a
push eax
call sub.ole32.dll_CoTaskMemFree
mov byte [esp + 0x1a4], 2
jmp 0x541b9f
lea esi, [esp + 0x198]
push eax
call sub.kernel32.dll_lstrlenW
mov edx, dword [esp + 0x4c]
mov ecx, esi
push eax
call dbg.from_wide
add esp, 4
push dword [esp + 0x4c]
call sub.ole32.dll_CoTaskMemFree
lea edi, [esp + 4]
mov dword [esp + 4], 0
push edi
push 0
push 0
push 0x564fc0
call sub.shell32.dll_SHGetKnownFolderPath
test eax, eax
mov eax, dword [esp + 4]
je 0x541bd2
push eax
call sub.ole32.dll_CoTaskMemFree
mov byte [esp + 0xa8], 2
jmp 0x541bf7
lea esi, [esp + 0x9c]
push eax
call sub.kernel32.dll_lstrlenW
mov edx, dword [esp + 4]
mov ecx, esi
push eax
call dbg.from_wide
add esp, 4
push dword [esp + 4]
call sub.ole32.dll_CoTaskMemFree
mov dword [esp + 4], 0
push edi
push 0
push 0
push 0x564fd0
call sub.shell32.dll_SHGetKnownFolderPath
test eax, eax
mov eax, dword [esp + 4]
je 0x541c26
push eax
call sub.ole32.dll_CoTaskMemFree
mov byte [esp + 0xb8], 2
jmp 0x541c4b
lea esi, [esp + 0xac]
push eax
call sub.kernel32.dll_lstrlenW
mov edx, dword [esp + 4]
mov ecx, esi
push eax
call dbg.from_wide
add esp, 4
push dword [esp + 4]
call sub.ole32.dll_CoTaskMemFree
mov dword [esp + 4], 0
push edi
push 0
push 0
push 0x564fe0
call sub.shell32.dll_SHGetKnownFolderPath
test eax, eax
mov eax, dword [esp + 4]
je 0x541c7a
push eax
call sub.ole32.dll_CoTaskMemFree
mov byte [esp + 0xc8], 2
jmp 0x541c9f
lea esi, [esp + 0xbc]
push eax
call sub.kernel32.dll_lstrlenW
mov edx, dword [esp + 4]
mov ecx, esi
push eax
call dbg.from_wide
add esp, 4
push dword [esp + 4]
call sub.ole32.dll_CoTaskMemFree
mov dword [esp + 4], 0
push edi
push 0
push 0
push 0x564ff0
call sub.shell32.dll_SHGetKnownFolderPath
test eax, eax
mov eax, dword [esp + 4]
je 0x541cce
push eax
call sub.ole32.dll_CoTaskMemFree
mov byte [esp + 0xd8], 2
jmp 0x541cf3
lea esi, [esp + 0xcc]
push eax
call sub.kernel32.dll_lstrlenW
mov edx, dword [esp + 4]
mov ecx, esi
push eax
call dbg.from_wide
add esp, 4
push dword [esp + 4]
call sub.ole32.dll_CoTaskMemFree
lea edi, [esp + 0x4c]
lea esi, [esp + 0x168]
mov ecx, 0x13
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x98], 2
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0xe4], xmm1
movsd qword [esp + 0xdc], xmm0
cmp byte [esp + 0xe8], 2
je 0x542446
cmp byte [esp + 0x68], 2
je 0x542457
movzx edx, byte [esp + 0xa8]
mov edi, dword [esp + 0x50]
mov ah, byte [esp + 0x98]
mov al, byte [esp + 0x58]
mov esi, dword [esp + 0x64]
movzx ecx, byte [esp + 0x88]
mov byte [esp + 0x10], dl
movzx edx, byte [esp + 0xc8]
mov dword [esp + 0x10c], edi
mov edi, dword [esp + 0x60]
mov byte [esp + 0xf], ah
mov ah, byte [esp + 0xb8]
mov byte [esp + 0xd], al
mov al, byte [esp + 0x78]
test esi, esi
mov byte [esp + 0xe], cl
mov byte [esp + 0x12], dl
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x12c], edi
mov edi, dword [esp + 0x70]
mov byte [esp + 0x11], ah
mov ah, byte [esp + 0xd8]
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x130], edi
mov edi, dword [esp + 0x7c]
mov byte [esp + 0x13], ah
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0xf0], edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0xf4], edi
mov edi, dword [esp + 0x9c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0xf8], edi
mov edi, dword [esp + 0xac]
mov dword [esp + 0x110], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0xfc], edi
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x114], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x100], edi
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x118], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x104], edi
mov edi, dword [esp + 0xdc]
mov dword [esp + 0x11c], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x108], edi
mov dword [esp + 0x120], edx
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x128], edx
je 0x541f16
mov edi, dword [esp + 0x28]
lea ecx, [edi + esi]
jmp 0x541ec6
add edi, 2
cmp edx, ecx
cmovne edx, edi
nop word cs:[eax + eax]
nop dword [eax]
cmp edx, ecx
mov edi, edx
je 0x541f16
mov ah, byte [edi]
lea edx, [edi + 1]
test ah, ah
jns 0x541ec0
cmp ah, 0xe0
jb 0x541eab
cmp ah, 0xed
jne 0x541ef5
cmp edx, ecx
je 0x541f16
lea edx, [edi + 2]
cmp edx, ecx
je 0x541f16
cmp byte [edi + 1], 0xa0
jae 0x542400
add edi, 3
mov edx, edi
jmp 0x541ec0
add edi, 2
cmp edx, ecx
cmove edi, edx
xor edx, edx
cmp edi, ecx
setne dl
add edx, edi
cmp ah, 0xf0
jb 0x541ec0
xor ebx, ebx
cmp edx, ecx
setne bl
add edx, ebx
jmp 0x541ec0
cmp al, 2
je 0x542468
cmp dword [esp + 8], 0
je 0x541f97
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 8]
add eax, edx
jmp 0x541f46
add edx, 2
cmp ecx, eax
cmovne ecx, edx
nop dword [eax]
cmp ecx, eax
mov edx, ecx
je 0x541f97
movzx ebx, byte [edx]
lea ecx, [edx + 1]
test bl, bl
jns 0x541f40
cmp bl, 0xe0
jb 0x541f31
cmp bl, 0xed
jne 0x541f76
cmp ecx, eax
je 0x541f97
lea ecx, [edx + 2]
cmp ecx, eax
je 0x541f97
cmp byte [edx + 1], 0xa0
jae 0x542411
add edx, 3
mov ecx, edx
jmp 0x541f40
add edx, 2
cmp ecx, eax
cmove edx, ecx
xor ecx, ecx
cmp edx, eax
setne cl
add ecx, edx
cmp bl, 0xf0
jb 0x541f40
xor edx, edx
cmp ecx, eax
setne dl
add ecx, edx
jmp 0x541f40
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
cmp edi, edx
jne 0x541fb6
lea ecx, [esp + 0x14]
mov edx, edi
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h097fe01122eb0200
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov dword [ecx + edi*8], eax
mov dword [ecx + edi*8 + 4], esi
inc edi
cmp edi, edx
mov dword [esp + 0x1c], edi
jne 0x541fe9
lea ecx, [esp + 0x14]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h097fe01122eb0200
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], eax
jmp 0x541fed
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 8]
mov dword [esp + 0x44], ecx
mov dword [ecx + edi*8], eax
mov dword [ecx + edi*8 + 4], edx
mov ecx, edi
inc ecx
mov dword [esp + 0x1c], ecx
jne 0x5421bb
cmp dword [esp + 0x40], 0
je 0x542025
push dword [esp + 0x44]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x128], 0
je 0x542043
push dword [esp + 0x108]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp byte [esp + 0xd], 2
je 0x542068
cmp dword [esp + 0x10c], 0
je 0x542068
push dword [esp + 0xec]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x12c], 0
je 0x542083
push dword [esp + 0x28]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x130], 0
je 0x54209e
push dword [esp + 0x24]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp byte [esp + 0xe], 2
je 0x5420c3
cmp dword [esp + 0x110], 0
je 0x5420c3
push dword [esp + 0xf0]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp byte [esp + 0xf], 2
je 0x5420e8
cmp dword [esp + 0x114], 0
je 0x5420e8
push dword [esp + 0xf4]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp byte [esp + 0x10], 2
je 0x54210d
cmp dword [esp + 0x118], 0
je 0x54210d
push dword [esp + 0xf8]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp byte [esp + 0x11], 2
je 0x542132
cmp dword [esp + 0x11c], 0
je 0x542132
push dword [esp + 0xfc]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp byte [esp + 0x12], 2
je 0x542157
cmp dword [esp + 0x120], 0
je 0x542157
push dword [esp + 0x100]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp byte [esp + 0x13], 2
je 0x54217c
cmp dword [esp + 0x124], 0
je 0x54217c
push dword [esp + 0x104]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x15c], 0
je 0x54219a
push dword [esp + 0x158]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x48]
cmp dword [eax + 4], 0
je 0x5421b3
push dword [eax]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x44]
shl edi, 3
mov dword [esp + 8], edi
nop word cs:[eax + eax]
mov ebx, dword [eax]
mov edi, dword [eax + 4]
lea ecx, [esp + 0x148]
mov dword [esp + 0x138], eax
call sym.__LT_progressbars..SpinnerProgressBar_u20_as_u20_progressbars..ProgressBar_GT_::update::h44ba8d30818f7bb8
mov eax, dword [esp + 0x48]
lea esi, [esp + 0x168]
lea ecx, [esp + 0x30]
lea edx, [esp + 0x4c]
mov dword [esp + str.MyFile_waifu.club], 0x5bd830
mov dword [esp + 0x16c], sym.__LT__RF_T_u20_as_u20_core..fmt..Display_GT_::fmt::h03504413dc392ca9
mov dword [esp + 0x4c], 0x5bed98
mov dword [esp + 0x50], 3
mov dword [esp + 0x5c], 0
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], 2
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], sym.__LT_alloc..string..String_u20_as_u20_core..fmt..Display_GT_::fmt::hd657006bffdcad24
call dbg.format_inner
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x20], edx
mov dword [esp + 0x134], ecx
mov dword [esp + 0x2c], eax
mov ecx, esi
mov edx, ebx
push 0x19
push str.important_information.hta_nAdd_information._n
push edi
call sym.std::path::Path::_join::hd6feba9117964eb6
add esp, 0xc
mov esi, dword [esp + 0x168]
movaps xmm0, xmmword [0x560750]
lea eax, [esp + 0x68]
lea ecx, [esp + 0x30]
mov word [eax + 4], 0
mov dword [eax], 0
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 0
movups xmmword [esp + 0x54], xmm0
mov dword [esp + 0x64], 0
mov byte [esp + 0x69], 1
mov word [esp + 0x6b], 0x101
mov edx, esi
push eax
push dword [esp + 0x174]
call dbg.open
add esp, 8
cmp byte [esp + 0x30], 4
mov ebx, 4
je 0x5422e4
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x16c], 0
je 0x542300
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp bl, 4
je 0x542380
movzx eax, bl
cmp eax, 3
jne 0x542343
mov esi, dword [edi]
mov ebx, dword [edi + 4]
push esi
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x542335
cmp dword [ebx + 8], 9
jb 0x542327
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
push edi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x20], 0
je 0x54235b
push dword [esp + 0x2c]
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 8]
test eax, eax
je 0x54200d
add eax, 0xfffffff8
mov dword [esp + 8], eax
mov eax, dword [esp + 0x138]
add eax, 8
jmp 0x5421d0
mov dword [esp + 4], edi
lea ecx, [esp + 0x4c]
lea edx, [esp + 4]
push dword [esp + 0x134]
push dword [esp + 0x30]
call sym.std::io::Write::write_all::h54592d857a11b3ae
add esp, 8
movzx eax, byte [esp + 0x4c]
cmp al, 4
je 0x5423ea
cmp al, 3
jne 0x5423ea
mov esi, dword [esp + 0x50]
mov edi, dword [esi]
mov ebx, dword [esi + 4]
push edi
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x5423d8
cmp dword [ebx + 8], 9
jb 0x5423ca
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
push esi
push 0
push dword [0x5da100]
call sub.kernel32.dll_HeapFree
mov edi, dword [esp + 4]
push edi
call sub.kernel32.dll_CloseHandle
cmp dword [esp + 0x20], 0
jne 0x54234a
jmp 0x54235b
mov ecx, str.called__Option::unwrap____on_a__None__valueC:UsersTEST.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.5_srcwin.rs
mov edx, 0x2b
push 0x5bedd0
jmp 0x542477
mov ecx, str.called__Option::unwrap____on_a__None__valueC:UsersTEST.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.5_srcwin.rs
mov edx, 0x2b
push 0x5bedb0
jmp 0x542477
mov ecx, 1
mov edx, 0x1b
call dbg.handle_alloc_error
ud2
push eax
call sub.ole32.dll_CoTaskMemFree
mov byte [esp + 0x3c], 2
mov byte [esp + 0xe8], 2
mov ecx, str.called__Option::unwrap____on_a__None__valueC:UsersTEST.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.5_srcwin.rs
mov edx, 0x2b
push 0x5bedf0
jmp 0x542477
mov ecx, str.called__Option::unwrap____on_a__None__valueC:UsersTEST.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.5_srcwin.rs
mov edx, 0x2b
push 0x5bede0
jmp 0x542477
mov ecx, str.called__Option::unwrap____on_a__None__valueC:UsersTEST.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.5_srcwin.rs
mov edx, 0x2b
push 0x5bedc0
call dbg.panic
add esp, 4
ud2