Function at 0x435830
Capabilities:
Check if file exists
Create directory
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x469d87
mov eax, dword fs:[0]
push eax
mov eax, 0x1924
call fcn.0045a2a0
mov eax, dword [0x4832f0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
test byte [0x4e02e0], 1
mov esi, 1
jne 0x435888
or dword [0x4e02e0], esi
call fcn.00425210
push 0x46aee0
call fcn.0044bd1c
add esp, 4
push 0x476028
push 0x477d7c
mov ecx, 0x4e0620
call fcn.00423b90
cmp eax, esi
je 0x4358a7
xor eax, eax
jmp 0x436e50
push 0
call fcn.0040ace0
add esp, 4
mov dword [ebp - 0x18dc], eax
test eax, eax
je 0x4358a0
test byte [0x4e02e0], 1
jne 0x4358dc
or dword [0x4e02e0], esi
call fcn.00425210
push 0x46aee0
call fcn.0044bd1c
add esp, 4
push 0x4760c8
push 0x477d7c
mov ecx, 0x4e0620
call fcn.00423b90
mov ecx, dword [0x4dfea0]
sub ecx, dword [0x4dfe9c]
mov esi, eax
mov eax, 0x81c635bd
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x18e4], esi
je 0x43591e
call fcn.00438320
xor ebx, ebx
mov dword [ebp - 0x18e0], ebx
test esi, esi
jle 0x436e3e
mov edi, edi
push 0x32
xor esi, esi
lea ecx, [ebp - 0x44]
push esi
push ecx
call fcn.0044e9d0
add esp, 0xc
xor eax, eax
lea edx, [ebp - 0x1480]
push edx
mov dword [ebp - 0x1488], eax
mov dword [ebp - 0x1484], eax
call fcn.00424320
lea eax, [ebp - 0x1468]
push eax
mov dword [ebp - 4], esi
call fcn.00424320
lea ecx, [ebp - 0x1450]
push ecx
mov byte [ebp - 4], 1
call fcn.00424320
lea edx, [ebp - 0x1438]
push edx
mov byte [ebp - 4], 2
call fcn.00424320
lea eax, [ebp - 0x1420]
push eax
mov byte [ebp - 4], 3
call fcn.00424320
lea ecx, [ebp - 0x1408]
push ecx
mov byte [ebp - 4], 4
call fcn.00424320
lea edx, [ebp - 0x13f0]
push edx
mov byte [ebp - 4], 5
call fcn.00424320
lea eax, [ebp - 0x13d8]
push eax
mov byte [ebp - 4], 6
call fcn.00424320
lea ecx, [ebp - 0x13c0]
push ecx
mov byte [ebp - 4], 7
call fcn.00424320
push 0x208
xor eax, eax
lea edx, [ebp - 0x13a0]
mov byte [ebp - 4], 8
push esi
push edx
mov dword [ebp - 0x13a8], eax
mov dword [ebp - 0x13a4], eax
call fcn.0044e9d0
add esp, 0xc
push 0x208
lea eax, [ebp - 0x1198]
push esi
push eax
call fcn.0044e9d0
add esp, 0xc
lea ecx, [ebp - 0xf90]
push ecx
call fcn.00424320
lea edx, [ebp - 0xf78]
push edx
mov byte [ebp - 4], 9
call fcn.00424320
mov edi, 7
mov dword [ebp - 0xf48], edi
xor eax, eax
mov dword [ebp - 0xf4c], esi
mov word [ebp - 0xf5c], ax
lea ecx, [ebp - 0xf44]
push ecx
mov byte [ebp - 4], 0xb
call fcn.00424320
lea edx, [ebp - 0xf28]
mov byte [ebp - 4], 0xc
push edx
mov dword [ebp - 0xf2c], esi
call fcn.00424320
xor eax, eax
mov byte [ebp - 4], 0xd
push 0x208
mov dword [ebp - 0xf10], eax
mov dword [ebp - 0xf0c], eax
lea eax, [ebp - 0xf08]
push esi
push eax
call fcn.0044e9d0
mov edx, dword [0x4db024]
mov eax, dword [edx + 0xc]
add esp, 0xc
mov ecx, 0x4db024
call eax
add eax, 0x10
mov dword [ebp - 0xd00], eax
mov byte [ebp - 4], 0xe
mov edx, dword [0x4db024]
mov eax, dword [edx + 0xc]
mov ecx, 0x4db024
call eax
add eax, 0x10
mov dword [ebp - 0xcfc], eax
lea ecx, [ebp - 0xcf4]
mov byte [ebp - 4], 0xf
push ecx
mov dword [ebp - 0xcf8], esi
call fcn.00424320
lea edx, [ebp - 0xcdc]
push edx
mov byte [ebp - 4], 0x10
call fcn.00424320
xor eax, eax
mov dword [ebp - 0xcac], edi
mov dword [ebp - 0xcb0], esi
mov word [ebp - 0xcc0], ax
mov dword [ebp - 0xca8], esi
push ebx
push 0x475560
lea ecx, [esi + 0x32]
lea edi, [ebp - 0x44]
mov dword [ebp - 4], 0x11
call fcn.00408e10
add esp, 8
test eax, eax
jl 0x436e19
test byte [0x4e02e0], 1
jne 0x435b55
or dword [0x4e02e0], 1
call fcn.00425210
push 0x46aee0
call fcn.0044bd1c
add esp, 4
lea ecx, [ebp - 0x44]
push ecx
push 0x4e0620
mov ecx, 0x474216
mov edx, 0x477d7c
lea edi, [ebp - 0xc80]
call fcn.004239f0
mov byte [ebp - 4], 0x12
cmp dword [ebp - 0xc6c], 1
jbe 0x436dea
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x18ac], esp
push 0xffffffffffffffff
push esi
mov edx, edi
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], esi
push edx
mov byte [ecx + 4], 0
call fcn.00401b90
lea edi, [ebp - 0xc64]
call fcn.00422a40
mov byte [ebp - 4], 0x13
cmp dword [ebp - 0xc50], esi
je 0x436dbb
cmp dword [ebp - 0xc4c], 0x10
mov edi, dword [ebp - 0xc60]
jae 0x435bd8
lea edi, [ebp - 0xc60]
call fcn.004220f0
mov dword [ebp - 0x18b0], eax
cmp eax, esi
je 0x436dbb
mov edi, 0x477d80
mov dword [ebp - 0x1488], ebx
call fcn.004225b0
cmp eax, esi
je 0x435c0e
cmp dword [eax + 0xc], 8
jne 0x435c0e
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x1484], eax
mov ebx, dword [ebp - 0x18b0]
mov edi, 0x477d84
mov eax, ebx
call fcn.004225b0
cmp eax, esi
je 0x435c33
cmp dword [eax + 0xc], 8
jne 0x435c33
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0xcf8], ecx
mov edi, str.atag
mov eax, ebx
call fcn.004225b0
cmp eax, esi
je 0x435ce7
cmp dword [eax + 0xc], 0x20
jne 0x435ce7
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x435ce7
lea esp, [esp]
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x435cdd
cmp dword [ebx + 0xc], 0x10
jne 0x435cdd
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x435c72
sub eax, edx
je 0x435cdd
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x435c93
xor eax, eax
jmp 0x435caa
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea eax, [ebp - 0x18d0]
call fcn.00401860
lea edx, [ebp - 0x18d0]
push edx
lea eax, [ebp - 0xcf4]
push eax
mov byte [ebp - 4], 0x14
call fcn.00426c50
lea esi, [ebp - 0x18d0]
mov byte [ebp - 4], 0x13
call fcn.00402290
mov ebx, dword [ebx]
test ebx, ebx
jne 0x435c60
mov eax, dword [ebp - 0x18b0]
mov edi, 0x477d90
call fcn.004225b0
test eax, eax
je 0x435d9b
cmp dword [eax + 0xc], 0x20
jne 0x435d9b
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x435d9b
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x435d91
cmp dword [ebx + 0xc], 0x10
jne 0x435d91
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x435d26
sub eax, edx
je 0x435d91
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x435d47
xor eax, eax
jmp 0x435d5e
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea eax, [ebp - 0x18d0]
call fcn.00401860
lea ecx, [ebp - 0x18d0]
push ecx
lea edx, [ebp - 0x1480]
push edx
mov byte [ebp - 4], 0x15
call fcn.00426c50
lea esi, [ebp - 0x18d0]
mov byte [ebp - 4], 0x13
call fcn.00402290
mov ebx, dword [ebx]
test ebx, ebx
jne 0x435d14
mov eax, dword [ebp - 0x18b0]
mov edi, 0x477d94
call fcn.004225b0
test eax, eax
je 0x435e55
cmp dword [eax + 0xc], 0x20
jne 0x435e55
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x435e55
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x435e4b
cmp dword [ebx + 0xc], 0x10
jne 0x435e4b
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x435de0
sub eax, edx
je 0x435e4b
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x435e01
xor eax, eax
jmp 0x435e18
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea eax, [ebp - 0x18d0]
call fcn.00401860
lea eax, [ebp - 0x18d0]
push eax
lea ecx, [ebp - 0x1468]
push ecx
mov byte [ebp - 4], 0x16
call fcn.00426c50
lea esi, [ebp - 0x18d0]
mov byte [ebp - 4], 0x13
call fcn.00402290
mov ebx, dword [ebx]
test ebx, ebx
jne 0x435dc8
mov eax, dword [ebp - 0x18b0]
mov edi, 0x4760c4
call fcn.004225b0
test eax, eax
je 0x435f09
cmp dword [eax + 0xc], 0x20
jne 0x435f09
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x435f09
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x435eff
cmp dword [ebx + 0xc], 0x10
jne 0x435eff
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x435e94
sub eax, edx
je 0x435eff
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x435eb5
xor eax, eax
jmp 0x435ecc
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea eax, [ebp - 0x18d0]
call fcn.00401860
lea edx, [ebp - 0x18d0]
push edx
lea eax, [ebp - 0x1450]
push eax
mov byte [ebp - 4], 0x17
call fcn.00426c50
lea esi, [ebp - 0x18d0]
mov byte [ebp - 4], 0x13
call fcn.00402290
mov ebx, dword [ebx]
test ebx, ebx
jne 0x435e82
mov eax, dword [ebp - 0x18b0]
mov edi, 0x477d98
call fcn.004225b0
test eax, eax
je 0x435fbd
cmp dword [eax + 0xc], 0x20
jne 0x435fbd
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x435fbd
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x435fb3
cmp dword [ebx + 0xc], 0x10
jne 0x435fb3
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x435f48
sub eax, edx
je 0x435fb3
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x435f69
xor eax, eax
jmp 0x435f80
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea eax, [ebp - 0x18d0]
call fcn.00401860
lea ecx, [ebp - 0x18d0]
push ecx
lea edx, [ebp - 0x1438]
push edx
mov byte [ebp - 4], 0x18
call fcn.00426c50
lea esi, [ebp - 0x18d0]
mov byte [ebp - 4], 0x13
call fcn.00402290
mov ebx, dword [ebx]
test ebx, ebx
jne 0x435f36
mov eax, dword [ebp - 0x18b0]
mov edi, 0x477d9c
call fcn.004225b0
test eax, eax
je 0x436077
cmp dword [eax + 0xc], 0x20
jne 0x436077
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x436077
lea ebx, [ebx]
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43606d
cmp dword [ebx + 0xc], 0x10
jne 0x43606d
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x436002
sub eax, edx
je 0x43606d
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x436023
xor eax, eax
jmp 0x43603a
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea eax, [ebp - 0x18d0]
call fcn.00401860
lea eax, [ebp - 0x18d0]
push eax
lea ecx, [ebp - 0x1420]
push ecx
mov byte [ebp - 4], 0x19
call fcn.00426c50
lea esi, [ebp - 0x18d0]
mov byte [ebp - 4], 0x13
call fcn.00402290
mov ebx, dword [ebx]
test ebx, ebx
jne 0x435ff0
mov eax, dword [ebp - 0x18b0]
mov edi, 0x477da0
call fcn.004225b0
test eax, eax
je 0x43612b
cmp dword [eax + 0xc], 0x20
jne 0x43612b
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43612b
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x436121
cmp dword [ebx + 0xc], 0x10
jne 0x436121
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4360b6
sub eax, edx
je 0x436121
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x4360d7
xor eax, eax
jmp 0x4360ee
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea eax, [ebp - 0x18d0]
call fcn.00401860
lea edx, [ebp - 0x18d0]
push edx
lea eax, [ebp - 0x1408]
push eax
mov byte [ebp - 4], 0x1a
call fcn.00426c50
lea esi, [ebp - 0x18d0]
mov byte [ebp - 4], 0x13
call fcn.00402290
mov ebx, dword [ebx]
test ebx, ebx
jne 0x4360a4
mov eax, dword [ebp - 0x18b0]
mov edi, 0x477da4
call fcn.004225b0
test eax, eax
je 0x4361e5
cmp dword [eax + 0xc], 0x20
jne 0x4361e5
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x4361e5
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x4361db
cmp dword [ebx + 0xc], 0x10
jne 0x4361db
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x436170
sub eax, edx
je 0x4361db
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x436191
xor eax, eax
jmp 0x4361a8
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea eax, [ebp - 0x18d0]
call fcn.00401860
lea ecx, [ebp - 0x18d0]
push ecx
lea edx, [ebp - 0x13f0]
push edx
mov byte [ebp - 4], 0x1b
call fcn.00426c50
lea esi, [ebp - 0x18d0]
mov byte [ebp - 4], 0x13
call fcn.00402290
mov ebx, dword [ebx]
test ebx, ebx
jne 0x436158
mov esi, dword [ebp - 0x18b0]
mov edi, 0x477da8
mov eax, esi
call fcn.004225b0
mov ebx, 8
test eax, eax
je 0x43620e
cmp dword [eax + 0xc], ebx
jne 0x43620e
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x13a8], eax
mov edi, 0x477dac
mov eax, esi
call fcn.004225b0
test eax, eax
je 0x43622c
cmp dword [eax + 0xc], ebx
jne 0x43622c
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0xf10], ecx
mov edi, 0x477db0
mov eax, esi
call fcn.004225b0
test eax, eax
je 0x43624a
cmp dword [eax + 0xc], ebx
jne 0x43624a
mov edx, dword [eax + 0x14]
mov dword [ebp - 0xf0c], edx
mov edi, 0x477db4
mov eax, esi
call fcn.004225b0
test eax, eax
je 0x43650f
cmp dword [eax + 0xc], 0x10
jne 0x43650f
mov ecx, dword [ebp - 0xf10]
cmp ecx, 1
je 0x436281
cmp ecx, 2
je 0x436281
cmp ecx, 3
jne 0x43650f
mov esi, dword [eax + 0x10]
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x436290
sub eax, edx
je 0x43650f
push 0x400
lea eax, [ebp - 0x448]
push 0
push eax
call fcn.0044e9d0
mov edx, dword [ebp - 0x18dc]
add esp, 0xc
push 0x400
lea ecx, [ebp - 0x448]
push ecx
push esi
push edx
call dword [sym.imp.USERENV.dll_ExpandEnvironmentStringsForUserA]
push 0x800
lea eax, [ebp - 0xc48]
push 0
push eax
call fcn.0044e9d0
add esp, 0xc
lea ecx, [ebp - 0x448]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x436301
xor eax, eax
jmp 0x43631a
lea eax, [edi + edi]
call fcn.00457700
mov esi, esp
push 3
mov edx, edi
lea eax, [ebp - 0x448]
call fcn.0041e700
lea ecx, [ebp - 0xc48]
mov esi, eax
mov eax, ecx
mov edx, 0x400
sub esi, eax
jmp 0x436330
lea eax, [edx + 0x7ffffbfe]
test eax, eax
je 0x436350
movzx eax, word [esi + ecx]
test ax, ax
je 0x436350
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x436330
jmp 0x436354
test edx, edx
jne 0x436357
sub ecx, 2
xor edx, edx
cmp dword [ebp - 0xf0c], 1
mov word [ecx], dx
jne 0x4363d9
mov eax, dword [0x4de0a8]
cmp dword [eax + 0x54], edx
je 0x4363d9
cmp dword [eax + 0x58], ebx
jb 0x436379
mov eax, dword [eax + 0x44]
jmp 0x43637c
add eax, 0x44
push ecx
mov ecx, esp
mov dword [ebp - 0x18ac], esp
push ecx
mov ecx, eax
call fcn.0041b4c0
lea edx, [ebp - 0x18d8]
push edx
call fcn.0041ab20
mov eax, dword [ebp - 0x18d8]
mov eax, dword [eax - 0xc]
add esp, 8
test eax, eax
je 0x4363ce
cmp eax, ebx
jle 0x4363ce
lea ecx, [ebp - 0xc48]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov edx, dword [ebp - 0x18d8]
push edx
lea eax, [ebp - 0xc48]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x18d8]
call fcn.00403080
lea eax, [ebp - 0xf08]
lea esi, [ebp - 0xc48]
mov ecx, eax
mov edx, 0x104
sub esi, ecx
mov edi, edi
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x436410
movzx ecx, word [esi + eax]
test cx, cx
je 0x436410
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x4363f0
jmp 0x436414
test edx, edx
jne 0x436417
sub eax, 2
xor edx, edx
push 0x208
mov word [eax], dx
push edx
lea eax, [ebp - 0x1690]
push eax
lea ebx, [edx + 1]
call fcn.0044e9d0
lea eax, [ebp - 0x1690]
lea edx, [ebp - 0xf08]
mov ecx, eax
add esp, 0xc
mov esi, 0x104
sub edx, ecx
lea esp, [esp]
lea ecx, [esi + 0x7ffffefa]
test ecx, ecx
je 0x43646f
movzx ecx, word [edx + eax]
test cx, cx
je 0x43646f
mov word [eax], cx
add eax, 2
sub esi, ebx
jne 0x436450
jmp 0x436473
test esi, esi
jne 0x436476
sub eax, 2
xor edx, edx
mov word [eax], dx
lea eax, [ebp - 0x1690]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea ecx, [ebp - 0x1690]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x4364ae
push eax
lea edx, [ebp - 0x1690]
push edx
push eax
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x4364ae
xor ebx, ebx
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0xf08]
push eax
call edi
test ebx, ebx
je 0x43650f
lea ecx, [ebp - 0xf08]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x43650f
xor esi, esi
lea edx, [ebp - 0xf08]
call fcn.0043b4f0
test eax, eax
je 0x4364ff
lea eax, [ebp - 0xf08]
call fcn.00445fb0
test eax, eax
jne 0x436581
lea edx, [ebp - 0xf08]
push edx
call edi
inc esi
cmp esi, 5
jl 0x4364d4
mov dword [ebp - 0xf10], 0
mov eax, dword [ebp - 0x18b0]
mov edi, str.pcmd
call fcn.004225b0
test eax, eax
je 0x4365eb
cmp dword [eax + 0xc], 0x20
jne 0x4365eb
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x4365eb
lea esp, [esp]
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x4365e1
cmp dword [ebx + 0xc], 0x10
jne 0x4365e1
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x436560
sub eax, edx
je 0x4365e1
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x436597
xor eax, eax
jmp 0x4365ae
push 4
push 0
lea eax, [ebp - 0xf08]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x43650f
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea eax, [ebp - 0x18d0]
call fcn.00401860
lea ecx, [ebp - 0x18d0]
push ecx
lea edx, [ebp - 0x13d8]
push edx
mov byte [ebp - 4], 0x1c
call fcn.00426c50
lea esi, [ebp - 0x18d0]
mov byte [ebp - 4], 0x13
call fcn.00402290
mov ebx, dword [ebx]
test ebx, ebx
jne 0x436540
mov eax, dword [ebp - 0x18b0]
mov edi, 0x477dc0
call fcn.004225b0
test eax, eax
je 0x4366a5
cmp dword [eax + 0xc], 0x20
jne 0x4366a5
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x4366a5
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43669b
cmp dword [ebx + 0xc], 0x10
jne 0x43669b
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x436630
sub eax, edx
je 0x43669b
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x436651
xor eax, eax
jmp 0x436668
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea eax, [ebp - 0x18d0]
call fcn.00401860
lea eax, [ebp - 0x18d0]
push eax
lea ecx, [ebp - 0xcdc]
push ecx
mov byte [ebp - 4], 0x1d
call fcn.00426c50
lea esi, [ebp - 0x18d0]
mov byte [ebp - 4], 0x13
call fcn.00402290
mov ebx, dword [ebx]
test ebx, ebx
jne 0x436618
mov ebx, dword [ebp - 0x18b0]
mov edi, 0x477dc4
mov eax, ebx
call fcn.004225b0
test eax, eax
je 0x436716
cmp dword [eax + 0xc], 0x10
jne 0x436716
mov esi, dword [eax + 0x10]
test esi, esi
je 0x436716
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4366d0
sub eax, edx
je 0x436716
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x4366f1
xor eax, eax
jmp 0x436708
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
lea edx, [ebp - 0xf60]
push edx
mov edx, eax
call fcn.00404aa0
mov edi, 0x477dc8
mov eax, ebx
call fcn.004225b0
test eax, eax
je 0x436848
cmp dword [eax + 0xc], 0x20
jne 0x436848
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x436848
push 0x20c
lea eax, [ebp - 0x18a8]
push 0
push eax
call fcn.0044e9d0
add esp, 0xc
mov edi, 0x477dcc
mov eax, ebx
call fcn.004225b0
test eax, eax
je 0x43683e
cmp dword [eax + 0xc], 8
jne 0x43683e
mov ecx, dword [eax + 0x14]
mov edi, 0x477dd0
mov eax, ebx
mov dword [ebp - 0x18a8], ecx
call fcn.004225b0
test eax, eax
je 0x43683e
cmp dword [eax + 0xc], 0x10
jne 0x43683e
mov esi, dword [eax + 0x10]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4367a2
sub eax, edx
je 0x43683e
test esi, esi
jne 0x4367b9
xor eax, eax
jmp 0x4367e6
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x4367cf
xor eax, eax
jmp 0x4367e6
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
lea ecx, [ebp - 0x18a4]
mov esi, eax
mov eax, ecx
mov edx, 0x104
sub esi, eax
jmp 0x436800
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x436820
movzx eax, word [esi + ecx]
test ax, ax
je 0x436820
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x436800
jmp 0x436824
test edx, edx
jne 0x436827
sub ecx, 2
lea eax, [ebp - 0x18a8]
xor edx, edx
push eax
lea edi, [ebp - 0xf78]
mov word [ecx], dx
call fcn.00438160
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43673f
mov eax, dword [ebp - 0x18b0]
mov edi, 0x477dd4
call fcn.004225b0
test eax, eax
je 0x436905
cmp dword [eax + 0xc], 0x20
jne 0x436905
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x436905
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x4368fb
cmp dword [ebx + 0xc], 0x10
jne 0x4368fb
mov eax, esi
lea edx, [eax + 1]
jmp 0x436890
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x436890
sub eax, edx
je 0x4368fb
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x4368b1
xor eax, eax
jmp 0x4368c8
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea eax, [ebp - 0x18d0]
call fcn.00401860
lea ecx, [ebp - 0x18d0]
push ecx
lea edx, [ebp - 0xf44]
push edx
mov byte [ebp - 4], 0x1e
call fcn.00426c50
lea esi, [ebp - 0x18d0]
mov byte [ebp - 4], 0x13
call fcn.00402290
mov ebx, dword [ebx]
test ebx, ebx
jne 0x436875
mov eax, dword [ebp - 0x18b0]
mov edi, 0x4760dc
call fcn.004225b0
test eax, eax
je 0x436acc
cmp dword [eax + 0xc], 0x20
jne 0x436acc
mov esi, dword [eax + 8]
test esi, esi
je 0x436acc
mov edi, 0x4760e0
mov eax, esi
call fcn.004225b0
mov ebx, eax
mov edi, 0x4760e4
mov eax, esi
call fcn.004225b0
mov dword [ebp - 0x18d4], eax
mov edi, 0x4760e8
mov eax, esi
call fcn.004225b0
mov dword [ebp - 0x18ac], eax
mov edi, 0x4760ec
mov eax, esi
call fcn.004225b0
mov dword [ebp - 0x18b4], eax
test ebx, ebx
je 0x436ac2
mov eax, 0x10
cmp dword [ebx + 0xc], eax
jne 0x436ac2
mov ecx, dword [ebp - 0x18d4]
test ecx, ecx
je 0x436ac2
cmp dword [ecx + 0xc], eax
jne 0x436ac2
mov ecx, dword [ebp - 0x18b4]
test ecx, ecx
je 0x436ac2
mov eax, 8
cmp dword [ecx + 0xc], eax
jne 0x436ac2
mov edi, dword [ebp - 0x18ac]
test edi, edi
je 0x436ac2
cmp dword [edi + 0xc], eax
jne 0x436ac2
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x436ac2
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4369e6
sub eax, edx
je 0x436ac2
mov eax, dword [ebp - 0x18d4]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x436ac2
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x436a10
sub eax, edx
je 0x436ac2
mov ecx, dword [ebp - 0x18b4]
cmp dword [ecx + 0x14], 0
je 0x436ac2
cmp dword [edi + 0x14], 0
je 0x436ac2
push 0x104
lea edx, [ebp - 0x1698]
push 0
push edx
call fcn.0044e9d0
add esp, 0xc
push 0x10c
lea eax, [ebp - 0x1594]
push 0
push eax
call fcn.0044e9d0
lea ecx, [ebp - 0x1590]
add esp, 0xc
push ecx
mov ecx, ebx
call fcn.00422ec0
mov dword [ebp - 0x148c], eax
mov eax, dword [ebp - 0x18d4]
mov ecx, dword [eax + 0x10]
lea edx, [ebp - 0x1698]
add esp, 4
push edx
call fcn.00422ec0
mov ecx, dword [ebp - 0x148c]
add esp, 4
mov dword [ebp - 0x1594], eax
cmp ecx, dword [edi + 0x14]
jne 0x436ac2
mov edx, dword [ebp - 0x18b4]
cmp eax, dword [edx + 0x14]
jne 0x436ac2
lea eax, [ebp - 0x1698]
push eax
lea edi, [ebp - 0xf28]
call fcn.00437eb0
mov esi, dword [esi]
test esi, esi
jne 0x436932
mov ebx, dword [ebp - 0x18b0]
mov edi, 0x477dd8
mov eax, ebx
call fcn.004225b0
test eax, eax
je 0x436cc8
cmp dword [eax + 0xc], 0x20
jne 0x436cc8
mov eax, dword [eax + 8]
mov dword [ebp - 0x18b4], eax
test eax, eax
je 0x436cc8
mov ebx, dword [ebp - 0x18b4]
mov edi, str.name
mov eax, ebx
call fcn.004225b0
mov esi, eax
mov edi, 0x477de4
mov eax, ebx
call fcn.004225b0
mov ebx, eax
test esi, esi
je 0x436cac
mov eax, 0x10
cmp dword [esi + 0xc], eax
jne 0x436cac
test ebx, ebx
je 0x436cac
cmp dword [ebx + 0xc], eax
jne 0x436cac
mov esi, dword [esi + 0x10]
test esi, esi
je 0x436cac
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x436b60
sub eax, edx
je 0x436cac
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x436cac
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x436b80
sub eax, edx
je 0x436cac
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x436ba5
xor eax, eax
jmp 0x436bbc
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea eax, [ebp - 0xc9c]
call fcn.00401860
lea ecx, [ebp - 0x18fc]
push ecx
mov byte [ebp - 4], 0x1f
call fcn.00424320
push 0x477de8
lea ecx, [ebp - 0x1918]
mov byte [ebp - 4], 0x20
call fcn.00401ef0
mov byte [ebp - 4], 0x21
mov edx, dword [ebx + 0x10]
push edx
lea ecx, [ebp - 0x18d0]
call fcn.00401ef0
lea eax, [ebp - 0x18fc]
push eax
lea edx, [ebp - 0x1918]
lea ecx, [ebp - 0x18d0]
mov byte [ebp - 4], 0x22
call fcn.004355d0
add esp, 4
lea ecx, [ebp - 0x18d0]
call fcn.00401ad0
lea ecx, [ebp - 0x1918]
mov byte [ebp - 4], 0x20
call fcn.00401ad0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x18ac], esp
lea edx, [ebp - 0x18fc]
push edx
push ecx
call fcn.00437f50
sub esp, 0x1c
lea ecx, [ebp - 0xc9c]
mov esi, esp
mov byte [ebp - 4], 0x23
mov dword [ebp - 0x18d4], esp
call fcn.00401aa0
lea esi, [ebp - 0x1930]
mov byte [ebp - 4], 0x20
call fcn.00439e90
add esp, 0x34
push eax
lea edi, [ebp - 0x13c0]
mov byte [ebp - 4], 0x24
call fcn.004380c0
call fcn.00437300
lea esi, [ebp - 0x18fc]
call fcn.00424380
lea esi, [ebp - 0xc9c]
mov byte [ebp - 4], 0x13
call fcn.00402290
mov eax, dword [ebp - 0x18b4]
mov eax, dword [eax]
mov dword [ebp - 0x18b4], eax
test eax, eax
jne 0x436b01
mov ebx, dword [ebp - 0x18b0]
mov edi, 0x477dec
mov eax, ebx
call fcn.004225b0
test eax, eax
je 0x436d33
cmp dword [eax + 0xc], 0x10
jne 0x436d33
mov esi, dword [eax + 0x10]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x436ce6
sub eax, edx
je 0x436d33
test esi, esi
jne 0x436cf9
xor eax, eax
jmp 0x436d26
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x436d0f
xor eax, eax
jmp 0x436d26
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea edi, [ebp - 0xd00]
call fcn.0041b480
mov edi, 0x477df0
mov eax, ebx
call fcn.004225b0
test eax, eax
je 0x436d9e
cmp dword [eax + 0xc], 0x10
jne 0x436d9e
mov esi, dword [eax + 0x10]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x436d51
sub eax, edx
je 0x436d9e
test esi, esi
jne 0x436d64
xor eax, eax
jmp 0x436d91
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x436d7a
xor eax, eax
jmp 0x436d91
lea eax, [edi + edi]
call fcn.00457700
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.0041e700
mov edx, eax
lea edi, [ebp - 0xcfc]
call fcn.0041b480
lea ecx, [ebp - 0x1488]
push ecx
call fcn.00438270
push ebx
call fcn.00421bc0
mov ebx, dword [ebp - 0x18e0]
add esp, 4
xor esi, esi
cmp dword [ebp - 0xc4c], 0x10
jb 0x436dd3
mov edx, dword [ebp - 0xc60]
push edx
call fcn.0044b6e3
add esp, 4
mov dword [ebp - 0xc4c], 0xf
mov dword [ebp - 0xc50], esi
mov byte [ebp - 0xc60], 0
cmp dword [ebp - 0xc68], 0x10
jb 0x436e02
mov eax, dword [ebp - 0xc7c]
push eax
call fcn.0044b6e3
add esp, 4
mov dword [ebp - 0xc68], 0xf
mov dword [ebp - 0xc6c], esi
mov byte [ebp - 0xc7c], 0
lea esi, [ebp - 0x1488]
mov dword [ebp - 4], 0xffffffff
call fcn.00436e80
inc ebx
cmp ebx, dword [ebp - 0x18e4]
mov dword [ebp - 0x18e0], ebx
jl 0x435930
mov ecx, dword [ebp - 0x18dc]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
lea esp, [ebp - 0x1940]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044b6ee
mov esp, ebp
pop ebp
ret