Function at 0x414140
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov dword [ebp - 0x128], ecx
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp + 8]
mov dword [eax + 0x28], ecx
movzx edx, byte [ebp + 0x14]
push edx
mov ecx, dword [ebp - 0x128]
call fcn.00413950
lea eax, [ebp + 8]
push eax
push 2
call sub.msi.dll_MsiSetPropertyW
push 0x73
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx + 0x28]
push edx
lea ecx, [ebp - 0x6c]
call fcn.0041a160
lea ecx, [ebp - 0x6c]
call fcn.0041a460
push 0xbc0
lea eax, [ebp - 0x6c]
push eax
call fcn.0041a280
add esp, 8
push 1
lea ecx, [ebp - 0x6c]
call fcn.0041a4b0
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, dword [ebp - 0x128]
call fcn.004139b0
movzx edx, al
test edx, edx
jne 0x4141dd
mov byte [ebp - 0x111], 0
lea ecx, [ebp - 0x6c]
call fcn.0041a200
mov al, byte [ebp - 0x111]
jmp 0x414c47
mov eax, dword [ebp + 0xc]
push eax
call fcn.00414ef0
add esp, 4
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
je 0x4141fc
mov ecx, dword [ebp - 0x44]
movsx edx, byte [ecx]
test edx, edx
jne 0x414216
mov byte [ebp - 0x112], 0
lea ecx, [ebp - 0x6c]
call fcn.0041a200
mov al, byte [ebp - 0x112]
jmp 0x414c47
mov eax, dword [ebp + 0xc]
push eax
call fcn.00414fa0
add esp, 4
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
je 0x414235
mov ecx, dword [ebp - 0x70]
movsx edx, byte [ecx]
test edx, edx
jne 0x41424f
mov byte [ebp - 0x113], 0
lea ecx, [ebp - 0x6c]
call fcn.0041a200
mov al, byte [ebp - 0x113]
jmp 0x414c47
mov dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x70]
push eax
lea ecx, [ebp - 0x40]
push ecx
call fcn.004288d0
add esp, 8
mov edx, dword [ebp - 0x40]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
mov ecx, dword [ebp - 0x128]
call fcn.00413970
movzx eax, al
test eax, eax
je 0x4142ab
push 0x42c5ec
mov ecx, dword [ebp - 0x40]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
mov edx, dword [ebp - 0x40]
push edx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryA]
test eax, eax
jne 0x4142ab
push 0
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov ecx, dword [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x128]
call fcn.00413910
lea edx, [ebp - 0x40]
push edx
call fcn.00428990
add esp, 4
push 0x78
mov eax, dword [ebp - 0x70]
push eax
call fcn.0040e6c0
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x4142f5
mov byte [ebp - 0x114], 0
lea ecx, [ebp - 0x6c]
call fcn.0041a200
mov al, byte [ebp - 0x114]
jmp 0x414c47
mov edx, dword [ebp - 0x44]
push edx
mov ecx, dword [ebp - 0x128]
call fcn.00413f10
movzx eax, al
test eax, eax
jne 0x414325
mov byte [ebp - 0x115], 0
lea ecx, [ebp - 0x6c]
call fcn.0041a200
mov al, byte [ebp - 0x115]
jmp 0x414c47
mov dword [ebp - 0x9c], 0x7d4
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x1c], 0
push 0
mov ecx, dword [ebp - 0x128]
add ecx, 4
push ecx
call fcn.00414c50
add esp, 8
push 1
mov edx, dword [ebp - 0x128]
add edx, 0x14
push edx
call fcn.00414c50
add esp, 8
lea ecx, [ebp - 0x98]
call fcn.00415970
mov eax, dword [ebp - 0x128]
add eax, 4
push eax
lea ecx, [ebp - 0x98]
call fcn.004159e0
mov ecx, dword [ebp - 0x128]
add ecx, 0x14
push ecx
lea ecx, [ebp - 0x98]
call fcn.004159e0
mov dword [ebp - 0xa0], 0
jmp 0x4143b5
mov edx, dword [ebp - 0xa0]
add edx, 1
mov dword [ebp - 0xa0], edx
lea ecx, [ebp - 0x98]
call fcn.00411c00
cmp dword [ebp - 0xa0], eax
jge 0x414462
mov eax, dword [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x98]
call fcn.004012c0
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0
jne 0x4143ef
jmp 0x4143a6
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x12c], ecx
lea edx, [ebp - 0x9c]
push edx
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x12c]
push ecx
mov ecx, dword [ebp - 0x128]
call fcn.00413970
movzx edx, al
push edx
mov eax, dword [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0xa4]
call fcn.00413090
movzx ecx, al
mov edx, dword [ebp - 0x74]
add edx, 1
mov dword [ebp - 0x74], edx
test ecx, ecx
jne 0x41445d
mov byte [ebp - 0x116], 0
lea ecx, [ebp - 0x98]
call fcn.004159c0
lea ecx, [ebp - 0x6c]
call fcn.0041a200
mov al, byte [ebp - 0x116]
jmp 0x414c47
jmp 0x4143a6
mov dword [ebp - 0xa8], 0
jmp 0x41447d
mov eax, dword [ebp - 0xa8]
add eax, 1
mov dword [ebp - 0xa8], eax
lea ecx, [ebp - 0x98]
call fcn.00411c00
cmp dword [ebp - 0xa8], eax
jge 0x414a5c
lea ecx, [ebp - 0xdc]
call fcn.00415970
mov ecx, dword [ebp - 0xa8]
push ecx
lea ecx, [ebp - 0x98]
call fcn.004012c0
mov dword [ebp - 0xb4], eax
cmp dword [ebp - 0xb4], 0
jne 0x4144cd
lea ecx, [ebp - 0xdc]
call fcn.004159c0
jmp 0x41446e
mov ecx, dword [ebp - 0xb4]
call fcn.004120c0
movzx edx, al
test edx, edx
je 0x4144ec
lea ecx, [ebp - 0xdc]
call fcn.004159c0
jmp 0x41446e
mov ecx, dword [ebp - 0xb4]
call fcn.00413500
movzx eax, al
test eax, eax
jne 0x41452e
mov byte [ebp - 0x117], 0
lea ecx, [ebp - 0xdc]
call fcn.004159c0
lea ecx, [ebp - 0x98]
call fcn.004159c0
lea ecx, [ebp - 0x6c]
call fcn.0041a200
mov al, byte [ebp - 0x117]
jmp 0x414c47
mov ecx, dword [ebp - 0xb4]
push ecx
lea ecx, [ebp - 0xdc]
call fcn.00411d10
mov edx, dword [ebp - 0xa8]
add edx, 1
mov dword [ebp - 0xf0], edx
jmp 0x414560
mov eax, dword [ebp - 0xf0]
add eax, 1
mov dword [ebp - 0xf0], eax
lea ecx, [ebp - 0x98]
call fcn.00411c00
cmp dword [ebp - 0xf0], eax
jge 0x4145d0
mov ecx, dword [ebp - 0xf0]
push ecx
lea ecx, [ebp - 0x98]
call fcn.004012c0
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0xf4], 0
je 0x4145a6
mov ecx, dword [ebp - 0xf4]
call fcn.004120c0
movzx edx, al
test edx, edx
je 0x4145a8
jmp 0x414551
mov ecx, dword [ebp - 0xf4]
call fcn.00413400
movzx eax, al
test eax, eax
jne 0x4145bc
jmp 0x414551
mov ecx, dword [ebp - 0xf4]
push ecx
lea ecx, [ebp - 0xdc]
call fcn.00411d10
jmp 0x414551
push 1
lea ecx, [ebp - 0xdc]
call fcn.00415a40
push 0
lea ecx, [ebp - 0xdc]
call fcn.004012c0
mov ecx, eax
call fcn.00412120
mov dword [ebp - 0xcc], eax
push 0
lea ecx, [ebp - 0xdc]
call fcn.004012c0
mov ecx, eax
call fcn.00412060
mov dword [ebp - 0xac], eax
lea ecx, [ebp - 0xc8]
call fcn.0041a620
mov dword [ebp - 0xc8], 0x42b6cc
lea ecx, [ebp - 0xec]
call fcn.0041a620
mov dword [ebp - 0xec], 0x42b6cc
mov byte [ebp - 0xad], 0
mov dword [ebp - 0xf8], 0
jmp 0x41465d
mov edx, dword [ebp - 0xf8]
add edx, 1
mov dword [ebp - 0xf8], edx
lea ecx, [ebp - 0xdc]
call fcn.00411c00
cmp dword [ebp - 0xf8], eax
jge 0x4148cf
mov eax, dword [ebp - 0xf8]
push eax
lea ecx, [ebp - 0xdc]
call fcn.004012c0
mov dword [ebp - 0xfc], eax
mov ecx, dword [ebp - 0xcc]
push ecx
mov ecx, dword [ebp - 0xfc]
call fcn.00412120
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x41479d
lea edx, [ebp - 0xc8]
push edx
call fcn.00411080
add esp, 4
movzx eax, byte [ebp - 0xad]
push eax
lea ecx, [ebp - 0x6c]
push ecx
lea edx, [ebp - 0xec]
push edx
lea eax, [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xac]
push ecx
mov edx, dword [ebp - 0x128]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
mov edx, dword [ebp - 0x128]
mov eax, dword [edx + 0x28]
push eax
call fcn.004150f0
add esp, 0x20
mov byte [ebp - 0xfd], al
mov byte [ebp - 0xad], 0
lea ecx, [ebp - 0xec]
push ecx
call fcn.00411790
add esp, 4
lea edx, [ebp - 0xc8]
push edx
call fcn.00411790
add esp, 4
movzx eax, byte [ebp - 0xfd]
test eax, eax
jne 0x41477b
mov byte [ebp - 0x118], 0
lea ecx, [ebp - 0xec]
call fcn.0041a690
lea ecx, [ebp - 0xc8]
call fcn.0041a690
lea ecx, [ebp - 0xdc]
call fcn.004159c0
lea ecx, [ebp - 0x98]
call fcn.004159c0
lea ecx, [ebp - 0x6c]
call fcn.0041a200
mov al, byte [ebp - 0x118]
jmp 0x414c47
mov ecx, dword [ebp - 0xfc]
call fcn.00412120
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xfc]
call fcn.00412060
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xfc]
call fcn.00413660
movzx ecx, al
test ecx, ecx
jne 0x4147f5
mov byte [ebp - 0x119], 0
lea ecx, [ebp - 0xec]
call fcn.0041a690
lea ecx, [ebp - 0xc8]
call fcn.0041a690
lea ecx, [ebp - 0xdc]
call fcn.004159c0
lea ecx, [ebp - 0x98]
call fcn.004159c0
lea ecx, [ebp - 0x6c]
call fcn.0041a200
mov al, byte [ebp - 0x119]
jmp 0x414c47
mov ecx, dword [ebp - 0xfc]
call fcn.004137d0
movzx edx, al
test edx, edx
jne 0x414866
lea eax, [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xfc]
call fcn.004137f0
movzx ecx, al
test ecx, ecx
jne 0x414866
mov byte [ebp - 0x11a], 0
lea ecx, [ebp - 0xec]
call fcn.0041a690
lea ecx, [ebp - 0xc8]
call fcn.0041a690
lea ecx, [ebp - 0xdc]
call fcn.004159c0
lea ecx, [ebp - 0x98]
call fcn.004159c0
lea ecx, [ebp - 0x6c]
call fcn.0041a200
mov al, byte [ebp - 0x11a]
jmp 0x414c47
mov ecx, dword [ebp - 0xfc]
call fcn.00412080
push eax
call dword [sym.imp.SHLWAPI.dll_StrDupA]
push eax
lea ecx, [ebp - 0xec]
call fcn.00411d10
mov ecx, dword [ebp - 0xfc]
call fcn.00412140
movzx edx, al
test edx, edx
je 0x41489d
mov byte [ebp - 0xad], 1
push 1
mov ecx, dword [ebp - 0xfc]
call fcn.004120e0
lea eax, [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0x44]
push ecx
mov edx, dword [ebp - 0x128]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0xfc]
push ecx
call fcn.0040bdc0
add esp, 0x10
jmp 0x41464e
mov byte [ebp - 0xb5], 1
lea ecx, [ebp - 0xec]
call fcn.00411c00
test eax, eax
jle 0x41493d
lea edx, [ebp - 0xc8]
push edx
call fcn.00411080
add esp, 4
movzx eax, byte [ebp - 0xad]
push eax
lea ecx, [ebp - 0x6c]
push ecx
lea edx, [ebp - 0xec]
push edx
lea eax, [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xac]
push ecx
mov edx, dword [ebp - 0x128]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
mov edx, dword [ebp - 0x128]
mov eax, dword [edx + 0x28]
push eax
call fcn.004150f0
add esp, 0x20
mov byte [ebp - 0xb5], al
lea ecx, [ebp - 0xc8]
push ecx
call fcn.00411790
add esp, 4
lea edx, [ebp - 0xec]
push edx
call fcn.00411790
add esp, 4
movzx eax, byte [ebp - 0xb5]
test eax, eax
jne 0x4149ac
mov byte [ebp - 0x11b], 0
lea ecx, [ebp - 0xec]
call fcn.0041a690
lea ecx, [ebp - 0xc8]
call fcn.0041a690
lea ecx, [ebp - 0xdc]
call fcn.004159c0
lea ecx, [ebp - 0x98]
call fcn.004159c0
lea ecx, [ebp - 0x6c]
call fcn.0041a200
mov al, byte [ebp - 0x11b]
jmp 0x414c47
mov dword [ebp - 0x104], 0
jmp 0x4149c7
mov ecx, dword [ebp - 0x104]
add ecx, 1
mov dword [ebp - 0x104], ecx
lea ecx, [ebp - 0xdc]
call fcn.00411c00
cmp dword [ebp - 0x104], eax
jge 0x414a36
mov edx, dword [ebp - 0x104]
push edx
lea ecx, [ebp - 0xdc]
call fcn.004012c0
mov dword [ebp - 0x108], eax
lea eax, [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0x44]
push ecx
mov edx, dword [ebp - 0x108]
push edx
mov ecx, dword [ebp - 0x108]
call fcn.00412060
push eax
mov eax, dword [ebp - 0x128]
mov ecx, dword [eax]
push ecx
mov ecx, dword [ebp - 0x108]
call fcn.00412120
push eax
mov edx, dword [ebp - 0x128]
mov eax, dword [edx + 0x28]
push eax
call fcn.00414fd0
add esp, 0x1c
jmp 0x4149b8
lea ecx, [ebp - 0xec]
call fcn.0041a690
lea ecx, [ebp - 0xc8]
call fcn.0041a690
lea ecx, [ebp - 0xdc]
call fcn.004159c0
jmp 0x41446e
lea ecx, [ebp - 0x3c]
push ecx
mov ecx, dword [ebp - 0x128]
call fcn.00414100
mov edx, dword [ebp - 0x44]
push edx
push 0x42c46c
mov eax, dword [0x42f110]
push eax
lea ecx, [ebp - 0x3c]
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea ecx, [ebp - 0x88]
call fcn.00425490
lea ecx, [ebp - 0x18]
call fcn.00425490
mov ecx, dword [ebp - 0x128]
add ecx, 4
call fcn.00411c00
test eax, eax
jle 0x414aba
mov edx, dword [ebp - 0x128]
add edx, 4
mov dword [ebp - 0x130], edx
jmp 0x414ac9
mov eax, dword [ebp - 0x128]
add eax, 0x14
mov dword [ebp - 0x130], eax
mov ecx, dword [ebp - 0x130]
mov dword [ebp - 0x120], ecx
mov edx, dword [ebp - 0x120]
mov dword [ebp - 4], edx
mov dword [ebp - 0x10c], 0
jmp 0x414af9
mov eax, dword [ebp - 0x10c]
add eax, 1
mov dword [ebp - 0x10c], eax
mov ecx, dword [ebp - 4]
call fcn.00411c00
cmp dword [ebp - 0x10c], eax
jge 0x414bad
mov ecx, dword [ebp - 0x10c]
push ecx
mov ecx, dword [ebp - 4]
call fcn.004012c0
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
je 0x414b3d
mov ecx, dword [ebp - 0x110]
call fcn.004120c0
movzx edx, al
test edx, edx
jne 0x414b3f
jmp 0x414aea
lea ecx, [ebp - 0x88]
call fcn.00425660
movzx eax, al
test eax, eax
jne 0x414b61
push 0x42c5f0
lea ecx, [ebp - 0x88]
call fcn.004255c0
mov ecx, dword [ebp - 0x110]
call fcn.00411990
push eax
lea ecx, [ebp - 0x88]
call fcn.004255c0
lea ecx, [ebp - 0x18]
call fcn.00425660
movzx ecx, al
test ecx, ecx
jne 0x414b94
push 0x42c5f0
lea ecx, [ebp - 0x18]
call fcn.004255c0
mov ecx, dword [ebp - 0x110]
call fcn.00411c00
push eax
lea ecx, [ebp - 0x18]
call fcn.004255c0
jmp 0x414aea
mov edx, dword [ebp - 0x44]
push edx
lea ecx, [ebp - 0x88]
call fcn.00411990
push eax
mov eax, dword [0x42f114]
push eax
lea ecx, [ebp - 0x3c]
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov edx, dword [ebp - 0x44]
push edx
lea ecx, [ebp - 0x18]
call fcn.00411990
push eax
mov eax, dword [0x42f118]
push eax
lea ecx, [ebp - 0x3c]
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov edx, dword [ebp - 0x44]
push edx
call fcn.0040ed00
add esp, 4
mov eax, dword [ebp - 0x70]
push eax
push 0x40
push 0xbc0
mov ecx, dword [ebp - 0x9c]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00428bd0
add esp, 0x14
mov byte [ebp - 0x121], 1
lea ecx, [ebp - 0x18]
call fcn.00425500
lea ecx, [ebp - 0x88]
call fcn.00425500
lea ecx, [ebp - 0x98]
call fcn.004159c0
lea ecx, [ebp - 0x6c]
call fcn.0041a200
mov al, byte [ebp - 0x121]
mov esp, ebp
pop ebp
ret 0x10