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

Disassembly:
mov eax, 0x2f46b67
call sub.MSVCRT.dll__EH_prolog
sub esp, 0x324
mov dword [ebp - 0x14], ecx
push ebx
push esi
push edi
xor esi, esi
mov dword [ecx], esi
add ecx, 4
mov dword [ebp - 0x24], ecx
mov dword [ecx], esi
cmp dword [0x2f59b78], esi
jne 0x2f46734
push 0x44
call sub.MFC42.DLL_operatornew
mov dword [ebp - 0x18], eax
add esp, 4
mov edi, eax
mov dword [ebp - 4], esi
mov eax, 0
test edi, edi
je 0x2f46728
mov ecx, edi
call sub.HWDLL.dll_Ordinal_35
mov dword [ebp - 4], 0xffffffff
mov dword [0x2f59b78], eax
cmp dword [ebp + 0xc], 0
je 0x2f4678f
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x12c]
push eax
push ecx
push 0x104
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
test eax, eax
jne 0x2f4675d
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], eax
push dword [ebp - 0x18]
push dword [0x2f59428]
call sub.HWDLL.dll_Ordinal_57
inc eax
cmp eax, 2
jl 0x2f46b3d
mov ecx, dword [0x2f59428]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + eax*4]
jmp 0x2f46792
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], eax
push dword [ebp - 0x18]
push dword [0x2f59b78]
call sub.HWDLL.dll_Ordinal_50
test eax, eax
je 0x2f467c4
mov edx, dword [eax*4 + 0x2f59b80]
mov ecx, dword [ebp - 0x14]
mov dword [ecx], edx
mov edx, dword [ebp - 0x24]
mov eax, dword [eax*4 + 0x2f59bb0]
mov dword [edx], eax
jmp 0x2f46b3d
call sub.MFC42.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call sub.MFC42.DLL_CCmdTarget::BeginWaitCursor
mov ecx, 1
mov eax, dword [0x2f59b78]
mov dword [ebp - 4], ecx
mov eax, dword [eax + 8]
dec eax
cmp eax, 0xa
jle 0x2f46893
mov dword [ebp - 0x2c], ecx
cmp eax, ecx
jl 0x2f4684d
mov esi, 4
xor edi, edi
mov ebx, dword [esi + 0x2f59b80]
test ebx, ebx
je 0x2f46819
mov ecx, ebx
call fcn.02f51574
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esi + 0x2f59b80], edi
mov ebx, dword [esi + 0x2f59bb0]
test ebx, ebx
je 0x2f46839
mov ecx, ebx
call fcn.02f51574
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esi + 0x2f59bb0], edi
add esi, 4
mov eax, dword [0x2f59b78]
inc dword [ebp - 0x2c]
mov eax, dword [eax + 8]
dec eax
cmp eax, dword [ebp - 0x2c]
jge 0x2f467f9
mov esi, dword [0x2f59b78]
test esi, esi
je 0x2f46867
mov ecx, esi
call fcn.02f51574
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
push 0x44
call sub.MFC42.DLL_operatornew
mov dword [ebp - 0x2c], eax
add esp, 4
mov byte [ebp - 4], 2
mov esi, eax
mov eax, 0
test esi, esi
je 0x2f4688a
mov ecx, esi
call sub.HWDLL.dll_Ordinal_35
mov byte [ebp - 4], 1
mov dword [0x2f59b78], eax
push dword [ebp - 0x18]
push dword [0x2f59b78]
call sub.HWDLL.dll_Ordinal_46
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
push dword [ebp - 0x18]
push dword [ebp - 0x14]
add ecx, 0x10
mov dword [ebp - 0x2c], ecx
mov dword [ecx], 0
call fcn.02f470f3
test eax, eax
jne 0x2f468d3
jmp 0x2f46b31
lea eax, [ebp - 0x230]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push dword [ebp - 0x18]
call sub.HWDLL.dll_Ordinal_107
push 0x44
call sub.MFC42.DLL_operatornew
mov dword [ebp - 0x20], eax
add esp, 4
mov byte [ebp - 4], 3
mov esi, eax
mov eax, 0
test esi, esi
je 0x2f46910
mov ecx, esi
call sub.HWDLL.dll_Ordinal_35
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
add ecx, 0xc
push 0x2f22544
push 0xf
mov dword [ebp - 0x18], ecx
mov byte [ebp - 4], 1
push 0x104
mov dword [ecx], eax
mov eax, dword [0x2f59bf4]
xor ebx, ebx
mov dword [edx + 8], eax
call sub.HWDLL.dll_Ordinal_16
mov ecx, dword [ebp - 0x2c]
mov esi, 0
mov byte [ebp - 4], 4
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx]
test eax, eax
jle 0x2f46959
mov ecx, dword [ebp - 0x14]
mov esi, dword [ecx + eax*4 + 0x10]
lea eax, [ebp - 0x1c]
push eax
push esi
call sub.HWDLL.dll_Ordinal_33
test eax, eax
jne 0x2f4699e
mov ecx, dword [ebp - 0x14]
mov esi, 0
call fcn.02f47173
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx]
test eax, eax
jle 0x2f46984
mov ecx, dword [ebp - 0x14]
mov esi, dword [ecx + eax*4 + 0x10]
test esi, esi
jne 0x2f46ad4
mov ebx, 0x11
test ebx, ebx
je 0x2f46af9
jmp 0x2f46b1b
test ebx, ebx
jne 0x2f46b1b
mov edi, dword [ebp - 0x1c]
push 0x2f26a20
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push 0x2f26a20
push edi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x2f46a96
push 0x2f253a8
push dword [ebp - 0x1c]
call sub.HWDLL.dll_Ordinal_12
test eax, eax
je 0x2f46a27
mov eax, dword [ebp - 0x28]
lea ebx, [eax*4 + 0x2f59b80]
cmp dword [ebx], 0
jne 0x2f46a15
push 0x44
call sub.MFC42.DLL_operatornew
mov dword [ebp - 0x20], eax
add esp, 4
mov byte [ebp - 4], 5
mov edi, eax
mov eax, 0
test edi, edi
je 0x2f46a0f
mov ecx, edi
call sub.HWDLL.dll_Ordinal_35
mov byte [ebp - 4], 4
mov dword [ebx], eax
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x1c]
mov dword [ecx], eax
push edx
call fcn.02f46b79
jmp 0x2f46a87
push 0x2f26a48
push dword [ebp - 0x1c]
call sub.HWDLL.dll_Ordinal_12
test eax, eax
je 0x2f46ad4
mov eax, dword [ebp - 0x28]
lea ebx, [eax*4 + 0x2f59bb0]
cmp dword [ebx], 0
jne 0x2f46a74
push 0x44
call sub.MFC42.DLL_operatornew
mov dword [ebp - 0x20], eax
add esp, 4
mov byte [ebp - 4], 6
mov edi, eax
mov eax, 0
test edi, edi
je 0x2f46a6e
mov ecx, edi
call sub.HWDLL.dll_Ordinal_35
mov byte [ebp - 4], 4
mov dword [ebx], eax
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x24]
lea edx, [ebp - 0x1c]
mov dword [ecx], eax
push edx
mov ecx, dword [ebp - 0x14]
call fcn.02f46d30
mov ebx, eax
test ebx, ebx
je 0x2f469a6
jmp 0x2f46991
push 0
mov edi, 0x2f26a20
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [ebp - 0x1c]
not ecx
lea ecx, [ecx + eax - 1]
push ecx
call sub.HWDLL.dll_Ordinal_3
push eax
lea ecx, [ebp - 0x330]
push ecx
call sub.HWDLL.dll_Ordinal_106
lea ecx, [ebp - 0x330]
push ecx
call sub.HWDLL.dll_Ordinal_115
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 8], eax
test ebx, ebx
je 0x2f46959
jmp 0x2f46991
mov ecx, dword [ebp - 0x18]
mov esi, dword [ecx]
test esi, esi
je 0x2f46b1b
mov ecx, esi
call fcn.02f51574
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [ebp - 0x18]
mov dword [ecx], 0
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov byte [ebp - 4], 1
call fcn.02f46b53
mov dword [ebp - 4], 0xffffffff
call fcn.02f46b71
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8