Function at 0x401000
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x37730
call fcn.00405810
push edi
mov al, byte [0x415e1c]
mov byte [ebp - 0x6650], al
xor ecx, ecx
mov dword [ebp - 0x664f], ecx
mov dword [ebp - 0x664b], ecx
mov dword [ebp - 0x6647], ecx
mov byte [ebp - 0x6643], cl
mov dl, byte [0x415e20]
mov byte [ebp - 0x375c8], dl
mov ecx, 0xc34f
xor eax, eax
lea edi, [ebp - 0x375c7]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [0x415e24]
mov byte [ebp - 0x6640], al
mov ecx, 0x1869
xor eax, eax
lea edi, [ebp - 0x663f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov cl, byte [0x415e28]
mov byte [ebp - 0x104], cl
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x103]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dl, byte [0x415e2c]
mov byte [ebp - 0x37730], dl
mov ecx, 0x59
xor eax, eax
lea edi, [ebp - 0x3772f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [ebp - 0x675c], 0
mov dword [ebp - 0x6864], 0
mov dword [ebp - 0x687c], 0
mov dword [ebp - 0x6758], 0
mov al, byte [0x415e30]
mov byte [ebp - 0x490], al
mov ecx, 0x59
xor eax, eax
lea edi, [ebp - 0x48f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov cl, byte [0x415e34]
mov byte [ebp - 0x208], cl
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x207]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dl, byte [0x415e38]
mov byte [ebp - 0x6860], dl
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x685f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [0x415e3c]
mov byte [ebp - 0x6754], al
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x6753]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov cl, byte [0x415e40]
mov byte [ebp - 0x314], cl
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x313]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dl, byte [0x415e44]
mov byte [ebp - 0x6878], dl
xor eax, eax
mov dword [ebp - 0x6877], eax
mov dword [ebp - 0x6873], eax
mov dword [ebp - 0x686f], eax
mov dword [ebp - 0x686b], eax
mov word [ebp - 0x6867], ax
mov byte [ebp - 0x6865], al
mov dword [ebp - 0x328], 0
mov dword [ebp - 0x320], 0
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x31c], 0
mov dword [ebp - 0x20c], 0
mov dword [ebp - 0x318], 0
mov dword [ebp - 0x324], 0
mov dword [ebp - 0x6884], 0
mov dword [ebp - 0x6888], 0
mov dword [ebp - 0x6880], 0
mov dword [ebp - 0x498], 0
mov dword [ebp - 0x494], 0
push 1
call fcn.00404d37
add esp, 4
mov dword [ebp - 0x498], eax
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [0xf0db00], eax
push 0x104
push 0x413298
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x494], 0
push 0x413298
call fcn.00405790
add esp, 4
mov dword [ebp - 0x675c], eax
jmp 0x401274
mov ecx, dword [ebp - 0x675c]
sub ecx, 1
mov dword [ebp - 0x675c], ecx
cmp dword [ebp - 0x675c], 1
jle 0x4012c7
push 1
mov edx, dword [ebp - 0x675c]
push edx
push 0x413298
call fcn.00403635
add esp, 0xc
push eax
call fcn.004035d1
add esp, 4
cmp eax, 0x5c
jne 0x4012c5
mov eax, dword [ebp - 0x675c]
push eax
push 0x413298
call fcn.00403762
add esp, 8
push eax
push 0x414620
call fcn.004056a0
add esp, 8
jmp 0x4012c7
jmp 0x401265
push str.____423179
push 0x4159bc
call fcn.004056a0
add esp, 8
push 0x53
call fcn.00403575
add esp, 4
push eax
push 0x4159b0
call fcn.004056a0
add esp, 8
push 0x61
call fcn.00403575
add esp, 4
push eax
push 0x4159b0
call fcn.004056b0
add esp, 8
push 0x74
call fcn.00403575
add esp, 4
push eax
push 0x4159b0
call fcn.004056b0
add esp, 8
push 0x69
call fcn.00403575
add esp, 4
push eax
push 0x4159b0
call fcn.004056b0
add esp, 8
push 0x76
call fcn.00403575
add esp, 4
push eax
push 0x4159b0
call fcn.004056b0
add esp, 8
push 0x61
call fcn.00403575
add esp, 4
push eax
push 0x4159b0
call fcn.004056b0
add esp, 8
push 0x53
call fcn.00403575
add esp, 4
push eax
push 0x4159b0
call fcn.004056b0
add esp, 8
push 0x6d
call fcn.00403575
add esp, 4
push eax
push 0x4159b0
call fcn.004056b0
add esp, 8
push 0x6f
call fcn.00403575
add esp, 4
push eax
push 0x4159b0
call fcn.004056b0
add esp, 8
push 0x6b
call fcn.00403575
add esp, 4
push eax
push 0x4159b0
call fcn.004056b0
add esp, 8
mov dword [ebp - 0x675c], 1
jmp 0x4013e4
mov ecx, dword [ebp - 0x675c]
add ecx, 1
mov dword [ebp - 0x675c], ecx
cmp dword [ebp - 0x675c], 0xb
jge 0x40141b
push 1
mov edx, dword [ebp - 0x675c]
push edx
push 0x4159b0
call fcn.00403635
add esp, 0xc
push eax
call fcn.004035d1
add esp, 4
mov ecx, dword [ebp - 0x675c]
mov dword [ecx*4 + 0x4160e0], eax
jmp 0x4013d5
mov dword [ebp - 0x675c], 0
push 0x415e48
push 0x40f2d8
call fcn.004056a0
add esp, 8
push 0x415e4c
lea edx, [ebp - 0x208]
push edx
call fcn.004056a0
add esp, 8
push 0x40f2d8
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov dword [ebp - 0x494], eax
mov eax, dword [ebp - 0x494]
push eax
push 0x40f2d8
call fcn.00403762
add esp, 8
push eax
push 0x40f2d8
call fcn.004056a0
add esp, 8
push 0x72
call fcn.00403575
add esp, 4
push eax
push 0x65
call fcn.00403575
add esp, 4
push eax
push 0x64
call fcn.00403575
add esp, 4
push eax
push 0x6c
call fcn.00403575
add esp, 4
push eax
push 0x6f
call fcn.00403575
add esp, 4
push eax
push 0x66
call fcn.00403575
add esp, 4
push eax
push 0x61
call fcn.00403575
add esp, 4
push eax
push 0x40f2d8
push 0x40e03c
push 0x40f4e0
call fcn.0040563f
add esp, 0x28
push 0x40e050
lea ecx, [ebp - 0x37730]
push ecx
call fcn.004056a0
add esp, 8
push 0x22
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x37730]
push edx
call fcn.004056b0
add esp, 8
push 0x40f4e0
lea eax, [ebp - 0x37730]
push eax
call fcn.004056b0
add esp, 8
push 0x22
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x37730]
push ecx
call fcn.004056b0
add esp, 8
push 0x40e060
lea edx, [ebp - 0x37730]
push edx
call fcn.004056b0
add esp, 8
push 0x22
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x37730]
push eax
call fcn.004056b0
add esp, 8
push 0x40f4e0
lea ecx, [ebp - 0x37730]
push ecx
call fcn.004056b0
add esp, 8
push 0x22
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x37730]
push edx
call fcn.004056b0
add esp, 8
lea eax, [ebp - 0x37730]
push eax
call fcn.004055a9
add esp, 4
push 0x70
call fcn.00403575
add esp, 4
push eax
push 0x6d
call fcn.00403575
add esp, 4
push eax
push 0x74
call fcn.00403575
add esp, 4
push eax
push 0x79
call fcn.00403575
add esp, 4
push eax
push 0x40f2d8
push 0x40e068
push 0x40f3dc
call fcn.0040563f
add esp, 0x1c
push str.if_not_exist
lea ecx, [ebp - 0x37730]
push ecx
call fcn.004056a0
add esp, 8
push 0x22
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x37730]
push edx
call fcn.004056b0
add esp, 8
push 0x40f3dc
lea eax, [ebp - 0x37730]
push eax
call fcn.004056b0
add esp, 8
push 0x22
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x37730]
push ecx
call fcn.004056b0
add esp, 8
push str._mkdir
lea edx, [ebp - 0x37730]
push edx
call fcn.004056b0
add esp, 8
push 0x22
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x37730]
push eax
call fcn.004056b0
add esp, 8
push 0x40f3dc
lea ecx, [ebp - 0x37730]
push ecx
call fcn.004056b0
add esp, 8
push 0x22
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x37730]
push edx
call fcn.004056b0
add esp, 8
lea eax, [ebp - 0x37730]
push eax
call fcn.004055a9
add esp, 4
push 0x40f3dc
push str.attrib_h
push 0x40e098
lea ecx, [ebp - 0x37730]
push ecx
call fcn.0040563f
add esp, 0x10
lea edx, [ebp - 0x37730]
push edx
call fcn.004055a9
add esp, 4
push str..bat
push 1
call fcn.00403217
add esp, 4
push eax
push 0x40e0a8
push 0x40f3dc
push str._s_s_s_s
push 0x40f5f8
call fcn.0040563f
add esp, 0x18
push 0x40f5f8
push 0x411d08
call fcn.004056a0
add esp, 8
push 0x415e50
lea eax, [ebp - 0x104]
push eax
call fcn.004056a0
add esp, 8
push str..exe
push 2
call fcn.00403217
add esp, 4
push eax
push 0x40e0c0
lea ecx, [ebp - 0x104]
push ecx
call fcn.0040563f
add esp, 0x10
lea edx, [ebp - 0x104]
push edx
push 0x40e0c8
push 0x40f3dc
push str._s_s_s
push 0x411e0c
call fcn.0040563f
add esp, 0x14
push 0x73
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x6754]
push eax
call fcn.004056a0
add esp, 8
push 0x65
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x6754]
push ecx
call fcn.004056b0
add esp, 8
push 0x74
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x6754]
push edx
call fcn.004056b0
add esp, 8
push 0x20
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x6754]
push eax
call fcn.004056b0
add esp, 8
push 0x7a
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x6754]
push ecx
call fcn.004056b0
add esp, 8
push 0x74
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x6754]
push edx
call fcn.004056b0
add esp, 8
push 0x6d
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x6754]
push eax
call fcn.004056b0
add esp, 8
push 0x70
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x6754]
push ecx
call fcn.004056b0
add esp, 8
push 0x3d
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x6754]
push edx
call fcn.004056b0
add esp, 8
push 0x73
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x314]
push eax
call fcn.004056a0
add esp, 8
push 0x65
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x314]
push ecx
call fcn.004056b0
add esp, 8
push 0x74
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x314]
push edx
call fcn.004056b0
add esp, 8
push 0x20
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x314]
push eax
call fcn.004056b0
add esp, 8
push 0x4d
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x314]
push ecx
call fcn.004056b0
add esp, 8
push 0x59
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x314]
push edx
call fcn.004056b0
add esp, 8
push 0x46
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x314]
push eax
call fcn.004056b0
add esp, 8
push 0x49
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x314]
push ecx
call fcn.004056b0
add esp, 8
push 0x4c
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x314]
push edx
call fcn.004056b0
add esp, 8
push 0x45
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x314]
push eax
call fcn.004056b0
add esp, 8
push 0x53
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x314]
push ecx
call fcn.004056b0
add esp, 8
push 0x3d
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x314]
push edx
call fcn.004056b0
add esp, 8
push 0x40f3dc
lea eax, [ebp - 0x6754]
push eax
push 0x40e0d4
lea ecx, [ebp - 0x208]
push ecx
call fcn.0040563f
add esp, 0x10
push 0x40f4e0
lea edx, [ebp - 0x314]
push edx
push 0x40e0dc
lea eax, [ebp - 0x6860]
push eax
call fcn.0040563f
add esp, 0x10
push 0x73
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x6754]
push ecx
call fcn.004056a0
add esp, 8
push 0x65
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x6754]
push edx
call fcn.004056b0
add esp, 8
push 0x74
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x6754]
push eax
call fcn.004056b0
add esp, 8
push 0x20
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x6754]
push ecx
call fcn.004056b0
add esp, 8
push 0x62
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x6754]
push edx
call fcn.004056b0
add esp, 8
push 0x66
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x6754]
push eax
call fcn.004056b0
add esp, 8
push 0x63
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x6754]
push ecx
call fcn.004056b0
add esp, 8
push 0x65
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x6754]
push edx
call fcn.004056b0
add esp, 8
push 0x63
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x6754]
push eax
call fcn.004056b0
add esp, 8
push 0x3d
call fcn.00403575
add esp, 4
push eax
lea ecx, [ebp - 0x6754]
push ecx
call fcn.004056b0
add esp, 8
push 0x415e54
push 0x411f10
call fcn.004056a0
add esp, 8
push 0x30
call fcn.00403575
add esp, 4
push eax
push 0x2f
call fcn.00403575
add esp, 4
push eax
push 0x20
call fcn.00403575
add esp, 4
push eax
push 0x54
call fcn.00403575
add esp, 4
push eax
push 0x46
call fcn.00403575
add esp, 4
push eax
push 0x49
call fcn.00403575
add esp, 4
push eax
push 0x48
call fcn.00403575
add esp, 4
push eax
push 0x53
call fcn.00403575
add esp, 4
push eax
push 0x40e0e4
lea edx, [ebp - 0x6878]
push edx
call fcn.0040563f
add esp, 0x28
push 0x40f5f8
push 0x20
call fcn.00403575
add esp, 4
push eax
push 0x6c
call fcn.00403575
add esp, 4
push eax
push 0x65
call fcn.00403575
add esp, 4
push eax
push 0x64
call fcn.00403575
add esp, 4
push eax
push 0x40e0f8
lea eax, [ebp - 0x490]
push eax
call fcn.0040563f
add esp, 0x1c
push 0x22
call fcn.00403575
add esp, 4
push eax
push 0x413298
push 0x22
call fcn.00403575
add esp, 4
push eax
push 0x20
call fcn.00403575
add esp, 4
push eax
push 0x40f5f8
push str._s_s_s_s_s
push 0x40f5f8
call fcn.0040563f
add esp, 0x1c
cmp dword [ebp + 8], 1
jle 0x401d70
mov dword [ebp - 0x675c], 1
jmp 0x401c09
mov ecx, dword [ebp - 0x675c]
add ecx, 1
mov dword [ebp - 0x675c], ecx
mov edx, dword [ebp + 8]
sub edx, 1
cmp dword [ebp - 0x675c], edx
jg 0x401d4c
mov dword [ebp - 0x6888], 0
mov dword [ebp - 0x6864], 1
jmp 0x401c40
mov eax, dword [ebp - 0x6864]
add eax, 1
mov dword [ebp - 0x6864], eax
mov ecx, dword [ebp - 0x675c]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00405790
add esp, 4
add eax, 1
cmp dword [ebp - 0x6864], eax
jae 0x401ca2
push 1
mov ecx, dword [ebp - 0x6864]
push ecx
mov edx, dword [ebp - 0x675c]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00403635
add esp, 0xc
push eax
call fcn.004035d1
add esp, 4
mov dword [ebp - 0x6884], eax
cmp dword [ebp - 0x6884], 0x20
jne 0x401ca0
mov dword [ebp - 0x6888], 1
jmp 0x401c31
cmp dword [ebp - 0x6888], 1
jne 0x401d12
cmp dword [ebp - 0x675c], 1
jle 0x401cc6
push 0x40e110
push 0x410980
call fcn.004056b0
add esp, 8
push 0x22
call fcn.00403575
add esp, 4
push eax
push 0x410980
call fcn.004056b0
add esp, 8
mov edx, dword [ebp - 0x675c]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
push 0x410980
call fcn.004056b0
add esp, 8
push 0x22
call fcn.00403575
add esp, 4
push eax
push 0x410980
call fcn.004056b0
add esp, 8
jmp 0x401d47
cmp dword [ebp - 0x675c], 1
jle 0x401d2d
push 0x40e114
push 0x410980
call fcn.004056b0
add esp, 8
mov edx, dword [ebp - 0x675c]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
push 0x410980
call fcn.004056b0
add esp, 8
jmp 0x401bfa
push 0x40e118
push 0x40f5f8
call fcn.004056b0
add esp, 8
push 0x410980
push 0x40f5f8
call fcn.004056b0
add esp, 8
push 0xa
call fcn.00403575
add esp, 4
push eax
push 0xd
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x6878]
push edx
push 0xa
call fcn.00403575
add esp, 4
push eax
push 0xd
call fcn.00403575
add esp, 4
push eax
push 0x410980
push 0x40e11c
push 0xa
call fcn.00403575
add esp, 4
push eax
push 0xd
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x104]
push eax
lea ecx, [ebp - 0x6754]
push ecx
push 0xa
call fcn.00403575
add esp, 4
push eax
push 0xd
call fcn.00403575
add esp, 4
push eax
lea edx, [ebp - 0x6860]
push edx
push 0xa
call fcn.00403575
add esp, 4
push eax
push 0xd
call fcn.00403575
add esp, 4
push eax
lea eax, [ebp - 0x208]
push eax
push 0xa
call fcn.00403575
add esp, 4
push eax
push 0xd
call fcn.00403575
add esp, 4
push eax
push str._echo_off
push str._s_s_s_s_s_s_s_s_s_s_s_s_s_s_s_s_s_s_s_s
push 0x411f10
call fcn.0040563f
add esp, 0x58
call fcn.00401ef5
push 0x40f5f8
call fcn.004055a9
add esp, 4
mov dword [0x40f5f0], eax
cmp dword [0x40f5ec], 1
jne 0x401ea0
mov dword [ebp - 0x675c], 0
jmp 0x401e73
mov ecx, dword [ebp - 0x675c]
add ecx, 1
mov dword [ebp - 0x675c], ecx
mov edx, dword [0x40f5f4]
sub edx, 2
cmp dword [ebp - 0x675c], edx
jge 0x401ea0
mov eax, dword [ebp - 0x675c]
imul eax, eax, 0x3e8
add eax, 0x584480
push eax
call fcn.004055a9
add esp, 4
jmp 0x401e64
mov ecx, dword [0x40f5f4]
sub ecx, 2
mov dword [ebp - 0x675c], ecx
jmp 0x401ec0
mov edx, dword [ebp - 0x675c]
add edx, 1
mov dword [ebp - 0x675c], edx
mov eax, dword [ebp - 0x675c]
cmp eax, dword [0x40f5f4]
jge 0x401eeb
mov ecx, dword [ebp - 0x675c]
imul ecx, ecx, 0x3e8
add ecx, 0x584480
push ecx
call fcn.004055a9
add esp, 4
jmp 0x401eb1
mov eax, dword [0x40f5f0]
pop edi
mov esp, ebp
pop ebp
ret