Function at 0x4585d0
Capabilities:
Check if file exists
Copy file
Delete file
Get disk information
Query environment variable
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59314e
mov eax, dword fs:[0]
push eax
sub esp, 0xc44
mov eax, dword [0x5deba8]
xor eax, ebp
mov dword [ebp - 0x28], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xa74], 0
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041d970
mov byte [ebp - 4], 3
push 1
lea eax, [ebp - 0x904]
push eax
lea ecx, [ebp + 0x10]
call fcn.0041dde0
mov dword [ebp - 0xa78], eax
mov ecx, dword [ebp - 0xa78]
mov dword [ebp - 0xa7c], ecx
mov byte [ebp - 4], 4
push 0x5b1dcc
mov ecx, dword [ebp - 0xa7c]
call fcn.0041dbd0
neg eax
sbb eax, eax
neg eax
mov byte [ebp - 0x8fd], al
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x904]
call fcn.0041dab0
movzx edx, byte [ebp - 0x8fd]
test edx, edx
je 0x458682
push 0x5b1dd0
lea ecx, [ebp + 0x10]
call fcn.0041db30
push ecx
mov ecx, esp
mov dword [ebp - 0x908], esp
lea eax, [ebp + 0xc]
push eax
call fcn.0041d990
mov dword [ebp - 0xa80], eax
call fcn.00456790
add esp, 4
mov dword [ebp - 0xa84], eax
mov ecx, dword [ebp - 0xa84]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0xa88], edx
cmp dword [ebp - 0xa88], 8
ja case.0x4586cd.4
mov eax, dword [ebp - 0xa88]
jmp dword [eax*4 + 0x45a6f0]
lea ecx, [ebp + 0x14]
push ecx
lea edx, [ebp + 0x10]
push edx
lea eax, [ebp - 0x90c]
push eax
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xa8c], eax
mov ecx, dword [ebp - 0xa8c]
mov dword [ebp - 0xa90], ecx
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0xa90]
push edx
lea ecx, [ebp - 0x14]
call fcn.0041dad0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x90c]
call fcn.0041dab0
push 0xffffffffffffffff
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x910], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xa94], eax
mov eax, dword [ebp + 8]
push eax
call fcn.00456be0
add esp, 0x10
mov dword [ebp - 0xa98], eax
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
lea edx, [ebp + 0x14]
push edx
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp - 0x914]
push ecx
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xa9c], eax
mov edx, dword [ebp - 0xa9c]
mov dword [ebp - 0xaa0], edx
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0xaa0]
push eax
lea ecx, [ebp - 0x14]
call fcn.0041dad0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x914]
call fcn.0041dab0
push ecx
mov ecx, esp
mov dword [ebp - 0x918], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xaa4], eax
lea eax, [ebp - 0x20]
push eax
call fcn.0045d4c0
add esp, 8
mov dword [ebp - 0xaa8], eax
mov byte [ebp - 4], 7
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x1c]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x91c], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xaac], eax
lea eax, [ebp - 0x18]
push eax
call fcn.0045e500
add esp, 0xc
mov dword [ebp - 0xab0], eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x18]
call fcn.0041e310
movzx ecx, al
test ecx, ecx
jne 0x45926a
push 4
lea edx, [ebp - 0x924]
push edx
lea ecx, [ebp - 0x18]
call fcn.0041dde0
mov dword [ebp - 0xab4], eax
mov eax, dword [ebp - 0xab4]
mov dword [ebp - 0xab8], eax
mov byte [ebp - 4], 9
push 0x5b1dd4
mov ecx, dword [ebp - 0xab8]
call fcn.0041dbd0
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x91d], al
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x924]
call fcn.0041dab0
movzx ecx, byte [ebp - 0x91d]
test ecx, ecx
je 0x458d28
push 0x5b1de0
lea ecx, [ebp - 0x92c]
call fcn.0041da30
mov byte [ebp - 4], 0xa
lea edx, [ebp - 0x92c]
push edx
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x930]
push ecx
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xabc], eax
push 1
mov ecx, dword [ebp - 0xabc]
call fcn.0041e1e0
push eax
lea ecx, [ebp - 0x18]
call fcn.0041e1e0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x925], al
lea ecx, [ebp - 0x930]
call fcn.0041dab0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x92c]
call fcn.0041dab0
movzx edx, byte [ebp - 0x925]
test edx, edx
je 0x458b53
lea ecx, [ebp - 0x20]
call fcn.0041e310
movzx eax, al
test eax, eax
jne 0x45898a
lea ecx, [ebp - 0x20]
call fcn.0041e1e0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x45898a
lea ecx, [ebp - 0x20]
call fcn.0041e1e0
push eax
call fcn.0045cbb0
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x458a35
push 2
lea edx, [ebp - 0x14]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x934], esp
lea eax, [ebp + 0xc]
push eax
call fcn.0041d990
mov dword [ebp - 0xac0], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xac1], al
movzx ecx, byte [ebp - 0xac1]
test ecx, ecx
jne 0x458a30
push 0x5b1de8
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov edx, dword [ebp - 0xa74]
or edx, 1
mov dword [ebp - 0xa74], edx
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x18]
call fcn.0041dab0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x458b4e
push 0x5b1dec
push 0xffffffffffffffff
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x93c], esp
lea edx, [ebp - 0x20]
push edx
call fcn.0041d990
mov dword [ebp - 0xac8], eax
lea eax, [ebp - 0x940]
push eax
call fcn.00456be0
add esp, 0x10
mov dword [ebp - 0xacc], eax
mov ecx, dword [ebp - 0xacc]
mov dword [ebp - 0xad0], ecx
mov edx, dword [ebp - 0xad0]
push edx
call fcn.0045c530
add esp, 8
mov byte [ebp - 0x935], al
lea ecx, [ebp - 0x940]
call fcn.0041dab0
movzx eax, byte [ebp - 0x935]
test eax, eax
je 0x458b4e
push 2
lea ecx, [ebp - 0x14]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x944], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xad4], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xad5], al
movzx eax, byte [ebp - 0xad5]
test eax, eax
jne 0x458b4e
push 0x5b1df0
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x18]
call fcn.0041dab0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x458d23
push 0x5b1df4
lea ecx, [ebp - 0x948]
call fcn.0041da30
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0x948]
push edx
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x94c]
push ecx
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xadc], eax
push 0
mov ecx, dword [ebp - 0xadc]
call fcn.0041e1e0
push eax
call fcn.00455f70
add esp, 8
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x94c]
call fcn.0041dab0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x948]
call fcn.0041dab0
mov ecx, dword [ebp - 0x24]
call fcn.00427590
test eax, eax
ja 0x458d16
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x954], edx
mov eax, dword [ebp - 0x954]
mov dword [ebp - 0x950], eax
cmp dword [ebp - 0x950], 0
je 0x458c04
push 1
mov ecx, dword [ebp - 0x950]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x950]
mov eax, dword [edx]
call eax
mov dword [ebp - 0xae0], eax
jmp 0x458c0e
mov dword [ebp - 0xae0], 0
push 0x5b1dfc
lea ecx, [ebp - 0x958]
call fcn.0041da30
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x958]
push ecx
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0x95c]
push eax
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xae4], eax
mov ecx, dword [ebp - 0xae4]
call fcn.0041e1e0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x95c]
call fcn.0041dab0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x958]
call fcn.0041dab0
push 2
lea ecx, [ebp - 0x14]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x960], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xae8], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xae9], al
movzx eax, byte [ebp - 0xae9]
test eax, eax
jne 0x458d14
push 0x5b1e04
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x18]
call fcn.0041dab0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x458d23
push 0x5b1e08
lea ecx, [ebp - 0x14]
call fcn.0041db50
jmp 0x459265
push 4
lea edx, [ebp - 0x968]
push edx
lea ecx, [ebp - 0x18]
call fcn.0041dde0
mov dword [ebp - 0xaf0], eax
mov eax, dword [ebp - 0xaf0]
mov dword [ebp - 0xaf4], eax
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0xa74]
or ecx, 2
mov dword [ebp - 0xa74], ecx
push 0x5b1e10
mov ecx, dword [ebp - 0xaf4]
call fcn.0041dbd0
test eax, eax
je 0x458dcb
push 4
lea edx, [ebp - 0x96c]
push edx
lea ecx, [ebp - 0x18]
call fcn.0041dde0
mov dword [ebp - 0xaf8], eax
mov eax, dword [ebp - 0xaf8]
mov dword [ebp - 0xafc], eax
mov dword [ebp - 4], 0xe
mov ecx, dword [ebp - 0xa74]
or ecx, 4
mov dword [ebp - 0xa74], ecx
push 0x5b1e1c
mov ecx, dword [ebp - 0xafc]
call fcn.0041dbd0
test eax, eax
je 0x458dcb
mov dword [ebp - 0xb00], 0
jmp 0x458dd5
mov dword [ebp - 0xb00], 1
mov dl, byte [ebp - 0xb00]
mov byte [ebp - 0x961], dl
mov dword [ebp - 4], 0xd
mov eax, dword [ebp - 0xa74]
and eax, 4
je 0x458e05
and dword [ebp - 0xa74], 0xfffffffb
lea ecx, [ebp - 0x96c]
call fcn.0041dab0
mov dword [ebp - 4], 8
mov ecx, dword [ebp - 0xa74]
and ecx, 2
je 0x458e29
and dword [ebp - 0xa74], 0xfffffffd
lea ecx, [ebp - 0x968]
call fcn.0041dab0
movzx edx, byte [ebp - 0x961]
test edx, edx
je 0x458fa6
mov eax, dword [0x5b1e28]
mov dword [ebp - 0x234], eax
push 0x204
push 0
lea ecx, [ebp - 0x230]
push ecx
call fcn.005533a0
add esp, 0xc
lea edx, [ebp - 0x18]
push edx
call fcn.0045ca50
add esp, 4
push 0x104
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x18]
call fcn.0041e1e0
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push 0x5b1e2c
mov ecx, dword [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x14]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x974], esp
lea eax, [ebp - 0x234]
push eax
call fcn.0041d9b0
mov dword [ebp - 0xb04], eax
lea ecx, [ebp - 0x978]
push ecx
call fcn.00456be0
add esp, 0x10
mov dword [ebp - 0xb08], eax
mov edx, dword [ebp - 0xb08]
mov dword [ebp - 0xb0c], edx
mov eax, dword [ebp - 0xb0c]
push eax
call fcn.0045c530
add esp, 8
mov byte [ebp - 0x96d], al
lea ecx, [ebp - 0x978]
call fcn.0041dab0
movzx ecx, byte [ebp - 0x96d]
test ecx, ecx
je 0x458fa1
push 2
lea edx, [ebp - 0x14]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x97c], esp
lea eax, [ebp - 0x234]
push eax
call fcn.0041d9b0
mov dword [ebp - 0xb10], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xb11], al
movzx ecx, byte [ebp - 0xb11]
test ecx, ecx
jne 0x458fa1
push 0x5b1e30
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov edx, dword [ebp - 0xa74]
or edx, 1
mov dword [ebp - 0xa74], edx
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x18]
call fcn.0041dab0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x459265
push 4
lea eax, [ebp - 0x984]
push eax
lea ecx, [ebp - 0x18]
call fcn.0041dde0
mov dword [ebp - 0xb18], eax
push 0x2e
mov ecx, dword [ebp - 0xb18]
call fcn.0041dcb0
xor ecx, ecx
cmp eax, 0xffffffff
sete cl
mov byte [ebp - 0x97d], cl
lea ecx, [ebp - 0x984]
call fcn.0041dab0
movzx edx, byte [ebp - 0x97d]
test edx, edx
je 0x459063
push 0x5b1e34
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x988]
push ecx
call fcn.0041dfe0
add esp, 0xc
mov dword [ebp - 0xb1c], eax
push 1
mov ecx, dword [ebp - 0xb1c]
call fcn.0041e1e0
push eax
lea ecx, [ebp - 0x18]
call fcn.0041e1e0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea ecx, [ebp - 0x988]
call fcn.0041dab0
push 0x5b1e40
lea ecx, [ebp - 0x14]
call fcn.0041db30
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x18]
call fcn.0041dab0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.0041dab0
jmp 0x45a684
lea ecx, [ebp - 0x20]
call fcn.0041e310
movzx edx, al
test edx, edx
jne 0x4590a1
lea ecx, [ebp - 0x20]
call fcn.0041e1e0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4590a1
lea ecx, [ebp - 0x20]
call fcn.0041e1e0
push eax
call fcn.0045cbb0
add esp, 4
movzx eax, al
test eax, eax
je 0x45914c
push 2
lea ecx, [ebp - 0x14]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x98c], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xb20], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xb21], al
movzx eax, byte [ebp - 0xb21]
test eax, eax
jne 0x459147
push 0x5b1e4c
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x18]
call fcn.0041dab0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x459265
push 0x5b1e50
push 0xffffffffffffffff
lea edx, [ebp - 0x14]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x994], esp
lea eax, [ebp - 0x20]
push eax
call fcn.0041d990
mov dword [ebp - 0xb28], eax
lea ecx, [ebp - 0x998]
push ecx
call fcn.00456be0
add esp, 0x10
mov dword [ebp - 0xb2c], eax
mov edx, dword [ebp - 0xb2c]
mov dword [ebp - 0xb30], edx
mov eax, dword [ebp - 0xb30]
push eax
call fcn.0045c530
add esp, 8
mov byte [ebp - 0x98d], al
lea ecx, [ebp - 0x998]
call fcn.0041dab0
movzx ecx, byte [ebp - 0x98d]
test ecx, ecx
je 0x459265
push 2
lea edx, [ebp - 0x14]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x99c], esp
lea eax, [ebp + 0xc]
push eax
call fcn.0041d990
mov dword [ebp - 0xb34], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xb35], al
movzx ecx, byte [ebp - 0xb35]
test ecx, ecx
jne 0x459265
push 0x5b1e54
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov edx, dword [ebp - 0xa74]
or edx, 1
mov dword [ebp - 0xa74], edx
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x18]
call fcn.0041dab0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x45951a
lea ecx, [ebp - 0x20]
call fcn.0041e310
movzx eax, al
test eax, eax
jne 0x45930d
lea ecx, [ebp - 0x20]
call fcn.0041e1e0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x45930d
lea ecx, [ebp - 0x20]
call fcn.0041e1e0
push eax
call fcn.0045cbb0
add esp, 4
movzx ecx, al
test ecx, ecx
jne 0x45930d
push 1
lea edx, [ebp - 0x9a4]
push edx
lea ecx, [ebp - 0x20]
call fcn.0041dde0
mov dword [ebp - 0xb3c], eax
mov eax, dword [ebp - 0xb3c]
mov dword [ebp - 0xb40], eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0xa74]
or ecx, 8
mov dword [ebp - 0xa74], ecx
push 0x5b1e58
mov ecx, dword [ebp - 0xb40]
call fcn.0041dbd0
test eax, eax
je 0x45930d
push 0x2e
lea ecx, [ebp - 0x20]
call fcn.0041dcb0
cmp eax, 0xffffffff
je 0x45930d
mov dword [ebp - 0xb44], 0
jmp 0x459317
mov dword [ebp - 0xb44], 1
mov dl, byte [ebp - 0xb44]
mov byte [ebp - 0x99d], dl
mov dword [ebp - 4], 8
mov eax, dword [ebp - 0xa74]
and eax, 8
je 0x459347
and dword [ebp - 0xa74], 0xfffffff7
lea ecx, [ebp - 0x9a4]
call fcn.0041dab0
movzx ecx, byte [ebp - 0x99d]
test ecx, ecx
je 0x459401
push 2
lea edx, [ebp - 0x14]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x9a8], esp
lea eax, [ebp + 0xc]
push eax
call fcn.0041d990
mov dword [ebp - 0xb48], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xb49], al
movzx ecx, byte [ebp - 0xb49]
test ecx, ecx
jne 0x4593fc
push 0x5b1e5c
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov edx, dword [ebp - 0xa74]
or edx, 1
mov dword [ebp - 0xa74], edx
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x18]
call fcn.0041dab0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x45951a
push 0x5b1e60
push 0xffffffffffffffff
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x9b0], esp
lea edx, [ebp - 0x20]
push edx
call fcn.0041d990
mov dword [ebp - 0xb50], eax
lea eax, [ebp - 0x9b4]
push eax
call fcn.00456be0
add esp, 0x10
mov dword [ebp - 0xb54], eax
mov ecx, dword [ebp - 0xb54]
mov dword [ebp - 0xb58], ecx
mov edx, dword [ebp - 0xb58]
push edx
call fcn.0045c530
add esp, 8
mov byte [ebp - 0x9a9], al
lea ecx, [ebp - 0x9b4]
call fcn.0041dab0
movzx eax, byte [ebp - 0x9a9]
test eax, eax
je 0x45951a
push 2
lea ecx, [ebp - 0x14]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x9b8], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xb5c], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xb5d], al
movzx eax, byte [ebp - 0xb5d]
test eax, eax
jne 0x45951a
push 0x5b1e64
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x18]
call fcn.0041dab0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x18]
call fcn.0041dab0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x20]
call fcn.0041dab0
jmp 0x45a684
mov dword [ebp - 0x2a8], 0xffffffff
mov edx, dword [0x5b1e68]
mov dword [ebp - 0x29c], edx
push 0x60
push 0
lea eax, [ebp - 0x298]
push eax
call fcn.005533a0
add esp, 0xc
push 0
push 0
push 0
push 0
push 0
push 0x32
lea ecx, [ebp - 0x29c]
push ecx
lea ecx, [ebp + 0xc]
call fcn.0041e1e0
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
lea edx, [ebp - 0x29c]
push edx
lea ecx, [ebp - 0x2a4]
call fcn.0041d9b0
mov byte [ebp - 4], 0x10
lea ecx, [ebp + 0xc]
call fcn.0041e1e0
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov dword [ebp - 0x2a8], eax
cmp dword [ebp - 0x2a8], 3
je 0x4595c3
cmp dword [ebp - 0x2a8], 5
jne 0x459649
push 1
lea eax, [ebp - 0x9bc]
push eax
lea ecx, [ebp + 0xc]
call fcn.0041de70
mov dword [ebp - 0xb64], eax
mov ecx, dword [ebp - 0xb64]
mov dword [ebp - 0xb68], ecx
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0xb68]
push edx
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp - 0x9c0]
push ecx
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xb6c], eax
mov edx, dword [ebp - 0xb6c]
mov dword [ebp - 0xb70], edx
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0xb70]
push eax
lea ecx, [ebp - 0x14]
call fcn.0041dad0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x9c0]
call fcn.0041dab0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x9bc]
call fcn.0041dab0
jmp 0x459695
push str.folder
lea ecx, [ebp + 0x10]
push ecx
lea edx, [ebp - 0x9c4]
push edx
call fcn.0041dfe0
add esp, 0xc
mov dword [ebp - 0xb74], eax
mov eax, dword [ebp - 0xb74]
mov dword [ebp - 0xb78], eax
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0xb78]
push ecx
lea ecx, [ebp - 0x14]
call fcn.0041dad0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x9c4]
call fcn.0041dab0
mov dword [ebp - 0x2a0], 2
call fcn.0042eb50
movzx edx, al
test edx, edx
jne 0x4596b5
mov dword [ebp - 0x2a0], 4
mov eax, dword [ebp - 0x2a0]
push eax
lea ecx, [ebp - 0x14]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x9c8], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xb7c], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xb7d], al
movzx eax, byte [ebp - 0xb7d]
test eax, eax
jne 0x459757
push 0x5b1e7c
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2a4]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2a4]
call fcn.0041dab0
jmp 0x45a684
lea edx, [ebp + 0x10]
push edx
lea ecx, [ebp - 0x14]
call fcn.0041dad0
push 0x5b1e80
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp - 0x9cc]
push ecx
call fcn.0041dfe0
add esp, 0xc
mov dword [ebp - 0xb84], eax
mov edx, dword [ebp - 0xb84]
mov dword [ebp - 0xb88], edx
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0xb88]
push eax
lea ecx, [ebp - 0x14]
call fcn.0041db10
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x9cc]
call fcn.0041dab0
push 0
lea ecx, [ebp + 0xc]
call fcn.0041e1e0
push eax
call fcn.00434810
add esp, 8
mov dword [ebp - 0x2ac], eax
cmp dword [ebp - 0x2ac], 0
je 0x459a15
mov ecx, dword [ebp - 0x2ac]
call fcn.004275f0
test eax, eax
jne 0x459a15
mov ecx, dword [ebp - 0x2ac]
call fcn.00427560
cmp eax, 0x100
ja 0x459824
mov ecx, dword [ebp - 0x2ac]
call fcn.00427560
cmp eax, 0x100
jbe 0x45991f
push 0
push 0
push 0x100
push 0x100
mov ecx, dword [ebp - 0x2ac]
call fcn.00456010
mov dword [ebp - 0x2b0], eax
cmp dword [ebp - 0x2b0], 0
je 0x45991a
lea ecx, [ebp - 0x2c0]
push ecx
push 0x5b1e8c
call fcn.0045f770
add esp, 8
push 0
lea edx, [ebp - 0x2c0]
push edx
lea ecx, [ebp - 0x14]
call fcn.0045c4f0
push eax
mov ecx, dword [ebp - 0x2b0]
call fcn.004165f0
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x2ac]
mov dword [ebp - 0x9d4], eax
mov ecx, dword [ebp - 0x9d4]
mov dword [ebp - 0x9d0], ecx
cmp dword [ebp - 0x9d0], 0
je 0x4598c4
push 1
mov edx, dword [ebp - 0x9d0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x9d0]
mov edx, dword [eax]
call edx
mov dword [ebp - 0xb8c], eax
jmp 0x4598ce
mov dword [ebp - 0xb8c], 0
mov eax, dword [ebp - 0x2b0]
mov dword [ebp - 0x9dc], eax
mov ecx, dword [ebp - 0x9dc]
mov dword [ebp - 0x9d8], ecx
cmp dword [ebp - 0x9d8], 0
je 0x45990b
push 1
mov edx, dword [ebp - 0x9d8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x9d8]
mov edx, dword [eax]
call edx
mov dword [ebp - 0xb90], eax
jmp 0x459915
mov dword [ebp - 0xb90], 0
jmp 0x45a684
jmp 0x459a10
mov eax, dword [ebp - 0x2ac]
mov dword [ebp - 0x9e4], eax
mov ecx, dword [ebp - 0x9e4]
mov dword [ebp - 0x9e0], ecx
cmp dword [ebp - 0x9e0], 0
je 0x45995c
push 1
mov edx, dword [ebp - 0x9e0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x9e0]
mov edx, dword [eax]
call edx
mov dword [ebp - 0xb94], eax
jmp 0x459966
mov dword [ebp - 0xb94], 0
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp - 0x14]
call fcn.0041dad0
push 4
lea ecx, [ebp - 0x9e8]
push ecx
lea ecx, [ebp + 0xc]
call fcn.0041dde0
mov dword [ebp - 0xb98], eax
mov edx, dword [ebp - 0xb98]
mov dword [ebp - 0xb9c], edx
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0xb9c]
push eax
lea ecx, [ebp + 0x14]
push ecx
lea edx, [ebp - 0x9ec]
push edx
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xba0], eax
mov eax, dword [ebp - 0xba0]
mov dword [ebp - 0xba4], eax
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0xba4]
push ecx
lea ecx, [ebp - 0x14]
call fcn.0041db10
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x9ec]
call fcn.0041dab0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x9e8]
call fcn.0041dab0
push 0
lea ecx, [ebp - 0x14]
call fcn.0041e1e0
push eax
lea ecx, [ebp + 0xc]
call fcn.0041e1e0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
jmp 0x459b13
cmp dword [ebp - 0x2ac], 0
je 0x459b13
mov edx, dword [ebp - 0x2ac]
mov dword [ebp - 0x9f4], edx
mov eax, dword [ebp - 0x9f4]
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
je 0x459a5f
push 1
mov ecx, dword [ebp - 0x9f0]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x9f0]
mov eax, dword [edx]
call eax
mov dword [ebp - 0xba8], eax
jmp 0x459a69
mov dword [ebp - 0xba8], 0
lea ecx, [ebp + 0x10]
push ecx
lea ecx, [ebp - 0x14]
call fcn.0041dad0
push 4
lea edx, [ebp - 0x9f8]
push edx
lea ecx, [ebp + 0xc]
call fcn.0041dde0
mov dword [ebp - 0xbac], eax
mov eax, dword [ebp - 0xbac]
mov dword [ebp - 0xbb0], eax
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0xbb0]
push ecx
lea edx, [ebp + 0x14]
push edx
lea eax, [ebp - 0x9fc]
push eax
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xbb4], eax
mov ecx, dword [ebp - 0xbb4]
mov dword [ebp - 0xbb8], ecx
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0xbb8]
push edx
lea ecx, [ebp - 0x14]
call fcn.0041db10
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x9fc]
call fcn.0041dab0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x9f8]
call fcn.0041dab0
push 0
lea ecx, [ebp - 0x14]
call fcn.0041e1e0
push eax
lea ecx, [ebp + 0xc]
call fcn.0041e1e0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
jmp 0x45a684
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp + 0x10]
push ecx
lea edx, [ebp - 0xa00]
push edx
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xbbc], eax
mov eax, dword [ebp - 0xbbc]
mov dword [ebp - 0xbc0], eax
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0xbc0]
push ecx
lea ecx, [ebp - 0x14]
call fcn.0041dad0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa00]
call fcn.0041dab0
mov edx, dword [0x5b1ea0]
mov dword [ebp - 0x4d4], edx
push 0x204
push 0
lea eax, [ebp - 0x4d0]
push eax
call fcn.005533a0
add esp, 0xc
mov ecx, dword [0x5b1ea4]
mov dword [ebp - 0x6dc], ecx
push 0x204
push 0
lea edx, [ebp - 0x6d8]
push edx
call fcn.005533a0
add esp, 0xc
lea ecx, [ebp + 0xc]
call fcn.0041e1e0
push eax
push 0x104
lea eax, [ebp - 0x4d4]
push eax
push 0x5b1ea8
push str.IconFile
push 0x5b1ec0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp + 0xc]
call fcn.0041e1e0
push eax
push 0x104
lea ecx, [ebp - 0x6dc]
push ecx
push 0x5b1ee4
push 0x5b1ee8
push 0x5b1efc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x4d4]
push edx
lea ecx, [ebp - 0x2c8]
call fcn.0041d9b0
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x4d4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x459cc8
push 2
lea ecx, [ebp - 0x14]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0xa04], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xbc4], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xbc5], al
movzx eax, byte [ebp - 0xbc5]
test eax, eax
jne 0x459cc3
push 0x5b1f20
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c8]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x45a26f
push 4
lea edx, [ebp - 0xa0c]
push edx
lea ecx, [ebp - 0x2c8]
call fcn.0041dde0
mov dword [ebp - 0xbcc], eax
mov eax, dword [ebp - 0xbcc]
mov dword [ebp - 0xbd0], eax
mov byte [ebp - 4], 0x1b
push 0x5b1f24
mov ecx, dword [ebp - 0xbd0]
call fcn.0041dbd0
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0xa05], al
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0xa0c]
call fcn.0041dab0
movzx ecx, byte [ebp - 0xa05]
test ecx, ecx
je 0x45a08e
push 0x5b1f30
lea ecx, [ebp - 0xa14]
call fcn.0041da30
mov byte [ebp - 4], 0x1c
lea edx, [ebp - 0xa14]
push edx
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0xa18]
push ecx
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xbd4], eax
push 1
mov ecx, dword [ebp - 0xbd4]
call fcn.0041e1e0
push eax
lea ecx, [ebp - 0x2c8]
call fcn.0041e1e0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0xa0d], al
lea ecx, [ebp - 0xa18]
call fcn.0041dab0
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0xa14]
call fcn.0041dab0
movzx edx, byte [ebp - 0xa0d]
test edx, edx
je 0x459eb9
push 0x5b1f38
lea ecx, [ebp - 0xa1c]
call fcn.0041da30
mov byte [ebp - 4], 0x1d
lea eax, [ebp - 0xa1c]
push eax
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0xa20]
push edx
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xbd8], eax
mov ecx, dword [ebp - 0xbd8]
call fcn.0041e1e0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0xa20]
call fcn.0041dab0
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0xa1c]
call fcn.0041dab0
push 2
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0xa24], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xbdc], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xbdd], al
movzx eax, byte [ebp - 0xbdd]
test eax, eax
jne 0x459eb4
push 0x5b1f40
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c8]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x45a089
push 0x5b1f44
lea ecx, [ebp - 0xa28]
call fcn.0041da30
mov byte [ebp - 4], 0x1e
lea edx, [ebp - 0xa28]
push edx
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0xa2c]
push ecx
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xbe4], eax
push 0
mov ecx, dword [ebp - 0xbe4]
call fcn.0041e1e0
push eax
call fcn.00455f70
add esp, 8
mov dword [ebp - 0x6e0], eax
lea ecx, [ebp - 0xa2c]
call fcn.0041dab0
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0xa28]
call fcn.0041dab0
mov ecx, dword [ebp - 0x6e0]
call fcn.00427590
test eax, eax
ja 0x45a07c
mov edx, dword [ebp - 0x6e0]
mov dword [ebp - 0xa34], edx
mov eax, dword [ebp - 0xa34]
mov dword [ebp - 0xa30], eax
cmp dword [ebp - 0xa30], 0
je 0x459f73
push 1
mov ecx, dword [ebp - 0xa30]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xa30]
mov eax, dword [edx]
call eax
mov dword [ebp - 0xbe8], eax
jmp 0x459f7d
mov dword [ebp - 0xbe8], 0
push 0x5b1f4c
lea ecx, [ebp - 0xa38]
call fcn.0041da30
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0xa38]
push ecx
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0xa3c]
push eax
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xbec], eax
mov ecx, dword [ebp - 0xbec]
call fcn.0041e1e0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0xa3c]
call fcn.0041dab0
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0xa38]
call fcn.0041dab0
push 2
lea ecx, [ebp - 0x14]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0xa40], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xbf0], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xbf1], al
movzx eax, byte [ebp - 0xbf1]
test eax, eax
jne 0x45a07a
push 0x5b1f54
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c8]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x45a089
push 0x5b1f58
lea ecx, [ebp - 0x14]
call fcn.0041db50
jmp 0x45a26f
push 4
lea edx, [ebp - 0xa48]
push edx
lea ecx, [ebp - 0x2c8]
call fcn.0041dde0
mov dword [ebp - 0xbf8], eax
mov eax, dword [ebp - 0xbf8]
mov dword [ebp - 0xbfc], eax
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp - 0xa74]
or ecx, 0x10
mov dword [ebp - 0xa74], ecx
push 0x5b1f60
mov ecx, dword [ebp - 0xbfc]
call fcn.0041dbd0
test eax, eax
je 0x45a137
push 4
lea edx, [ebp - 0xa4c]
push edx
lea ecx, [ebp - 0x2c8]
call fcn.0041dde0
mov dword [ebp - 0xc00], eax
mov eax, dword [ebp - 0xc00]
mov dword [ebp - 0xc04], eax
mov dword [ebp - 4], 0x21
mov ecx, dword [ebp - 0xa74]
or ecx, 0x20
mov dword [ebp - 0xa74], ecx
push str..dll
mov ecx, dword [ebp - 0xc04]
call fcn.0041dbd0
test eax, eax
je 0x45a137
mov dword [ebp - 0xc08], 0
jmp 0x45a141
mov dword [ebp - 0xc08], 1
mov dl, byte [ebp - 0xc08]
mov byte [ebp - 0xa41], dl
mov dword [ebp - 4], 0x20
mov eax, dword [ebp - 0xa74]
and eax, 0x20
je 0x45a171
and dword [ebp - 0xa74], 0xffffffdf
lea ecx, [ebp - 0xa4c]
call fcn.0041dab0
mov dword [ebp - 4], 0x1a
mov ecx, dword [ebp - 0xa74]
and ecx, 0x10
je 0x45a195
and dword [ebp - 0xa74], 0xffffffef
lea ecx, [ebp - 0xa48]
call fcn.0041dab0
movzx edx, byte [ebp - 0xa41]
test edx, edx
je 0x45a26f
mov eax, dword [0x5b1f78]
mov dword [ebp - 0x8ec], eax
push 0x204
push 0
lea ecx, [ebp - 0x8e8]
push ecx
call fcn.005533a0
add esp, 0xc
push 0x104
lea edx, [ebp - 0x8ec]
push edx
lea ecx, [ebp - 0x2c8]
call fcn.0041e1e0
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push 0xffffffffffffffff
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0xa50], esp
lea edx, [ebp - 0x8ec]
push edx
call fcn.0041d9b0
mov dword [ebp - 0xc0c], eax
mov eax, dword [ebp + 8]
push eax
call fcn.00456be0
add esp, 0x10
mov dword [ebp - 0xc10], eax
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c8]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c8]
call fcn.0041dab0
jmp 0x45a684
lea edx, [ebp + 0x14]
push edx
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp - 0xa54]
push ecx
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xc14], eax
mov edx, dword [ebp - 0xc14]
mov dword [ebp - 0xc18], edx
mov byte [ebp - 4], 0x22
mov eax, dword [ebp - 0xc18]
push eax
lea ecx, [ebp - 0x14]
call fcn.0041dad0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa54]
call fcn.0041dab0
push 2
lea ecx, [ebp - 0x14]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0xa58], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xc1c], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xc1d], al
movzx eax, byte [ebp - 0xc1d]
test eax, eax
jne 0x45a35c
push 0x5b1f7c
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x45a684
push str.text
lea edx, [ebp + 0x10]
push edx
lea eax, [ebp - 0xa5c]
push eax
call fcn.0041dfe0
add esp, 0xc
mov dword [ebp - 0xc24], eax
mov ecx, dword [ebp - 0xc24]
mov dword [ebp - 0xc28], ecx
mov byte [ebp - 4], 0x23
mov edx, dword [ebp - 0xc28]
push edx
lea ecx, [ebp - 0x14]
call fcn.0041dad0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa5c]
call fcn.0041dab0
mov dword [ebp - 0x8f0], 2
call fcn.0042eb50
movzx eax, al
test eax, eax
jne 0x45a3cd
mov dword [ebp - 0x8f0], 4
mov ecx, dword [ebp - 0x8f0]
push ecx
lea edx, [ebp - 0x14]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0xa60], esp
lea eax, [ebp + 0xc]
push eax
call fcn.0041d990
mov dword [ebp - 0xc2c], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xc2d], al
movzx ecx, byte [ebp - 0xc2d]
test ecx, ecx
jne 0x45a460
push 0x5b1f8c
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov edx, dword [ebp - 0xa74]
or edx, 1
mov dword [ebp - 0xa74], edx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x45a684
push 0x5b1f90
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp - 0xa64]
push ecx
call fcn.0041dfe0
add esp, 0xc
mov dword [ebp - 0xc34], eax
mov edx, dword [ebp - 0xc34]
mov dword [ebp - 0xc38], edx
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0xc38]
push eax
lea ecx, [ebp - 0x14]
call fcn.0041dad0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa64]
call fcn.0041dab0
mov dword [ebp - 0x8f4], 2
call fcn.0042eb50
movzx ecx, al
test ecx, ecx
jne 0x45a4d1
mov dword [ebp - 0x8f4], 4
mov edx, dword [ebp - 0x8f4]
push edx
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0xa68], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xc3c], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xc3d], al
movzx eax, byte [ebp - 0xc3d]
test eax, eax
jne 0x45a564
push 0x5b1f98
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
jmp 0x45a684
push 3
lea edx, [ebp - 0x8fc]
push edx
lea ecx, [ebp + 0xc]
call fcn.0041dde0
mov byte [ebp - 4], 0x25
lea eax, [ebp - 0x8fc]
push eax
lea ecx, [ebp + 0x10]
push ecx
lea edx, [ebp - 0xa6c]
push edx
call fcn.0041df30
add esp, 0xc
mov dword [ebp - 0xc44], eax
mov eax, dword [ebp - 0xc44]
mov dword [ebp - 0xc48], eax
mov byte [ebp - 4], 0x26
mov ecx, dword [ebp - 0xc48]
push ecx
lea ecx, [ebp - 0x14]
call fcn.0041db10
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0xa6c]
call fcn.0041dab0
mov dword [ebp - 0x8f8], 2
mov edx, dword [ebp - 0x8f8]
push edx
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0xa70], esp
lea edx, [ebp + 0xc]
push edx
call fcn.0041d990
mov dword [ebp - 0xc4c], eax
call fcn.0045dc10
add esp, 0xc
mov byte [ebp - 0xc4d], al
movzx eax, byte [ebp - 0xc4d]
test eax, eax
jne 0x45a675
push 0x5b1f9c
mov ecx, dword [ebp + 8]
call fcn.0041d9b0
mov ecx, dword [ebp - 0xa74]
or ecx, 1
mov dword [ebp - 0xa74], ecx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x8fc]
call fcn.0041dab0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
jmp 0x45a6d5
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x8fc]
call fcn.0041dab0
lea edx, [ebp - 0x14]
push edx
mov ecx, dword [ebp + 8]
call fcn.0041d990
mov eax, dword [ebp - 0xa74]
or eax, 1
mov dword [ebp - 0xa74], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.0041dab0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0xc]
call fcn.0041dab0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x10]
call fcn.0041dab0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14]
call fcn.0041dab0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x28]
xor ecx, ebp
call fcn.0055338c
mov esp, ebp
pop ebp
ret