Function at 0x43d130
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Create directory
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x499d05
mov eax, dword fs:[0]
push eax
mov eax, 0x1a74
call fcn.004865f0
mov eax, dword [0x4bd450]
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
push 0x4a7c28
push 0x4a9a64
call fcn.00405860
mov ecx, eax
add ecx, 0x354
call fcn.00427ed0
cmp eax, 1
je 0x43d18a
xor eax, eax
jmp 0x43e750
xor esi, esi
push esi
call fcn.0040f530
add esp, 4
mov dword [ebp - 0x18c4], eax
cmp eax, esi
je 0x43d183
push 0x4a7cc0
push 0x4a9a64
call fcn.00405860
mov ecx, eax
add ecx, 0x354
call fcn.00427ed0
mov ecx, dword [0x517dd0]
sub ecx, dword [0x517dcc]
mov edi, eax
mov eax, 0x81c635bd
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x18c8], edi
je 0x43d1e9
call fcn.0043fa40
xor ebx, ebx
cmp edi, esi
mov dword [ebp - 0x18c0], ebx
jle 0x43e73e
lea esp, [esp]
push 0x32
lea ecx, [ebp - 0x44]
push esi
push ecx
call fcn.00476ef0
add esp, 0xc
xor eax, eax
lea edx, [ebp - 0x1480]
push edx
mov dword [ebp - 0x1488], eax
mov dword [ebp - 0x1484], eax
call fcn.00407e10
mov dword [ebp - 4], esi
lea eax, [ebp - 0x1468]
push eax
call fcn.00407e10
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1450]
push ecx
call fcn.00407e10
mov byte [ebp - 4], 2
lea edx, [ebp - 0x1438]
push edx
call fcn.00407e10
mov byte [ebp - 4], 3
lea eax, [ebp - 0x1420]
push eax
call fcn.00407e10
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1408]
push ecx
call fcn.00407e10
mov byte [ebp - 4], 5
lea edx, [ebp - 0x13f0]
push edx
call fcn.00407e10
mov byte [ebp - 4], 6
lea eax, [ebp - 0x13d8]
push eax
call fcn.00407e10
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x13c0]
push ecx
call fcn.00407e10
mov byte [ebp - 4], 8
push 0x208
xor eax, eax
lea edx, [ebp - 0x13a0]
push esi
push edx
mov dword [ebp - 0x13a8], eax
mov dword [ebp - 0x13a4], eax
call fcn.00476ef0
add esp, 0xc
push 0x208
lea eax, [ebp - 0x1198]
push esi
push eax
call fcn.00476ef0
add esp, 0xc
lea ecx, [ebp - 0xf90]
push ecx
call fcn.00407e10
mov byte [ebp - 4], 9
lea edx, [ebp - 0xf78]
push edx
call fcn.00407e10
mov byte [ebp - 4], 0xa
mov edi, 7
mov dword [ebp - 0xf48], edi
xor eax, eax
mov dword [ebp - 0xf4c], esi
mov word [ebp - 0xf5c], ax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xf44]
push ecx
call fcn.00407e10
mov byte [ebp - 4], 0xc
lea edx, [ebp - 0xf28]
push edx
mov dword [ebp - 0xf2c], esi
call fcn.00407e10
mov byte [ebp - 4], 0xd
xor eax, eax
push 0x208
mov dword [ebp - 0xf10], eax
mov dword [ebp - 0xf0c], eax
lea eax, [ebp - 0xf08]
push esi
push eax
call fcn.00476ef0
mov edx, dword [0x512da4]
mov eax, dword [edx + 0xc]
add esp, 0xc
mov ecx, 0x512da4
call eax
add eax, 0x10
mov dword [ebp - 0xd00], eax
mov byte [ebp - 4], 0xf
mov edx, dword [0x512da4]
mov eax, dword [edx + 0xc]
mov ecx, 0x512da4
call eax
add eax, 0x10
mov dword [ebp - 0xcfc], eax
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xcf4]
push ecx
mov dword [ebp - 0xcf8], esi
call fcn.00407e10
mov byte [ebp - 4], 0x12
lea edx, [ebp - 0xcdc]
push edx
call fcn.00407e10
mov byte [ebp - 4], 0x13
xor eax, eax
mov dword [ebp - 0xcac], edi
mov dword [ebp - 0xcb0], esi
mov word [ebp - 0xcc0], ax
mov byte [ebp - 4], 0x14
mov dword [ebp - 0xca8], esi
mov dword [ebp - 4], 0x15
push ebx
lea ecx, [edi + 0x2b]
push 0x4a73bc
lea edi, [ebp - 0x44]
call fcn.0040ca80
add esp, 8
test eax, eax
jl 0x43e718
push 0x4a9a64
call fcn.00405860
add eax, 0x354
push eax
mov edx, 0x4a5b1c
mov ecx, edi
lea esi, [ebp - 0xc80]
call fcn.00427c30
mov byte [ebp - 4], 0x16
cmp dword [ebp - 0xc6c], 1
jbe 0x43e6df
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x18ac], esp
push 0xffffffffffffffff
push 0
mov edx, esi
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], 0
push edx
mov byte [ecx + 4], 0
call fcn.00403010
mov byte [ebp - 4], 0x17
mov byte [ebp - 4], 0x16
lea esi, [ebp - 0xc64]
call fcn.004267c0
mov byte [ebp - 4], 0x18
cmp dword [ebp - 0xc50], 0
je 0x43e6a8
cmp dword [ebp - 0xc4c], 0x10
mov edi, dword [ebp - 0xc60]
jae 0x43d4a2
lea edi, [ebp - 0xc60]
call fcn.00425cf0
mov esi, eax
mov dword [ebp - 0x18b0], esi
test esi, esi
je 0x43e6a8
mov edi, 0x4a9a68
mov dword [ebp - 0x1488], ebx
call fcn.004261b0
test eax, eax
je 0x43d4da
cmp dword [eax + 0xc], 8
jne 0x43d4da
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x1484], eax
mov edi, 0x4a9a6c
mov eax, esi
call fcn.004261b0
test eax, eax
je 0x43d4f9
cmp dword [eax + 0xc], 8
jne 0x43d4f9
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0xcf8], ecx
mov edi, str.atag
mov eax, esi
call fcn.004261b0
test eax, eax
je 0x43d5a9
cmp dword [eax + 0xc], 0x20
jne 0x43d5a9
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43d5a9
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43d59f
cmp dword [ebx + 0xc], 0x10
jne 0x43d59f
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43d534
sub eax, edx
je 0x43d59f
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43d555
xor eax, eax
jmp 0x43d56c
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea eax, [ebp - 0x19dc]
call fcn.004028a0
mov byte [ebp - 4], 0x19
lea edx, [ebp - 0x19dc]
push edx
lea eax, [ebp - 0xcf4]
push eax
call fcn.0042b390
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x19dc]
call fcn.00428ca0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43d522
mov eax, dword [ebp - 0x18b0]
mov edi, 0x4a9a78
call fcn.004261b0
test eax, eax
je 0x43d65d
cmp dword [eax + 0xc], 0x20
jne 0x43d65d
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43d65d
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43d653
cmp dword [ebx + 0xc], 0x10
jne 0x43d653
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43d5e8
sub eax, edx
je 0x43d653
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43d609
xor eax, eax
jmp 0x43d620
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea eax, [ebp - 0x19c0]
call fcn.004028a0
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x19c0]
push ecx
lea edx, [ebp - 0x1480]
push edx
call fcn.0042b390
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x19c0]
call fcn.00428ca0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43d5d6
mov eax, dword [ebp - 0x18b0]
mov edi, 0x4a9a7c
call fcn.004261b0
test eax, eax
je 0x43d717
cmp dword [eax + 0xc], 0x20
jne 0x43d717
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43d717
lea ebx, [ebx]
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43d70d
cmp dword [ebx + 0xc], 0x10
jne 0x43d70d
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43d6a2
sub eax, edx
je 0x43d70d
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43d6c3
xor eax, eax
jmp 0x43d6da
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea eax, [ebp - 0x1918]
call fcn.004028a0
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x1918]
push eax
lea ecx, [ebp - 0x1468]
push ecx
call fcn.0042b390
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x1918]
call fcn.00428ca0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43d690
mov eax, dword [ebp - 0x18b0]
mov edi, 0x4a7cbc
call fcn.004261b0
test eax, eax
je 0x43d7cb
cmp dword [eax + 0xc], 0x20
jne 0x43d7cb
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43d7cb
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43d7c1
cmp dword [ebx + 0xc], 0x10
jne 0x43d7c1
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43d756
sub eax, edx
je 0x43d7c1
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43d777
xor eax, eax
jmp 0x43d78e
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea eax, [ebp - 0x19a4]
call fcn.004028a0
mov byte [ebp - 4], 0x1c
lea edx, [ebp - 0x19a4]
push edx
lea eax, [ebp - 0x1450]
push eax
call fcn.0042b390
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x19a4]
call fcn.00428ca0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43d744
mov eax, dword [ebp - 0x18b0]
mov edi, 0x4a9a80
call fcn.004261b0
test eax, eax
je 0x43d885
cmp dword [eax + 0xc], 0x20
jne 0x43d885
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43d885
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43d87b
cmp dword [ebx + 0xc], 0x10
jne 0x43d87b
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43d810
sub eax, edx
je 0x43d87b
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43d831
xor eax, eax
jmp 0x43d848
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea eax, [ebp - 0x18fc]
call fcn.004028a0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x18fc]
push ecx
lea edx, [ebp - 0x1438]
push edx
call fcn.0042b390
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x18fc]
call fcn.00428ca0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43d7f8
mov eax, dword [ebp - 0x18b0]
mov edi, 0x4a9a84
call fcn.004261b0
test eax, eax
je 0x43d939
cmp dword [eax + 0xc], 0x20
jne 0x43d939
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43d939
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43d92f
cmp dword [ebx + 0xc], 0x10
jne 0x43d92f
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43d8c4
sub eax, edx
je 0x43d92f
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43d8e5
xor eax, eax
jmp 0x43d8fc
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea eax, [ebp - 0x1a14]
call fcn.004028a0
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0x1a14]
push eax
lea ecx, [ebp - 0x1420]
push ecx
call fcn.0042b390
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x1a14]
call fcn.00428ca0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43d8b2
mov eax, dword [ebp - 0x18b0]
mov edi, 0x4a9a88
call fcn.004261b0
test eax, eax
je 0x43d9ed
cmp dword [eax + 0xc], 0x20
jne 0x43d9ed
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43d9ed
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43d9e3
cmp dword [ebx + 0xc], 0x10
jne 0x43d9e3
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43d978
sub eax, edx
je 0x43d9e3
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43d999
xor eax, eax
jmp 0x43d9b0
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea eax, [ebp - 0x1a4c]
call fcn.004028a0
mov byte [ebp - 4], 0x1f
lea edx, [ebp - 0x1a4c]
push edx
lea eax, [ebp - 0x1408]
push eax
call fcn.0042b390
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x1a4c]
call fcn.00428ca0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43d966
mov eax, dword [ebp - 0x18b0]
mov edi, 0x4a9a8c
call fcn.004261b0
test eax, eax
je 0x43daa7
cmp dword [eax + 0xc], 0x20
jne 0x43daa7
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43daa7
lea ebx, [ebx]
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43da9d
cmp dword [ebx + 0xc], 0x10
jne 0x43da9d
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43da32
sub eax, edx
je 0x43da9d
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43da53
xor eax, eax
jmp 0x43da6a
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea eax, [ebp - 0x1a30]
call fcn.004028a0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x1a30]
push ecx
lea edx, [ebp - 0x13f0]
push edx
call fcn.0042b390
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x1a30]
call fcn.00428ca0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43da20
mov esi, dword [ebp - 0x18b0]
mov edi, 0x4a9a90
mov eax, esi
call fcn.004261b0
mov ebx, 8
test eax, eax
je 0x43dad0
cmp dword [eax + 0xc], ebx
jne 0x43dad0
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x13a8], eax
mov edi, 0x4a9a94
mov eax, esi
call fcn.004261b0
test eax, eax
je 0x43daee
cmp dword [eax + 0xc], ebx
jne 0x43daee
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0xf10], ecx
mov edi, 0x4a9a98
mov eax, esi
call fcn.004261b0
test eax, eax
je 0x43db0c
cmp dword [eax + 0xc], ebx
jne 0x43db0c
mov edx, dword [eax + 0x14]
mov dword [ebp - 0xf0c], edx
mov edi, 0x4a9a9c
mov eax, esi
call fcn.004261b0
test eax, eax
je 0x43dddf
cmp dword [eax + 0xc], 0x10
jne 0x43dddf
mov ecx, dword [ebp - 0xf10]
cmp ecx, 1
je 0x43db43
cmp ecx, 2
je 0x43db43
cmp ecx, 3
jne 0x43dddf
mov esi, dword [eax + 0x10]
mov eax, esi
lea edx, [eax + 1]
jmp 0x43db50
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43db50
sub eax, edx
je 0x43dddf
push 0x400
lea eax, [ebp - 0x448]
push 0
push eax
call fcn.00476ef0
mov edx, dword [ebp - 0x18c4]
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.00476ef0
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 0x43dbc1
xor eax, eax
jmp 0x43dbda
lea eax, [edi + edi]
call fcn.00482c80
mov esi, esp
push 3
mov edx, edi
lea eax, [ebp - 0x448]
call fcn.00420050
lea ecx, [ebp - 0xc48]
mov esi, eax
mov eax, ecx
mov edx, 0x400
sub esi, eax
jmp 0x43dbf0
lea eax, [edx + 0x7ffffbfe]
test eax, eax
je 0x43dc10
movzx eax, word [esi + ecx]
test ax, ax
je 0x43dc10
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x43dbf0
jmp 0x43dc14
test edx, edx
jne 0x43dc17
sub ecx, 2
xor edx, edx
cmp dword [ebp - 0xf0c], 1
mov word [ecx], dx
jne 0x43dcab
mov eax, dword [0x515fd8]
cmp dword [eax + 0x54], edx
je 0x43dcab
cmp dword [eax + 0x58], ebx
jb 0x43dc3d
mov ecx, dword [eax + 0x44]
jmp 0x43dc40
lea ecx, [eax + 0x44]
push ecx
mov eax, esp
mov dword [ebp - 0x18ac], esp
push eax
call fcn.004087d0
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x18bc]
push ecx
mov byte [ebp - 4], 0x18
call fcn.0041f410
add esp, 8
mov byte [ebp - 4], 0x22
mov edx, dword [ebp - 0x18bc]
mov eax, dword [edx - 0xc]
test eax, eax
je 0x43dc9c
cmp eax, ebx
jle 0x43dc9c
lea eax, [ebp - 0xc48]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov ecx, dword [ebp - 0x18bc]
push ecx
lea edx, [ebp - 0xc48]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x18bc]
call fcn.00404e20
lea eax, [ebp - 0xf08]
lea esi, [ebp - 0xc48]
mov ecx, eax
mov edx, 0x104
sub esi, ecx
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x43dce0
movzx ecx, word [esi + eax]
test cx, cx
je 0x43dce0
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x43dcc0
jmp 0x43dce4
test edx, edx
jne 0x43dce7
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.00476ef0
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 0x43dd3f
movzx ecx, word [edx + eax]
test cx, cx
je 0x43dd3f
mov word [eax], cx
add eax, 2
sub esi, ebx
jne 0x43dd20
jmp 0x43dd43
test esi, esi
jne 0x43dd46
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 0x43dd7e
push eax
lea edx, [ebp - 0x1690]
push edx
push eax
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x43dd7e
xor ebx, ebx
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0xf08]
push eax
call edi
test ebx, ebx
je 0x43dddf
lea ecx, [ebp - 0xf08]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x43dddf
xor esi, esi
lea edx, [ebp - 0xf08]
call fcn.00442910
test eax, eax
je 0x43ddcf
lea eax, [ebp - 0xf08]
call fcn.0046ce70
test eax, eax
jne 0x43de51
lea edx, [ebp - 0xf08]
push edx
call edi
inc esi
cmp esi, 5
jl 0x43dda4
mov dword [ebp - 0xf10], 0
mov eax, dword [ebp - 0x18b0]
mov edi, str.pcmd
call fcn.004261b0
test eax, eax
je 0x43debb
cmp dword [eax + 0xc], 0x20
jne 0x43debb
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43debb
lea esp, [esp]
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43deb1
cmp dword [ebx + 0xc], 0x10
jne 0x43deb1
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43de30
sub eax, edx
je 0x43deb1
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43de67
xor eax, eax
jmp 0x43de7e
push 4
push 0
lea eax, [ebp - 0xf08]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x43dddf
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea eax, [ebp - 0x1934]
call fcn.004028a0
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x1934]
push ecx
lea edx, [ebp - 0x13d8]
push edx
call fcn.0042b390
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x1934]
call fcn.00428ca0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43de10
mov eax, dword [ebp - 0x18b0]
mov edi, 0x4a9aa8
call fcn.004261b0
test eax, eax
je 0x43df75
cmp dword [eax + 0xc], 0x20
jne 0x43df75
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43df75
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43df6b
cmp dword [ebx + 0xc], 0x10
jne 0x43df6b
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43df00
sub eax, edx
je 0x43df6b
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43df21
xor eax, eax
jmp 0x43df38
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea eax, [ebp - 0x1950]
call fcn.004028a0
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0x1950]
push eax
lea ecx, [ebp - 0xcdc]
push ecx
call fcn.0042b390
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x1950]
call fcn.00428ca0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43dee8
mov ebx, dword [ebp - 0x18b0]
mov edi, 0x4a9aac
mov eax, ebx
call fcn.004261b0
test eax, eax
je 0x43dfe6
cmp dword [eax + 0xc], 0x10
jne 0x43dfe6
mov esi, dword [eax + 0x10]
test esi, esi
je 0x43dfe6
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43dfa0
sub eax, edx
je 0x43dfe6
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43dfc1
xor eax, eax
jmp 0x43dfd8
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
lea edx, [ebp - 0xf60]
push edx
mov edx, eax
call fcn.00402910
mov edi, 0x4a9ab0
mov eax, ebx
call fcn.004261b0
test eax, eax
je 0x43e118
cmp dword [eax + 0xc], 0x20
jne 0x43e118
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43e118
push 0x20c
lea eax, [ebp - 0x18a8]
push 0
push eax
call fcn.00476ef0
add esp, 0xc
mov edi, 0x4a9ab4
mov eax, ebx
call fcn.004261b0
test eax, eax
je 0x43e10e
cmp dword [eax + 0xc], 8
jne 0x43e10e
mov ecx, dword [eax + 0x14]
mov edi, 0x4a9ab8
mov eax, ebx
mov dword [ebp - 0x18a8], ecx
call fcn.004261b0
test eax, eax
je 0x43e10e
cmp dword [eax + 0xc], 0x10
jne 0x43e10e
mov esi, dword [eax + 0x10]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e072
sub eax, edx
je 0x43e10e
test esi, esi
jne 0x43e089
xor eax, eax
jmp 0x43e0b6
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43e09f
xor eax, eax
jmp 0x43e0b6
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
lea ecx, [ebp - 0x18a4]
mov esi, eax
mov eax, ecx
mov edx, 0x104
sub esi, eax
jmp 0x43e0d0
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x43e0f0
movzx eax, word [ecx + esi]
test ax, ax
je 0x43e0f0
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x43e0d0
jmp 0x43e0f4
test edx, edx
jne 0x43e0f7
sub ecx, 2
lea eax, [ebp - 0x18a8]
xor edx, edx
push eax
lea edi, [ebp - 0xf78]
mov word [ecx], dx
call fcn.0043f820
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43e00f
mov eax, dword [ebp - 0x18b0]
mov edi, 0x4a9abc
call fcn.004261b0
test eax, eax
je 0x43e1d5
cmp dword [eax + 0xc], 0x20
jne 0x43e1d5
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x43e1d5
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x43e1cb
cmp dword [ebx + 0xc], 0x10
jne 0x43e1cb
mov eax, esi
lea edx, [eax + 1]
jmp 0x43e160
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e160
sub eax, edx
je 0x43e1cb
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43e181
xor eax, eax
jmp 0x43e198
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea eax, [ebp - 0x196c]
call fcn.004028a0
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x196c]
push ecx
lea edx, [ebp - 0xf44]
push edx
call fcn.0042b390
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x196c]
call fcn.00428ca0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x43e145
mov eax, dword [ebp - 0x18b0]
mov edi, 0x4a7cd4
call fcn.004261b0
test eax, eax
je 0x43e39c
cmp dword [eax + 0xc], 0x20
jne 0x43e39c
mov esi, dword [eax + 8]
test esi, esi
je 0x43e39c
mov edi, 0x4a7cd8
mov eax, esi
call fcn.004261b0
mov ebx, eax
mov edi, 0x4a7cdc
mov eax, esi
call fcn.004261b0
mov dword [ebp - 0x18b8], eax
mov edi, 0x4a7ce0
mov eax, esi
call fcn.004261b0
mov dword [ebp - 0x18ac], eax
mov edi, 0x4a7ce4
mov eax, esi
call fcn.004261b0
mov dword [ebp - 0x18b4], eax
test ebx, ebx
je 0x43e392
mov eax, 0x10
cmp dword [ebx + 0xc], eax
jne 0x43e392
mov ecx, dword [ebp - 0x18b8]
test ecx, ecx
je 0x43e392
cmp dword [ecx + 0xc], eax
jne 0x43e392
mov ecx, dword [ebp - 0x18b4]
test ecx, ecx
je 0x43e392
mov eax, 8
cmp dword [ecx + 0xc], eax
jne 0x43e392
mov edi, dword [ebp - 0x18ac]
test edi, edi
je 0x43e392
cmp dword [edi + 0xc], eax
jne 0x43e392
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x43e392
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e2b6
sub eax, edx
je 0x43e392
mov eax, dword [ebp - 0x18b8]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x43e392
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e2e0
sub eax, edx
je 0x43e392
mov ecx, dword [ebp - 0x18b4]
cmp dword [ecx + 0x14], 0
je 0x43e392
cmp dword [edi + 0x14], 0
je 0x43e392
push 0x104
lea edx, [ebp - 0x1698]
push 0
push edx
call fcn.00476ef0
add esp, 0xc
push 0x10c
lea eax, [ebp - 0x1594]
push 0
push eax
call fcn.00476ef0
lea ecx, [ebp - 0x1590]
add esp, 0xc
push ecx
mov ecx, ebx
call fcn.00426e20
mov dword [ebp - 0x148c], eax
mov eax, dword [ebp - 0x18b8]
mov ecx, dword [eax + 0x10]
lea edx, [ebp - 0x1698]
add esp, 4
push edx
call fcn.00426e20
mov ecx, dword [ebp - 0x148c]
add esp, 4
mov dword [ebp - 0x1594], eax
cmp ecx, dword [edi + 0x14]
jne 0x43e392
mov edx, dword [ebp - 0x18b4]
cmp eax, dword [edx + 0x14]
jne 0x43e392
lea eax, [ebp - 0x1698]
push eax
lea edi, [ebp - 0xf28]
call fcn.0042b0e0
mov esi, dword [esi]
test esi, esi
jne 0x43e202
mov ebx, dword [ebp - 0x18b0]
mov edi, 0x4a9ac0
mov eax, ebx
call fcn.004261b0
test eax, eax
je 0x43e5ab
cmp dword [eax + 0xc], 0x20
jne 0x43e5ab
mov eax, dword [eax + 8]
mov dword [ebp - 0x18b4], eax
test eax, eax
je 0x43e5ab
mov ebx, dword [ebp - 0x18b4]
mov edi, str.name
mov eax, ebx
call fcn.004261b0
mov esi, eax
mov edi, 0x4a9acc
mov eax, ebx
call fcn.004261b0
mov ebx, eax
test esi, esi
je 0x43e58f
mov eax, 0x10
cmp dword [esi + 0xc], eax
jne 0x43e58f
test ebx, ebx
je 0x43e58f
cmp dword [ebx + 0xc], eax
jne 0x43e58f
mov esi, dword [esi + 0x10]
test esi, esi
je 0x43e58f
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e430
sub eax, edx
je 0x43e58f
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x43e58f
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e450
sub eax, edx
je 0x43e58f
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43e475
xor eax, eax
jmp 0x43e48c
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea eax, [ebp - 0xc9c]
call fcn.004028a0
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x18e0]
push ecx
call fcn.00407e10
mov byte [ebp - 4], 0x27
push 0x4a9ad0
lea ecx, [ebp - 0x19f8]
call fcn.00403370
mov byte [ebp - 4], 0x28
mov edx, dword [ebx + 0x10]
push edx
lea ecx, [ebp - 0x1988]
call fcn.00403370
mov byte [ebp - 4], 0x29
lea eax, [ebp - 0x18e0]
push eax
lea edx, [ebp - 0x19f8]
lea ecx, [ebp - 0x1988]
call fcn.0043ce70
add esp, 4
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x1988]
call fcn.00402f50
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x19f8]
call fcn.00402f50
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x18ac], esp
push ecx
lea ecx, [ebp - 0x18e0]
call fcn.0043f5e0
mov byte [ebp - 4], 0x2a
sub esp, 0x1c
lea ecx, [ebp - 0xc9c]
mov esi, esp
mov dword [ebp - 0x18b8], esp
call fcn.004028e0
mov byte [ebp - 4], 0x2b
mov byte [ebp - 4], 0x27
lea esi, [ebp - 0x1a80]
call fcn.00441380
add esp, 0x34
mov byte [ebp - 4], 0x2c
push eax
lea edi, [ebp - 0x13c0]
call fcn.0043f780
mov byte [ebp - 4], 0x27
mov edx, esi
push edx
call fcn.0043e920
mov byte [ebp - 4], 0x26
lea eax, [ebp - 0x18e0]
push eax
call fcn.004287f0
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0xc9c]
call fcn.00428ca0
mov ecx, dword [ebp - 0x18b4]
mov eax, dword [ecx]
mov dword [ebp - 0x18b4], eax
test eax, eax
jne 0x43e3d1
mov ebx, dword [ebp - 0x18b0]
mov edi, 0x4a9ad4
mov eax, ebx
call fcn.004261b0
test eax, eax
je 0x43e61d
cmp dword [eax + 0xc], 0x10
jne 0x43e61d
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 0x43e5d0
sub eax, edx
je 0x43e61d
test esi, esi
jne 0x43e5e3
xor eax, eax
jmp 0x43e610
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43e5f9
xor eax, eax
jmp 0x43e610
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea edi, [ebp - 0xd00]
call fcn.00408790
mov edi, 0x4a9ad8
mov eax, ebx
call fcn.004261b0
test eax, eax
je 0x43e68d
cmp dword [eax + 0xc], 0x10
jne 0x43e68d
mov esi, dword [eax + 0x10]
mov eax, esi
lea edx, [eax + 1]
jmp 0x43e640
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e640
sub eax, edx
je 0x43e68d
test esi, esi
jne 0x43e653
xor eax, eax
jmp 0x43e680
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x43e669
xor eax, eax
jmp 0x43e680
lea eax, [edi + edi]
call fcn.00482c80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00420050
mov edx, eax
lea edi, [ebp - 0xcfc]
call fcn.00408790
lea edx, [ebp - 0x1488]
push edx
call fcn.0043f990
push ebx
call fcn.004257c0
mov ebx, dword [ebp - 0x18c0]
add esp, 4
mov byte [ebp - 4], 0x16
cmp dword [ebp - 0xc4c], 0x10
jb 0x43e6c4
mov eax, dword [ebp - 0xc60]
push eax
call fcn.00471eaf
add esp, 4
mov dword [ebp - 0xc4c], 0xf
mov dword [ebp - 0xc50], 0
mov byte [ebp - 0xc60], 0
mov byte [ebp - 4], 0x15
cmp dword [ebp - 0xc68], 0x10
jb 0x43e6fb
mov ecx, dword [ebp - 0xc7c]
push ecx
call fcn.00471eaf
add esp, 4
mov dword [ebp - 0xc68], 0xf
mov dword [ebp - 0xc6c], 0
mov byte [ebp - 0xc7c], 0
xor esi, esi
mov dword [ebp - 4], 0xffffffff
lea edx, [ebp - 0x1488]
push edx
call fcn.0043e780
inc ebx
cmp ebx, dword [ebp - 0x18c8]
mov dword [ebp - 0x18c0], ebx
jl 0x43d200
mov eax, dword [ebp - 0x18c4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
lea esp, [ebp - 0x1a90]
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.00471eba
mov esp, ebp
pop ebp
ret