Function at 0x40c476
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, ecx
test byte [eax + 0x28], 3
push edi
mov dword [ebp - 0x10], esi
je 0x40c50b
xor ebx, ebx
inc ebx
push ebx
push 0x4880b0
call sym.Dismx86.exe_DismMultiLanguage
push eax
push str.S_MR_j
call sym.Dismx86.exe_DismMultiLanguage
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, ebx
jne 0x40c501
xor edi, edi
lea ecx, [ebp - 0xa8]
push edi
call fcn.00403200
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0xa4], edi
jne 0x40c4d9
mov eax, dword [esi + 4]
mov dword [ebp - 0xa4], eax
push edi
push edi
push edi
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.COMCTL32.dll_Ordinal_345]
cmp dword [ebp - 0x28], edi
jne 0x40c4f6
push 2
pop ecx
call fcn.0042ccc0
lea ecx, [ebp - 0xa8]
call fcn.00405c84
mov eax, 0x80004002
jmp 0x40c9fa
push str.ck_WM
call sym.Dismx86.exe_DismMultiLanguage
mov ecx, dword [ebp + 8]
push eax
call fcn.0047ee05
push 0xffffffffffffffff
lea ecx, [ebp - 0x130]
call fcn.00403200
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x12c], 0
mov dword [ebp - 0xbc], ebx
jne 0x40c546
mov eax, dword [esi + 4]
mov dword [ebp - 0x12c], eax
xor edi, edi
lea eax, [ebp - 0x130]
push edi
push edi
push edi
push eax
call dword [sym.imp.COMCTL32.dll_Ordinal_345]
mov edx, str.BCD00000000Objects9dea862c_5cdd_4e70_acc1_f32b344d4795Elements24000002
mov ecx, 0x80000002
call fcn.0044e022
cmp dword [ebp - 0xb0], edi
je 0x40c59b
push 0x30
push 0x4880b0
call sym.Dismx86.exe_DismMultiLanguage
push eax
push 0x4923dc
call sym.Dismx86.exe_DismMultiLanguage
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ebx, dword [ebp - 0xb0]
jmp 0x40c9ed
push 0x492410
call sym.Dismx86.exe_DismMultiLanguage
mov esi, dword [ebp + 8]
mov ecx, esi
push eax
call fcn.0047ee05
mov eax, dword [esi + 0x22c]
lea ecx, [ebp - 0xc]
add eax, 0x870
push eax
call fcn.0043c2b8
push 0x492424
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x14]
call fcn.0043baed
pop ecx
mov ecx, dword [ebp - 0x14]
call fcn.0044d9e7
test eax, eax
je 0x40c718
push ebx
lea eax, [ebp - 0x18]
mov dword [ebp - 8], ebx
push 0x49356c
push eax
call fcn.0044af44
add esp, 0xc
lea edx, [ebp - 0x14]
lea ecx, [ebp - 4]
push eax
call fcn.00431d91
pop ecx
mov ecx, dword [eax]
call fcn.0044d9e7
mov ecx, dword [ebp - 4]
mov esi, eax
add ecx, 0xfffffff0
call fcn.0043d912
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0043d912
test esi, esi
je 0x40c674
mov edi, ebx
inc edi
lea eax, [ebp - 0x18]
push edi
push 0x49356c
push eax
call fcn.0044af44
add esp, 0xc
lea edx, [ebp - 0x14]
lea ecx, [ebp - 4]
push eax
call fcn.00431d91
pop ecx
mov ecx, dword [eax]
call fcn.0044d9e7
mov ecx, dword [ebp - 4]
mov esi, eax
add ecx, 0xfffffff0
call fcn.0043d912
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0043d912
test esi, esi
jne 0x40c62c
mov dword [ebp - 8], edi
xor edi, edi
push dword [ebp - 8]
lea eax, [ebp - 0x18]
push 0x49356c
push eax
call fcn.0044af44
add esp, 0xc
lea edx, [ebp - 0x14]
lea ecx, [ebp - 8]
push eax
call fcn.00431d91
pop ecx
push dword [eax]
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov ecx, dword [ebp - 8]
mov esi, eax
add ecx, 0xfffffff0
call fcn.0043d912
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0043d912
test esi, esi
jne 0x40c718
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea eax, [ebp + 0xc]
push ebx
push 0x492440
push eax
call fcn.0044af44
add esp, 0xc
push dword [eax]
push 0x492470
push 1
call dword [sym.imp.CBSHost.dll_DismWriteLog]
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.0043d912
push edi
push 0x4880b0
call sym.Dismx86.exe_DismMultiLanguage
push eax
push str.Sorry
call sym.Dismx86.exe_DismMultiLanguage
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x40c9d7
mov esi, str._windows.bt_
push esi
call dword [sym.imp.msvcrt.dll_wcslen]
pop ecx
push eax
push esi
lea ecx, [ebp - 0xc]
call fcn.0043c99e
mov esi, dword [ebp - 0xc]
mov ecx, esi
call fcn.0044d9e7
test eax, eax
je 0x40c7c7
mov edx, ebx
mov ecx, esi
call fcn.0044d00c
mov dword [ebp - 8], eax
test eax, eax
je 0x40c7c7
mov ebx, dword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
push eax
call ebx
push dword [ebp - 8]
test eax, eax
jg 0x40c767
call ebx
mov ebx, eax
jmp 0x40c772
call ebx
movzx ebx, ax
or ebx, 0x80070000
push ebx
push esi
lea eax, [ebp + 0xc]
push 0x4924bc
push eax
call fcn.0044af44
add esp, 0x10
push dword [eax]
push 0x492470
push 1
call dword [sym.imp.CBSHost.dll_DismWriteLog]
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.0043d912
push edi
push 0x4880b0
call sym.Dismx86.exe_DismMultiLanguage
push eax
push str.Sorry
call sym.Dismx86.exe_DismMultiLanguage
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x40c9da
lea eax, [ebp - 4]
mov dword [ebp - 4], edi
push eax
mov eax, dword [ebp + 0xc]
push dword [eax + 0x24]
call sym.Dismx86.exe_DismGetImageFileInfo
mov eax, dword [ebp - 4]
test eax, eax
je 0x40c8e5
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + 0x1c]
cmp eax, dword [ecx + 0x34]
jbe 0x40c8dc
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x22c]
add ecx, 0x870
call fcn.0044d23c
mov esi, dword [ebp + 0xc]
push 0
imul ecx, dword [esi + 0x34], 0xe1c
mov esi, dword [ebp - 4]
mov edi, dword [ecx + esi + 0x2c]
mov ecx, dword [ecx + esi + 0x30]
add edi, 0x40000000
mov esi, dword [ebp - 0xc]
mov dword [ebp - 8], edi
pop edi
adc ecx, edi
cmp ecx, edx
jb 0x40c8dc
ja 0x40c840
cmp dword [ebp - 8], eax
jb 0x40c8dc
push ebx
push 0x4880b0
call sym.Dismx86.exe_DismMultiLanguage
push eax
push str.S_MRlx
call sym.Dismx86.exe_DismMultiLanguage
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, ebx
jne 0x40c8c9
push edi
lea ecx, [ebp - 0xa8]
call fcn.00403200
cmp dword [ebp - 0xa4], 0
mov dword [ebp - 0x34], ebx
jne 0x40c88b
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0xa4], eax
push edi
push edi
push edi
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.COMCTL32.dll_Ordinal_345]
cmp dword [ebp - 0x28], 0
jne 0x40c8be
push 2
pop ecx
call fcn.0042ccc0
lea ecx, [ebp - 0xa8]
call fcn.00405c84
mov ebx, 0x80004005
jmp 0x40c9da
lea ecx, [ebp - 0xa8]
call fcn.00405c84
push dword [ebp - 4]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ebx, 0x80004002
jmp 0x40c9da
push dword [ebp - 4]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push edi
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x492514
call sym.Dismx86.exe_DismMultiLanguage
mov ebx, dword [ebp + 8]
mov ecx, ebx
push eax
call fcn.0047ee05
mov eax, dword [ebp + 0xc]
push ebx
push ecx
push esi
push dword [eax + 0x28]
mov edx, dword [eax + 0x34]
mov ecx, dword [eax + 0x24]
call fcn.0040ca01
mov esi, dword [ebp + 8]
mov ebx, eax
cmp dword [esi + 0x238], edi
je 0x40c92d
mov ebx, 0x4c7
jmp 0x40c9d7
test ebx, ebx
je 0x40c965
mov edx, ebx
lea ecx, [ebp + 0xc]
call fcn.0043c2ea
push 0x10
push 0x48f30c
mov esi, eax
call sym.Dismx86.exe_DismMultiLanguage
push eax
mov eax, dword [ebp - 0x10]
push dword [esi]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.0043d912
jmp 0x40c9d7
xor ebx, ebx
lea ecx, [ebp - 0xa8]
inc ebx
push ebx
call fcn.00403200
cmp dword [ebp - 0xa4], 0
mov dword [ebp - 0x34], ebx
jne 0x40c98c
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0xa4], eax
push edi
push edi
push edi
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.COMCTL32.dll_Ordinal_345]
lea ecx, [ebp - 0xa8]
call fcn.00405c84
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [esi + 0x22c]
add eax, 0x870
push eax
call sym.Dismx86.exe_DismGetSystemInfoByPath
mov ecx, dword [esi + 0x22c]
mov eax, dword [ebp - 0x1c]
push ecx
mov dword [esi + 0x22c], eax
mov dword [ebp - 0x1c], ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ebx, edi
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.0043d912
lea ecx, [esi - 0x10]
call fcn.0043d912
lea ecx, [ebp - 0x130]
call fcn.00405c84
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret 8