Function at 0x443700
Capabilities:
Get common file path
Set current directory

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x6ac
mov eax, dword [0x46700c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
push edi
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], edi
mov ebx, 0x80070002
call fcn.00440bc3
test eax, eax
je 0x443a1e
push edi
push 0x41e1b8
xor eax, eax
push 4
pop esi
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
mov ebx, eax
call fcn.00440126
mov eax, dword [ebp + 0xc]
pop ecx
pop ecx
xor ecx, ecx
push 2
inc ecx
pop esi
inc ecx
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], ecx
test eax, eax
je 0x443862
push 0x208
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x443a05
push 0x41e1d4
mov eax, 0x208
lea edi, reloc.ADVAPI32.dll_TraceMessage
call fcn.0042c8f1
mov eax, edi
push eax
call fcn.00440bc3
test eax, eax
je 0x443838
mov esi, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
test esi, esi
je 0x4437da
lea eax, [ebp - 0x80]
test eax, eax
je 0x4437da
push 0x5c
push esi
call dword [sym.imp.msvcrt.dll_wcsrchr]
pop ecx
pop ecx
push 0x3c
lea edx, [eax + 2]
test eax, eax
jne 0x4437cb
mov edx, esi
pop eax
lea esi, [ebp - 0x80]
call fcn.0042c88c
mov esi, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
cmp dword [ebp + 8], 0
mov eax, 0x41e1f0
jne 0x4437ea
mov eax, 0x41e1fc
push eax
mov eax, 0x208
lea edi, reloc.ADVAPI32.dll_TraceMessage
call fcn.0042c8f1
push esi
mov eax, 0x208
call fcn.0042c8f1
push 0x41e210
mov eax, 0x208
call fcn.0042c8f1
lea eax, [ebp - 0x80]
push eax
mov eax, edi
call fcn.0044318a
xor ecx, ecx
test eax, eax
setns cl
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], ecx
test ecx, ecx
jne 0x4439fd
push 2
pop esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x443850
and ebx, 0xffff
or ebx, 0x80070000
mov edi, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
push ebx
push edi
push 0x41e250
jmp 0x4439da
xor esi, esi
push esi
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], esi
call dword [sym.imp.ole32.dll_OleInitialize]
mov ebx, eax
test ebx, ebx
js 0x443a14
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x4438ce
mov edx, edi
mov eax, 0x103
lea esi, reloc.ADVAPI32.dll_TraceMessage
call fcn.0042c88c
mov eax, esi
push 0x5c
push eax
call dword [sym.imp.msvcrt.dll_wcsrchr]
pop ecx
pop ecx
test eax, eax
je 0x4438cc
xor ecx, ecx
mov word [eax], cx
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 1
xor esi, esi
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x4438d3
sub ecx, edx
sar ecx, 1
lea esi, [ecx + 5]
xor ecx, ecx
push 2
pop edx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new___unsigned_int_]
pop ecx
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
test eax, eax
je 0x443986
push esi
call fcn.004403e6
push 8
push 0
push dword [ebp - 0x6a8]
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov esi, eax
cmp esi, 0x20
jbe 0x44395a
cmp dword [ebp + 8], 0
mov ecx, 0x41e294
jne 0x443934
mov ecx, 0x41e2a8
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x443951
call eax
mov ebx, eax
xor eax, eax
test ebx, ebx
setns al
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x443979
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jne 0x44396b
push 0x57
pop ebx
test ebx, ebx
jle 0x443979
and ebx, 0xffff
or ebx, 0x80070000
push dword [ebp - 0x6a8]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
cmp dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0
je 0x44399c
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
call dword [sym.imp.ole32.dll_OleUninitialize]
cmp dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0
jne 0x443a0c
test ebx, ebx
jne 0x4439d0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x4439c9
and ebx, 0xffff
or ebx, 0x80070000
test ebx, ebx
jne 0x4439d0
mov ebx, 0x80004005
push ebx
push edi
push 0x41e2f0
push 2
pop esi
call fcn.00440126
mov ecx, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
xor eax, eax
add esp, 0xc
cmp dword [ebp + 0xc], eax
sete al
mov dword [ebp + 0xc], eax
cmp ecx, esi
jl 0x443756
jmp 0x443a48
push esi
push 0x41e214
jmp 0x443a3e
mov ebx, 0x80004005
jmp 0x443a48
push edi
push 0x41e2bc
jmp 0x443a3e
push ebx
push 0x41d4c4
xor esi, esi
jmp 0x443a41
cmp dword [ebp + 8], 0
je 0x443a38
push ebx
push edi
push 0x41e32c
push 2
pop esi
call fcn.00440126
add esp, 0xc
jmp 0x443a48
push edi
push 0x41e36c
push 4
pop esi
call fcn.00440126
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.004655f1
leave
ret 8