Function at 0x4107ba
Capabilities:
Set current directory

Disassembly:
push ebp
sub esp, 0xa28
lea ebp, [esp - 4]
mov eax, dword [0x444028]
xor eax, ebp
mov dword [ebp + 0xa28], eax
push 0x18
mov eax, 0x42c144
call fcn.0042a7e8
xor edi, edi
mov dword [ebp - 4], edi
lea ecx, [ebp - 0x10]
call dword [0x431488]
push 0x436b3c
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call dword [0x4314bc]
mov byte [ebp - 4], 3
call sub.mfc90u.dll_AfxGetModuleState
mov eax, dword [eax + 8]
lea ecx, [ebp - 0x10]
push ecx
push eax
call dword [sym.imp.pcoshelper.dll_Ordinal_401]
pop ecx
pop ecx
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
xor eax, eax
mov esi, 0x206
push esi
mov word [ebp + 0x820], ax
lea eax, [ebp + 0x822]
push edi
push eax
call sub.MSVCR90.dll_memset
xor eax, eax
push esi
mov word [ebp + 0x410], ax
lea eax, [ebp + 0x412]
push edi
push eax
call sub.MSVCR90.dll_memset
xor eax, eax
push esi
mov word [ebp + 0x618], ax
lea eax, [ebp + 0x61a]
push edi
push eax
call sub.MSVCR90.dll_memset
xor eax, eax
push esi
mov word [ebp], ax
lea eax, [ebp + 2]
push edi
push eax
call sub.MSVCR90.dll_memset
xor eax, eax
push esi
mov word [ebp + 0x208], ax
lea eax, [ebp + 0x20a]
push edi
push eax
call sub.MSVCR90.dll_memset
add esp, 0x3c
push 0x105
lea eax, [ebp + 0x820]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp + 0x208]
push eax
lea eax, [ebp]
push eax
lea eax, [ebp + 0x410]
push eax
lea eax, [ebp + 0x618]
push eax
lea eax, [ebp + 0x820]
push eax
call dword [sym.imp.MSVCR90.dll__wsplitpath]
add esp, 0x14
lea eax, [ebp + 0x410]
push eax
lea ecx, [ebp - 0x1c]
call dword [0x4314bc]
mov esi, eax
lea eax, [ebp + 0x618]
push eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 4
call dword [0x4314bc]
lea ecx, [ebp - 0x20]
push esi
push ecx
mov ecx, eax
mov byte [ebp - 4], 5
call fcn.004132ad
lea ecx, [ebp + 0xa34]
push ecx
lea ecx, [ebp - 0x18]
push ecx
mov ecx, eax
mov byte [ebp - 4], 6
call fcn.004132ad
add esp, 0x10
lea ecx, [ebp - 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xa
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push dword [ebp + 0xa3c]
push edi
push dword [ebp + 0xa38]
push dword [ebp - 0x18]
push dword [ebp - 0x14]
push edi
call dword [sym.imp.pcoshelper.dll_Ordinal_1133]
add esp, 0x18
lea ecx, [ebp - 0x18]
mov esi, eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x10]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0xa34]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0xa38]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xa28]
xor ecx, ebp
call fcn.0042a12d
add ebp, 0xa2c
leave
ret 0xc