Function at 0x403708
Capabilities:
Access peb ldr_data
Delete directory
Delete file
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4106d0
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1078
call fcn.0040f410
mov eax, dword [0x41c028]
xor eax, esp
mov dword [esp + 0x1074], eax
push ebx
push esi
mov eax, dword [0x41c028]
xor eax, esp
push eax
lea eax, [esp + 0x1088]
mov dword fs:[0], eax
lea ecx, [esp + 0x1c]
call sub.mfc90u.dll_CFile::CFile
xor ebx, ebx
push 0x210
lea eax, [esp + 0x30]
push ebx
push eax
mov dword [esp + 0x109c], ebx
call sub.MSVCR90.dll_memset
add esp, 0xc
lea ecx, [esp + 0x14]
call dword [0x41278c]
push 0xe3e
lea eax, [esp + 0x240]
push ebx
push eax
mov byte [esp + 0x109c], 1
call sub.MSVCR90.dll_memset
add esp, 0xc
push dword [edi]
lea eax, [esp + 0x240]
call fcn.00401291
lea eax, [esp + 0x64c]
push eax
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_class]
lea ecx, [esp + 0x652]
push ecx
lea ecx, [esp + 0x10]
push ecx
mov esi, eax
mov byte [esp + 0x1098], 2
call fcn.00403cb4
pop ecx
pop ecx
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1094], 3
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
lea ecx, [esp + 0xc]
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, [esp + 0x10]
mov byte [esp + 0x1090], 1
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 [edi]
push ebx
push 0x8000
push eax
lea ecx, [esp + 0x28]
call sub.mfc90u.dll_CFile::Open
push 4
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x24]
call sub.mfc90u.dll_CFile::Read
push 0x208
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x24]
call sub.mfc90u.dll_CFile::Read
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov ebx, 0xc04
mov dword [esp + 0xc], eax
mov edx, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.mfc90u.dll_new__
mov esi, eax
pop ecx
test esi, esi
je 0x40386e
mov eax, dword [esp + 0xc]
push esi
call fcn.00401009
jmp 0x403870
xor esi, esi
mov eax, dword [esp + 0x2c]
imul eax, eax, 0xc04
push eax
push esi
lea ecx, [esp + 0x24]
mov dword [esp + 0x240], esi
call sub.mfc90u.dll_CFile::Read
lea ecx, [esp + 0x1c]
call sub.mfc90u.dll_CFile::Close
xor eax, eax
cmp dword [esp + 0x2c], eax
mov dword [esp + 0xc], eax
jle 0x4038e9
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x238]
mov ecx, dword [esp + 0x10]
lea eax, [ecx + eax + 4]
push eax
lea eax, [esp + 0x1c]
push eax
lea esi, [esp + 0x1c]
call fcn.00403cb4
pop ecx
pop ecx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
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_clas]
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
add dword [esp + 0x10], ebx
cmp eax, dword [esp + 0x2c]
jl 0x4038a5
push dword [esp + 0x238]
call sub.mfc90u.dll_delete__
pop ecx
push dword [edi]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
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]
or dword [esp + 0x1090], 0xffffffff
lea ecx, [esp + 0x1c]
call fcn.0040e202
mov ecx, dword [esp + 0x1088]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x1074]
xor ecx, esp
call fcn.0040e9fc
mov esp, ebp
pop ebp
ret