Function at 0x416a70
Capabilities:
Get common file path
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4735fc
mov eax, dword fs:[0]
push eax
sub esp, 0x270
mov eax, dword [0x490018]
xor eax, esp
mov dword [esp + 0x268], eax
push ebx
push esi
push edi
mov eax, dword [0x490018]
xor eax, esp
push eax
lea eax, [esp + 0x280]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x40]
test ecx, ecx
jne 0x416ac1
xor eax, eax
jmp 0x4172d9
mov edx, dword [ebx + 0x30]
mov eax, dword [edx + 8]
sub eax, dword [edx + 4]
sar eax, 2
cmp eax, 2
jbe 0x416adc
mov eax, 0x6403ed00
jmp 0x4172d9
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
sub edx, eax
sar edx, 2
test edx, edx
ja 0x416af0
call fcn.0040c420
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov ecx, dword [ebx + 0x40]
push 0x22
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Remove]
mov ecx, dword [ebx + 0x40]
push 1
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetAt]
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
cmp ax, 0x3a
jne 0x416b2e
mov ecx, dword [ebx + 0x40]
push 2
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetAt]
cmp ax, 0x5c
je 0x416c08
mov ecx, dword [ebx + 0x40]
push 0
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetAt]
cmp ax, 0x5c
jne 0x416b54
mov ecx, dword [ebx + 0x40]
push 1
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetAt]
cmp ax, 0x5c
je 0x416c08
push 0x208
lea eax, [esp + 0x70]
push 0
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
lea ecx, [esp + 0x6c]
push ecx
push 0x104
call edi
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x18]
call dword [0x4763f4]
mov dword [esp + 0x288], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 0xc]
test eax, eax
je 0x416bba
dec eax
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::operator__]
cmp ax, 0x5c
je 0x416bba
push 0x47d53c
lea ecx, [esp + 0x18]
call dword [0x476390]
mov ecx, dword [ebx + 0x40]
push ecx
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x1c]
call fcn.00403fa0
add esp, 8
mov byte [esp + 0x288], 1
mov ecx, dword [ebx + 0x40]
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov byte [esp + 0x288], 0
lea ecx, [esp + 0x1c]
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 dword [esp + 0x288], 0xffffffff
lea ecx, [esp + 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]
mov eax, dword [ebx + 0x30]
mov ecx, dword [eax + 8]
sub ecx, dword [eax + 4]
and ecx, 0xfffffffc
cmp ecx, 8
jne 0x416dfc
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 2
cmp edx, 1
ja 0x416c32
call fcn.0040c420
lea eax, [ecx + 4]
mov ecx, dword [ebx + 0x40]
push eax
add ecx, 4
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov ecx, dword [ebx + 0x40]
push 0x22
add ecx, 4
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Remove]
mov eax, dword [ebx + 0x40]
lea ecx, [eax + 4]
mov eax, dword [ecx]
mov eax, dword [eax - 0xc]
dec eax
push eax
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetAt]
xor edx, edx
mov ecx, 0x5c
cmp cx, ax
sete dl
mov eax, edx
test eax, eax
je 0x416d29
mov eax, dword [ebx + 0x40]
mov eax, dword [eax + 4]
push eax
call fcn.0042c9a0
add esp, 4
test eax, eax
je 0x416d29
lea ecx, [esp + 0x1c]
call dword [0x476410]
mov dword [esp + 0x288], 2
push 0
call dword [sym.imp.MSVCR90.dll__time64]
add esp, 4
mov dword [esp + 0x20], eax
push 0x47e340
lea eax, [esp + 0x24]
mov dword [esp + 0x28], edx
call fcn.0041bba0
push eax
lea eax, [esp + 0x28]
call fcn.0041bb70
push eax
lea eax, [esp + 0x2c]
call fcn.0041bb50
push eax
lea eax, [esp + 0x30]
call fcn.0041bb20
push eax
lea eax, [esp + 0x34]
call fcn.0041baf0
push eax
lea ecx, [esp + 0x34]
push str._4d_02d_02d_02d_02d._s
push ecx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
mov ecx, dword [ebx + 0x40]
add esp, 0x20
lea edx, [esp + 0x1c]
push edx
add ecx, 4
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov dword [esp + 0x288], 0xffffffff
lea ecx, [esp + 0x1c]
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 ecx, dword [ebx + 0x40]
push 1
add ecx, 4
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetAt]
cmp ax, 0x3a
jne 0x416d55
mov ecx, dword [ebx + 0x40]
push 2
add ecx, 4
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetAt]
cmp ax, 0x5c
je 0x416ef2
mov ecx, dword [ebx + 0x40]
push 0
add ecx, 4
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetAt]
cmp ax, 0x5c
jne 0x416d81
mov ecx, dword [ebx + 0x40]
push 1
add ecx, 4
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetAt]
cmp ax, 0x5c
je 0x416ef2
push 0x208
lea eax, [esp + 0x70]
push 0
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
lea ecx, [esp + 0x6c]
push ecx
push 0x104
call edi
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x20]
call dword [0x4763f4]
mov dword [esp + 0x288], 3
lea esi, [esp + 0x1c]
call fcn.00401d60
mov eax, dword [ebx + 0x40]
add eax, 4
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, esi
call fcn.00403fa0
add esp, 8
mov byte [esp + 0x288], 4
mov ecx, dword [ebx + 0x40]
push eax
add ecx, 4
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov byte [esp + 0x288], 3
jmp 0x416ed3
mov edx, dword [ebx + 0x40]
push edx
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
mov dword [esp + 0x288], 5
push str..exe
lea esi, [esp + 0x20]
call fcn.00401b40
add esp, 4
call fcn.00401ab0
push 0x208
lea eax, [esp + 0x70]
push 0
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
lea ecx, [esp + 0x6c]
push ecx
push 0x104
call edi
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x18]
call dword [0x4763f4]
mov byte [esp + 0x288], 6
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 0xc]
test eax, eax
je 0x416e8e
dec eax
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::operator__]
cmp ax, 0x5c
je 0x416e8e
push 0x47d53c
lea ecx, [esp + 0x18]
call dword [0x476390]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x1c]
call fcn.00403fa0
add esp, 8
mov byte [esp + 0x288], 7
mov ecx, dword [ebx + 0x40]
push eax
add ecx, 4
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov byte [esp + 0x288], 6
lea ecx, [esp + 0x28]
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 byte [esp + 0x288], 5
lea ecx, [esp + 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]
mov dword [esp + 0x288], 0xffffffff
lea ecx, [esp + 0x1c]
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, dword [ebx + 0x2c]
mov ecx, dword [eax + 8]
sub ecx, dword [eax + 4]
mov esi, 1
sar ecx, 2
mov edi, esi
cmp ecx, edi
jbe 0x4172d7
lea ecx, [ecx]
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
sub edx, eax
sar edx, 2
cmp edx, esi
jbe 0x416aeb
lea eax, [eax + esi*4]
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
mov dword [esp + 0x288], 8
push str._autotest
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CompareNoCase]
test eax, eax
jne 0x416f5f
mov eax, dword [0x491c54]
mov dword [eax + 0x68], edi
jmp 0x4172a7
push 2
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Left]
mov byte [esp + 0x288], 9
push 0x47e294
mov ecx, eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CompareNoCase]
test eax, eax
sete byte [esp + 0x1b]
mov byte [esp + 0x288], 8
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
cmp byte [esp + 0x1b], 0
lea ecx, [esp + 0x14]
je 0x417015
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0xc]
add eax, 0xfffffffe
push eax
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Right]
mov byte [esp + 0x288], 0xa
mov ecx, dword [ebx + 0x40]
push eax
add ecx, 0x14
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov byte [esp + 0x288], 8
lea ecx, [esp + 0x1c]
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 ecx, dword [ebx + 0x40]
mov edx, dword [ecx + 0x14]
cmp dword [edx - 0xc], 0
jne 0x4172a7
mov dword [esp + 0x288], 0xffffffff
lea ecx, [esp + 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]
mov eax, 0x64040000
jmp 0x4172d9
push 3
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Left]
mov byte [esp + 0x288], 0xb
push 0x47e2ac
mov ecx, eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CompareNoCase]
test eax, eax
sete byte [esp + 0x1b]
mov byte [esp + 0x288], 8
lea ecx, [esp + 0x40]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
cmp byte [esp + 0x1b], 0
je 0x41712f
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
add eax, 0xfffffffd
push eax
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Right]
mov edi, eax
mov byte [esp + 0x288], 0xc
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 0xc]
add eax, 0xfffffffd
push eax
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Right]
mov byte [esp + 0x288], 0xd
mov edx, dword [edi]
mov eax, dword [eax]
mov edi, dword [edx - 0xc]
push eax
call fcn.0041a260
test eax, eax
sete byte [esp + 0x1b]
mov byte [esp + 0x288], 0xc
lea ecx, [esp + 0x3c]
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 byte [esp + 0x288], 8
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
cmp byte [esp + 0x1b], 0
jne 0x4172ff
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 0xc]
add eax, 0xfffffffd
push eax
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Right]
mov byte [esp + 0x288], 0xf
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCR90.dll__wtoi]
mov edx, dword [ebx + 0x40]
add esp, 4
mov dword [edx + 0x18], eax
mov byte [esp + 0x288], 8
lea ecx, [esp + 0x38]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
jmp 0x4172a7
push 0x47e2b4
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CompareNoCase]
test eax, eax
jne 0x41714a
mov dword [ebx + 0x54], edi
jmp 0x4172a7
push 3
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Left]
mov byte [esp + 0x288], 0x10
push 0x47e2bc
mov ecx, eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CompareNoCase]
test eax, eax
sete byte [esp + 0x1b]
mov byte [esp + 0x288], 8
lea ecx, [esp + 0x44]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
cmp byte [esp + 0x1b], 0
je 0x4173b6
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
add eax, 0xfffffffd
push eax
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Right]
mov edi, eax
mov byte [esp + 0x288], 0x11
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 0xc]
add eax, 0xfffffffd
push eax
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Right]
mov byte [esp + 0x288], 0x12
mov edx, dword [edi]
mov eax, dword [eax]
mov edi, dword [edx - 0xc]
push eax
call fcn.0041a260
test eax, eax
sete byte [esp + 0x1b]
mov byte [esp + 0x288], 0x11
lea ecx, [esp + 0x30]
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 byte [esp + 0x288], 8
lea ecx, [esp + 0x34]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
cmp byte [esp + 0x1b], 0
jne 0x417359
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 0xc]
add eax, 0xfffffffd
push eax
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Right]
mov byte [esp + 0x288], 0x14
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCR90.dll__wtoi]
add esp, 4
mov edi, eax
mov byte [esp + 0x288], 8
lea ecx, [esp + 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]
xor eax, eax
cmp edi, eax
jne 0x4172a1
lea edx, [esp + 0x48]
push edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edi, dword [esp + 0x5c]
test edi, edi
jne 0x4172a1
mov edi, 1
mov eax, dword [ebx + 0x40]
mov dword [eax + 0x30], edi
mov dword [esp + 0x288], 0xffffffff
lea ecx, [esp + 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]
mov eax, dword [ebx + 0x2c]
mov ecx, dword [eax + 8]
sub ecx, dword [eax + 4]
mov edi, 1
add esi, edi
sar ecx, 2
cmp esi, ecx
jb 0x416f10
mov eax, edi
mov ecx, dword [esp + 0x280]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x268]
xor ecx, esp
call fcn.00428cb4
mov esp, ebp
pop ebp
ret 4
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0xc]
add eax, 0xfffffffd
push eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Right]
mov byte [esp + 0x288], 0xe
push eax
lea ecx, [ebx + 0x50]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov byte [esp + 0x288], 8
lea ecx, [esp + 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]
mov dword [esp + 0x288], 0xffffffff
lea ecx, [esp + 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]
mov eax, 0x6403e900
jmp 0x4172d9
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
add eax, 0xfffffffd
push eax
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Right]
mov byte [esp + 0x288], 0x13
push eax
lea ecx, [ebx + 0x50]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov byte [esp + 0x288], 8
lea ecx, [esp + 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]
mov dword [esp + 0x288], 0xffffffff
lea ecx, [esp + 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]
mov eax, 0x200
jmp 0x4172d9
lea eax, [esp + 0x14]
push eax
lea ecx, [ebx + 0x50]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
jmp 0x417397