Function at 0x43cce0
Capabilities:
Check if file exists
Copy file
Create directory
Enumerate files on windows
Enumerate files recursively
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49e318
mov eax, dword fs:[0]
push eax
sub esp, 0x2b8
mov eax, dword [0x4d7200]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2a8], ecx
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
mov ecx, dword [ebp + 0x10]
xor esi, esi
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2bc], ecx
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x14], 0
test eax, eax
je 0x43cd50
cmp word [eax], si
je 0x43cd50
inc esi
cmp word [eax + esi*2], 0
jne 0x43cd48
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x43cd6a
xor eax, eax
cmp word [edi], ax
je 0x43cd68
nop
inc eax
cmp word [edi + eax*2], 0
jne 0x43cd60
add esi, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bfc88], 0
jne 0x43cd70
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a28e
mov ecx, dword [ebp - 0x2b8]
add esp, 4
mov dword [ebp - 0x2a0], eax
mov edx, eax
test ecx, ecx
je 0x43cdd4
movzx ecx, word [ecx]
mov edi, ecx
test cx, cx
je 0x43cdd1
mov edi, dword [ebp - 0x2b8]
sub edi, eax
nop
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x43cdc0
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x43cdf5
movzx eax, word [edi]
mov ecx, eax
test ax, ax
je 0x43cdf5
sub edi, edx
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x43cde4
mov edi, 0x4bfc88
mov ecx, 0x2a
sub edi, edx
mov word [edx], cx
lea edx, [edx + 2]
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x43ce01
xor eax, eax
mov dword [ebp - 0x18], esi
mov word [edx], ax
mov dword [ebp - 4], eax
xorps xmm0, xmm0
xor esi, esi
movq qword [ebp - 0x28], xmm0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2ac], esi
mov dword [ebp - 0x28], esi
mov byte [ebp - 0x20], 1
push 0x250
lea eax, [ebp - 0x28c]
mov byte [ebp - 4], 1
push esi
push eax
movups xmmword [ebp - 0x3c], xmm0
mov byte [ebp - 0x14], 1
call fcn.0048b9e0
mov edi, dword [ebp - 0x2a0]
lea eax, [ebp - 0x28c]
add esp, 0xc
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [ebp - 0x3c], eax
cmp eax, 0xffffffff
je 0x43cf11
mov ecx, 1
mov dword [ebp - 0x38], ecx
nop dword [eax]
cmp word [ebp - 0x260], 0x2e
jne 0x43ceb6
mov dx, word [ebp - 0x25e]
test dx, dx
je 0x43ceec
cmp dx, 0x2e
jne 0x43ceb6
cmp word [ebp - 0x25c], 0
je 0x43ceec
mov edx, dword [ebp - 0x28c]
mov dword [ebp - 0x2c0], edx
test ecx, ecx
je 0x43cf1d
test cl, 1
je 0x43ced3
test edx, 0x400
jne 0x43ceec
test cl, 2
je 0x43cedf
test dl, 0x10
je 0x43cf1d
jmp 0x43ceec
test cl, 4
je 0x43cf1d
test edx, 0x10
jne 0x43cf1d
lea ecx, [ebp - 0x28c]
push ecx
push eax
call esi
test eax, eax
je 0x43cf02
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
jmp 0x43ce90
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_FindClose]
or eax, 0xffffffff
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x28c]
mov dword [ebp - 0x2c0], edx
cmp byte [ebp + 0x18], 0
mov esi, dword [ebp - 0x2a8]
mov byte [ebp - 4], 2
je 0x43cf3d
test byte [esi + 0x110], 1
mov byte [ebp - 0x2ad], 1
jne 0x43cf44
mov byte [ebp - 0x2ad], 0
cmp eax, 0xffffffff
je 0x43dc78
nop dword [eax]
cmp dword [esi], 0
jne 0x43dcd9
mov eax, edx
and eax, 0x410
cmp eax, 0x10
jne 0x43d625
cmp byte [ebp - 0x2ad], 0
je 0x43d0bb
test dl, 4
je 0x43d0bb
xor ecx, ecx
movzx eax, word [ebp + ecx - 0x260]
lea esi, [ecx + 0x4c37f4]
mov dword [ebp - 0x2a4], ecx
mov edx, eax
test ax, ax
jne 0x43cff6
cmp word [esi], ax
jne 0x43cffb
mov edi, dword [ebp - 0x2a0]
mov esi, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x3c]
cmp eax, 0xffffffff
je 0x43dc78
lea ecx, [ebp - 0x28c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x43dc69
lea ecx, [ebp - 0x28c]
call fcn.00401370
test al, al
mov eax, dword [ebp - 0x3c]
je 0x43dc78
mov edx, dword [ebp - 0x28c]
mov dword [ebp - 0x2c0], edx
jmp 0x43cf50
cmp ax, word [esi]
je 0x43d03b
xor ecx, ecx
cmp cx, ax
jne 0x43d006
xor edi, edi
jmp 0x43d012
push edx
call fcn.0048e154
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x43d022
xor eax, eax
jmp 0x43d02e
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp di, ax
jb 0x43d043
ja 0x43d043
mov ecx, dword [ebp - 0x2a4]
add ecx, 2
jmp 0x43cf81
xor ecx, ecx
movzx eax, word [ebp + ecx - 0x260]
lea esi, [ecx + 0x4c3828]
mov dword [ebp - 0x2a4], ecx
mov edx, eax
test ax, ax
jne 0x43d06b
cmp word [esi], ax
je 0x43cfa1
jmp 0x43d070
cmp ax, word [esi]
je 0x43d0b0
xor ecx, ecx
cmp cx, ax
jne 0x43d07b
xor edi, edi
jmp 0x43d087
push edx
call fcn.0048e154
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x43d097
xor eax, eax
jmp 0x43d0a3
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp di, ax
jb 0x43d0b5
ja 0x43d0b5
mov ecx, dword [ebp - 0x2a4]
add ecx, 2
jmp 0x43d045
mov edi, dword [ebp - 0x2a0]
mov eax, dword [ebp - 0x2b8]
xor esi, esi
mov dword [ebp - 0x2b4], edi
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
test eax, eax
je 0x43d0ec
cmp word [eax], si
je 0x43d0ec
inc esi
cmp word [eax + esi*2], 0
jne 0x43d0e4
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x43d10a
xor eax, eax
cmp word [edi], ax
je 0x43d108
nop word [eax + eax]
inc eax
cmp word [edi + eax*2], 0
jne 0x43d100
add esi, eax
xor eax, eax
cmp word [ebp - 0x260], ax
je 0x43d12c
nop word [eax + eax]
inc eax
cmp word [ebp + eax*2 - 0x260], 0
jne 0x43d120
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a28e
mov ecx, dword [ebp - 0x2b8]
add esp, 4
mov dword [ebp - 0x2a4], eax
mov edx, eax
test ecx, ecx
je 0x43d184
movzx ecx, word [ecx]
mov edi, ecx
test cx, cx
je 0x43d181
mov edi, dword [ebp - 0x2b8]
sub edi, eax
nop
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x43d170
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x43d1a5
movzx eax, word [edi]
mov ecx, eax
test ax, ax
je 0x43d1a5
sub edi, edx
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x43d194
mov eax, dword [ebp - 0x260]
test ax, ax
je 0x43d1d1
lea edi, [ebp - 0x260]
movzx ecx, ax
sub edi, edx
nop dword [eax + eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x43d1c0
xor eax, eax
mov dword [ebp - 0x18], esi
mov word [edx], ax
mov eax, dword [ebp - 0x2a4]
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2b4]
mov byte [ebp - 0x14], 1
test eax, eax
je 0x43d1ff
push eax
call fcn.00489ed3
add esp, 4
mov esi, dword [ebp - 0x2bc]
xor ecx, ecx
mov eax, dword [ebp - 0x2ac]
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x28], 0
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
test esi, esi
je 0x43d238
cmp word [esi], cx
je 0x43d238
nop
inc ecx
cmp word [esi + ecx*2], 0
jne 0x43d230
mov edx, dword [ebp + 0x14]
xor eax, eax
test edx, edx
je 0x43d24e
cmp word [edx], ax
je 0x43d24e
inc eax
cmp word [edx + eax*2], 0
jne 0x43d246
lea edi, [eax + ecx]
xor eax, eax
cmp word [ebp - 0x260], ax
je 0x43d26c
nop dword [eax]
inc eax
cmp word [ebp + eax*2 - 0x260], 0
jne 0x43d260
add edi, eax
xor ecx, ecx
mov edx, 2
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a28e
add esp, 4
mov dword [ebp - 0x2ac], eax
mov edx, eax
test esi, esi
je 0x43d2c1
movzx ecx, word [esi]
mov esi, ecx
test cx, cx
je 0x43d2c1
mov ecx, dword [ebp - 0x2bc]
sub ecx, eax
nop dword [eax + eax]
mov word [edx], si
add edx, 2
movzx eax, word [edx + ecx]
mov esi, eax
test ax, ax
jne 0x43d2b0
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x43d2f1
movzx eax, word [eax]
mov ecx, eax
test ax, ax
je 0x43d2f1
mov esi, ecx
mov ecx, dword [ebp + 0x14]
sub ecx, edx
nop dword [eax]
mov word [edx], si
add edx, 2
movzx eax, word [edx + ecx]
mov esi, eax
test ax, ax
jne 0x43d2e0
mov eax, dword [ebp - 0x260]
test ax, ax
je 0x43d321
lea ecx, [ebp - 0x260]
movzx esi, ax
sub ecx, edx
nop word [eax + eax]
mov word [edx], si
add edx, 2
movzx eax, word [edx + ecx]
mov esi, eax
test ax, ax
jne 0x43d310
mov esi, dword [ebp - 0x2ac]
xor eax, eax
mov word [edx], ax
mov eax, dword [ebp - 0x2b4]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], edi
test eax, eax
je 0x43d345
push eax
call fcn.00489ed3
add esp, 4
mov dword [ebp - 0x29c], 0
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x294], 0
mov dword [ebp - 0x2c], 0
mov edi, dword [ebp - 0x2a4]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x294]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x298]
push eax
lea eax, [ebp - 0x29c]
push eax
push 0x7f
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_GetNamedSecurityInfoW]
push 0
push esi
push edi
mov byte [ebp - 0x2ae], 0
mov byte [ebp - 0x20], 1
mov byte [ebp - 0x14], 1
call dword [sym.imp.KERNEL32.dll_CreateDirectoryExW]
test eax, eax
jne 0x43d45b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 0xb7
jne 0x43d419
mov eax, dword [ebp - 0x2ac]
push eax
mov byte [ebp - 0x20], 1
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x43d454
mov ecx, dword [ebp - 0x2ac]
mov byte [ebp - 0x20], 1
call fcn.00406b40
push 0
push dword [ebp - 0x2ac]
mov byte [ebp - 0x14], 1
push edi
mov byte [ebp - 0x20], 1
call dword [sym.imp.KERNEL32.dll_CreateDirectoryExW]
test eax, eax
jne 0x43d45b
push ecx
push dword [ebp - 0x2ac]
mov byte [ebp - 0x20], 1
push 0x4c3844
push esi
mov esi, dword [ebp - 0x2a8]
mov ecx, esi
call fcn.0043dce0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x43d449
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov edi, dword [ebp - 0x2a0]
jmp 0x43cfad
mov byte [ebp - 0x2ae], 1
mov edi, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
test edi, edi
je 0x43d488
cmp word [edi], si
je 0x43d488
nop dword [eax + eax]
inc esi
cmp word [edi + esi*2], 0
jne 0x43d480
xor eax, eax
cmp word [ebp - 0x260], ax
je 0x43d4a1
inc eax
cmp word [ebp + eax*2 - 0x260], 0
jne 0x43d493
add esi, eax
xor eax, eax
inc eax
cmp word [eax*2 + 0x4bfbc8], 0
jne 0x43d4a3
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a28e
add esp, 4
mov dword [ebp - 0x2a0], eax
mov ecx, eax
test edi, edi
je 0x43d501
movzx eax, word [edi]
mov edx, eax
test ax, ax
je 0x43d501
mov edi, edx
mov edx, dword [ebp + 0x14]
sub edx, ecx
nop word [eax + eax]
mov word [ecx], di
add ecx, 2
movzx eax, word [ecx + edx]
mov edi, eax
test ax, ax
jne 0x43d4f0
mov eax, dword [ebp - 0x260]
test ax, ax
je 0x43d531
lea edx, [ebp - 0x260]
movzx edi, ax
sub edx, ecx
nop word [eax + eax]
mov word [ecx], di
add ecx, 2
movzx eax, word [ecx + edx]
mov edi, eax
test ax, ax
jne 0x43d520
mov edx, 0x4bfbc8
mov edi, 0x5c
sub edx, ecx
nop dword [eax]
mov word [ecx], di
lea ecx, [ecx + 2]
movzx eax, word [ecx + edx]
mov edi, eax
test ax, ax
jne 0x43d540
push dword [ebp - 0x2a4]
mov edi, dword [ebp - 0x2a0]
xor eax, eax
mov word [ecx], ax
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
call fcn.00489ed3
mov ecx, dword [ebp - 0x2a8]
add esp, 4
mov byte [ebp - 0x14], 1
push 0
push edi
push dword [ebp - 0x2bc]
push dword [ebp - 0x2b8]
push dword [ebp - 0x2c4]
call fcn.0043cce0
cmp eax, 0xffffffff
je 0x43dc53
mov eax, dword [ebp - 0x290]
mov esi, dword [ebp - 0x2ac]
test eax, eax
je 0x43d5d3
push dword [ebp - 0x294]
mov byte [ebp - 0x20], 1
push eax
push dword [ebp - 0x298]
push dword [ebp - 0x29c]
push 0x7f
push 1
push esi
call dword [sym.imp.ADVAPI32.dll_SetNamedSecurityInfoW]
test eax, eax
je 0x43d5f0
push ecx
push esi
push 0x4c3880
mov byte [ebp - 0x20], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2a8]
push eax
call fcn.0043dce0
cmp byte [ebp - 0x2ae], 0
je 0x43d60a
push dword [ebp - 0x2c0]
mov byte [ebp - 0x20], 1
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x43cfa7
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x43cfa7
xor ecx, ecx
movzx eax, word [ebp + ecx - 0x260]
lea esi, [ecx + 0x4c38d0]
mov dword [ebp - 0x2a4], ecx
mov edx, eax
test ax, ax
jne 0x43d64d
cmp word [esi], ax
je 0x43cfa1
jmp 0x43d652
cmp ax, word [esi]
je 0x43d692
xor ecx, ecx
cmp cx, ax
jne 0x43d65d
xor edi, edi
jmp 0x43d669
push edx
call fcn.0048e154
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x43d679
xor eax, eax
jmp 0x43d685
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp di, ax
jb 0x43d697
ja 0x43d697
mov ecx, dword [ebp - 0x2a4]
add ecx, 2
jmp 0x43d627
xor ecx, ecx
movzx eax, word [ebp + ecx - 0x260]
lea esi, [ecx + 0x4c38ec]
mov dword [ebp - 0x2a4], ecx
mov edx, eax
test ax, ax
jne 0x43d6bf
cmp word [esi], ax
je 0x43cfa1
jmp 0x43d6c4
cmp ax, word [esi]
je 0x43d704
xor ecx, ecx
cmp cx, ax
jne 0x43d6cf
xor edi, edi
jmp 0x43d6db
push edx
call fcn.0048e154
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x43d6eb
xor eax, eax
jmp 0x43d6f7
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp di, ax
jb 0x43d709
ja 0x43d709
mov ecx, dword [ebp - 0x2a4]
add ecx, 2
jmp 0x43d699
xor ecx, ecx
movzx eax, word [ebp + ecx - 0x260]
lea esi, [ecx + 0x4c3908]
mov dword [ebp - 0x2a4], ecx
mov edx, eax
test ax, ax
jne 0x43d731
cmp word [esi], ax
je 0x43cfa1
jmp 0x43d736
cmp ax, word [esi]
je 0x43d776
xor ecx, ecx
cmp cx, ax
jne 0x43d741
xor edi, edi
jmp 0x43d74d
push edx
call fcn.0048e154
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x43d75d
xor eax, eax
jmp 0x43d769
push ecx
call fcn.0048e154
add esp, 4
movzx eax, ax
cmp di, ax
jb 0x43d77b
ja 0x43d77b
mov ecx, dword [ebp - 0x2a4]
add ecx, 2
jmp 0x43d70b
mov eax, dword [ebp - 0x2a0]
xor esi, esi
mov dword [ebp - 0x2b4], eax
mov eax, dword [ebp - 0x2b8]
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
test eax, eax
je 0x43d7b8
cmp word [eax], si
je 0x43d7b8
nop word [eax + eax]
inc esi
cmp word [eax + esi*2], 0
jne 0x43d7b0
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x43d7d0
xor eax, eax
cmp word [edi], ax
je 0x43d7ce
inc eax
cmp word [edi + eax*2], 0
jne 0x43d7c6
add esi, eax
xor eax, eax
cmp word [ebp - 0x260], ax
je 0x43d7ec
nop dword [eax + eax]
inc eax
cmp word [ebp + eax*2 - 0x260], 0
jne 0x43d7e0
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a28e
mov ecx, dword [ebp - 0x2b8]
add esp, 4
mov dword [ebp - 0x2a4], eax
mov edx, eax
test ecx, ecx
je 0x43d844
movzx ecx, word [ecx]
mov edi, ecx
test cx, cx
je 0x43d841
mov edi, dword [ebp - 0x2b8]
sub edi, eax
nop
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x43d830
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x43d865
movzx eax, word [edi]
mov ecx, eax
test ax, ax
je 0x43d865
sub edi, edx
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x43d854
mov eax, dword [ebp - 0x260]
test ax, ax
je 0x43d891
lea edi, [ebp - 0x260]
movzx ecx, ax
sub edi, edx
nop dword [eax + eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x43d880
xor eax, eax
mov dword [ebp - 0x18], esi
mov word [edx], ax
mov eax, dword [ebp - 0x2a4]
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2b4]
mov byte [ebp - 0x14], 1
test eax, eax
je 0x43d8bf
push eax
call fcn.00489ed3
add esp, 4
mov eax, dword [ebp - 0x2ac]
xor ecx, ecx
mov dword [ebp - 0x2b4], eax
mov eax, dword [ebp - 0x2bc]
mov dword [ebp - 0x28], 0
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
test eax, eax
je 0x43d8f8
cmp word [eax], cx
je 0x43d8f8
nop
inc ecx
cmp word [eax + ecx*2], 0
jne 0x43d8f0
mov esi, dword [ebp + 0x14]
xor eax, eax
test esi, esi
je 0x43d90e
cmp word [esi], ax
je 0x43d90e
inc eax
cmp word [esi + eax*2], 0
jne 0x43d906
lea edi, [eax + ecx]
xor eax, eax
cmp word [ebp - 0x260], ax
je 0x43d92c
nop dword [eax]
inc eax
cmp word [ebp + eax*2 - 0x260], 0
jne 0x43d920
add edi, eax
xor ecx, ecx
mov edx, 2
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a28e
mov dword [ebp - 0x2ac], eax
mov ecx, eax
mov eax, dword [ebp - 0x2bc]
add esp, 4
test eax, eax
je 0x43d984
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x43d984
mov esi, dword [ebp - 0x2bc]
sub esi, ecx
nop
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + esi]
mov edx, eax
test ax, ax
jne 0x43d970
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x43d9a5
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x43d9a5
sub esi, ecx
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + esi]
mov edx, eax
test ax, ax
jne 0x43d994
mov eax, dword [ebp - 0x260]
test ax, ax
je 0x43d9d1
lea esi, [ebp - 0x260]
movzx edx, ax
sub esi, ecx
nop dword [eax + eax]
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + esi]
mov edx, eax
test ax, ax
jne 0x43d9c0
xor eax, eax
mov dword [ebp - 0x24], edi
mov word [ecx], ax
mov eax, dword [ebp - 0x2ac]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2b4]
test eax, eax
je 0x43d9f5
push eax
call fcn.00489ed3
add esp, 4
mov edx, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x26c]
mov edi, dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x270]
add dword [edx + 0x18], eax
mov esi, dword [ebp - 0x2a4]
adc dword [edx + 0x1c], ecx
push 0x1800
push edx
push 0
push 0
push edi
push esi
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x14], 1
mov byte [ebp - 0x20], 1
call dword [sym.imp.KERNEL32.dll_CopyFileExW]
test eax, eax
jne 0x43cfa1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
mov dword [ebp - 0x2b4], eax
mov byte [ebp - 0x20], 1
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43daad
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0xfffffff9
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [ebp - 0x2a8]
mov byte [ebp - 0x20], 1
push dword [eax + 0x594]
push ecx
mov ecx, edi
call fcn.00403e70
push 0x1800
push dword [ebp - 0x2a8]
mov byte [ebp - 0x20], 1
push 0
push 0
push edi
push esi
mov byte [ebp - 0x14], 1
call dword [sym.imp.KERNEL32.dll_CopyFileExW]
test eax, eax
jne 0x43cfa1
mov eax, dword [ebp - 0x2c4]
xor ecx, ecx
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
test eax, eax
je 0x43dad8
cmp word [eax], cx
je 0x43dad8
inc ecx
cmp word [eax + ecx*2], 0
jne 0x43dad0
mov esi, dword [ebp + 0x14]
xor eax, eax
test esi, esi
je 0x43daee
cmp word [esi], ax
je 0x43daee
inc eax
cmp word [esi + eax*2], 0
jne 0x43dae6
lea edi, [eax + ecx]
xor eax, eax
cmp word [ebp - 0x260], ax
je 0x43db0c
nop dword [eax]
inc eax
cmp word [ebp + eax*2 - 0x260], 0
jne 0x43db00
add edi, eax
xor ecx, ecx
mov edx, 2
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a28e
mov dword [ebp - 0x2a0], eax
mov ecx, eax
mov eax, dword [ebp - 0x2c4]
add esp, 4
test eax, eax
je 0x43db64
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x43db64
mov esi, edx
mov edx, dword [ebp - 0x2c4]
sub edx, ecx
mov word [ecx], si
add ecx, 2
movzx eax, word [edx + ecx]
mov esi, eax
test ax, ax
jne 0x43db50
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x43db91
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x43db91
mov esi, edx
mov edx, dword [ebp + 0x14]
sub edx, ecx
nop dword [eax]
mov word [ecx], si
add ecx, 2
movzx eax, word [edx + ecx]
mov esi, eax
test ax, ax
jne 0x43db80
mov eax, dword [ebp - 0x260]
test ax, ax
je 0x43dbc1
lea edx, [ebp - 0x260]
movzx esi, ax
sub edx, ecx
nop word [eax + eax]
mov word [ecx], si
add ecx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x43dbb0
push dword [ebp - 0x2a4]
xor eax, eax
mov dword [ebp - 0x18], edi
mov word [ecx], ax
mov eax, dword [ebp - 0x2a0]
mov dword [ebp - 0x1c], eax
call fcn.00489ed3
mov esi, dword [ebp - 0x2ac]
add esp, 4
mov edi, dword [ebp - 0x2a0]
mov byte [ebp - 0x14], 1
mov byte [ebp - 0x20], 1
push 0x1800
push dword [ebp - 0x2a8]
push 0
push 0
push esi
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileExW]
test eax, eax
jne 0x43cfa7
push ecx
push esi
mov esi, dword [ebp - 0x2a8]
mov ecx, esi
push 0x4c3924
push dword [ebp - 0x2b4]
mov byte [ebp - 0x20], 1
call fcn.0043dce0
mov eax, dword [ebp - 0x26c]
sub dword [esi + 0x18], eax
mov edx, dword [ebp - 0x270]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x1c]
sbb eax, edx
mov dword [ebp - 0x30], edx
mov dword [esi + 0x1c], eax
jmp 0x43cfad
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x43dc61
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x3c]
or esi, 0xffffffff
jmp 0x43dc8e
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_FindClose]
or eax, 0xffffffff
mov dword [ebp - 0x3c], eax
xor ecx, ecx
cmp dword [esi], ecx
sete cl
lea ecx, [ecx*2 - 1]
mov dword [ebp - 0x2b4], ecx
mov esi, ecx
cmp eax, 0xffffffff
je 0x43dc9a
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x2ac]
test eax, eax
je 0x43dcad
push eax
call fcn.00489ed3
add esp, 4
test edi, edi
je 0x43dcba
push edi
call fcn.00489ed3
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00489ec5
mov esp, ebp
pop ebp
ret 0x14
or esi, 0xffffffff
jmp 0x43dc8e