Function at 0x43cc60
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 0x49e348
mov eax, dword fs:[0]
push eax
sub esp, 0x2bc
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 - 0x2c8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2c0], ecx
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x14], 0
test eax, eax
je 0x43ccd0
cmp word [eax], si
je 0x43ccd0
inc esi
cmp word [eax + esi*2], 0
jne 0x43ccc8
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x43ccea
xor eax, eax
cmp word [edi], ax
je 0x43cce8
nop
inc eax
cmp word [edi + eax*2], 0
jne 0x43cce0
add esi, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4bfc88], 0
jne 0x43ccf0
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.0048a2cb
mov ecx, dword [ebp - 0x2b8]
add esp, 4
mov dword [ebp - 0x2a0], eax
mov edx, eax
test ecx, ecx
je 0x43cd54
movzx ecx, word [ecx]
mov edi, ecx
test cx, cx
je 0x43cd51
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 0x43cd40
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x43cd75
movzx eax, word [edi]
mov ecx, eax
test ax, ax
je 0x43cd75
sub edi, edx
mov word [edx], cx
add edx, 2
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x43cd64
mov edi, 0x4bfc88
mov ecx, 0x2a
sub edi, edx
mov word [edx], cx
lea edx, [edx + 2]
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x43cd81
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.0048ba10
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 0x43ce91
mov ecx, 1
mov dword [ebp - 0x38], ecx
nop dword [eax]
cmp word [ebp - 0x260], 0x2e
jne 0x43ce36
mov dx, word [ebp - 0x25e]
test dx, dx
je 0x43ce6c
cmp dx, 0x2e
jne 0x43ce36
cmp word [ebp - 0x25c], 0
je 0x43ce6c
mov edx, dword [ebp - 0x28c]
mov dword [ebp - 0x2c4], edx
test ecx, ecx
je 0x43ce9d
test cl, 1
je 0x43ce53
test edx, 0x400
jne 0x43ce6c
test cl, 2
je 0x43ce5f
test dl, 0x10
je 0x43ce9d
jmp 0x43ce6c
test cl, 4
je 0x43ce9d
test edx, 0x10
jne 0x43ce9d
lea ecx, [ebp - 0x28c]
push ecx
push eax
call esi
test eax, eax
je 0x43ce82
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
jmp 0x43ce10
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 - 0x2c4], edx
mov esi, dword [ebp - 0x2a8]
mov byte [ebp - 4], 2
mov cl, byte [esi + 0x110]
and cl, 1
mov byte [ebp - 0x2b9], cl
cmp eax, 0xffffffff
je 0x43db68
nop
cmp dword [esi], 0
jne 0x43dbc9
mov eax, edx
and eax, 0x410
cmp eax, 0x10
jne 0x43d513
cmp byte [ebp - 0x2b9], 0
je 0x43cfb9
test dl, 4
je 0x43cfb9
xor ecx, ecx
movzx eax, word [ebp + ecx - 0x260]
lea esi, [ecx + 0x4c3814]
mov dword [ebp - 0x2a4], ecx
mov edx, eax
test ax, ax
jne 0x43cf66
cmp word [esi], ax
jne 0x43cf6b
mov edi, dword [ebp - 0x2a0]
mov esi, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x3c]
cmp eax, 0xffffffff
je 0x43db68
lea ecx, [ebp - 0x28c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x43db59
lea ecx, [ebp - 0x28c]
call fcn.00401370
test al, al
mov eax, dword [ebp - 0x3c]
je 0x43db68
mov edx, dword [ebp - 0x28c]
mov dword [ebp - 0x2c4], edx
jmp 0x43cec0
cmp ax, word [esi]
je 0x43cfab
xor ecx, ecx
cmp cx, ax
jne 0x43cf76
xor edi, edi
jmp 0x43cf82
push edx
call fcn.0048e184
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x43cf92
xor eax, eax
jmp 0x43cf9e
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp di, ax
jb 0x43cfb3
ja 0x43cfb3
mov ecx, dword [ebp - 0x2a4]
add ecx, 2
jmp 0x43cef1
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 0x43cfea
cmp word [eax], si
je 0x43cfea
inc esi
cmp word [eax + esi*2], 0
jne 0x43cfe2
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x43d002
xor eax, eax
cmp word [edi], ax
je 0x43d000
inc eax
cmp word [edi + eax*2], 0
jne 0x43cff8
add esi, eax
xor eax, eax
cmp word [ebp - 0x260], ax
je 0x43d01c
nop dword [eax]
inc eax
cmp word [ebp + eax*2 - 0x260], 0
jne 0x43d010
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.0048a2cb
mov ecx, dword [ebp - 0x2b8]
add esp, 4
mov dword [ebp - 0x2a4], eax
mov edx, eax
test ecx, ecx
je 0x43d074
movzx ecx, word [ecx]
mov edi, ecx
test cx, cx
je 0x43d071
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 0x43d060
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x43d095
movzx eax, word [edi]
mov ecx, eax
test ax, ax
je 0x43d095
sub edi, edx
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x43d084
mov eax, dword [ebp - 0x260]
test ax, ax
je 0x43d0c1
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 0x43d0b0
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 0x43d0ef
push eax
call fcn.00489f13
add esp, 4
mov esi, dword [ebp - 0x2c0]
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 0x43d128
cmp word [esi], cx
je 0x43d128
nop
inc ecx
cmp word [esi + ecx*2], 0
jne 0x43d120
mov edx, dword [ebp + 0x14]
xor eax, eax
test edx, edx
je 0x43d13e
cmp word [edx], ax
je 0x43d13e
inc eax
cmp word [edx + eax*2], 0
jne 0x43d136
lea edi, [eax + ecx]
xor eax, eax
cmp word [ebp - 0x260], ax
je 0x43d15c
nop dword [eax]
inc eax
cmp word [ebp + eax*2 - 0x260], 0
jne 0x43d150
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.0048a2cb
add esp, 4
mov dword [ebp - 0x2ac], eax
mov edx, eax
test esi, esi
je 0x43d1b1
movzx ecx, word [esi]
mov esi, ecx
test cx, cx
je 0x43d1b1
mov ecx, dword [ebp - 0x2c0]
sub ecx, eax
nop dword [eax + eax]
mov word [edx], si
add edx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x43d1a0
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x43d1e1
movzx eax, word [eax]
mov ecx, eax
test ax, ax
je 0x43d1e1
mov esi, ecx
mov ecx, dword [ebp + 0x14]
sub ecx, edx
nop dword [eax]
mov word [edx], si
add edx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x43d1d0
mov eax, dword [ebp - 0x260]
test ax, ax
je 0x43d211
lea ecx, [ebp - 0x260]
movzx esi, ax
sub ecx, edx
nop word [eax + eax]
mov word [edx], si
add edx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x43d200
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 0x43d235
push eax
call fcn.00489f13
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 - 0x2ad], 0
mov byte [ebp - 0x14], 1
mov byte [ebp - 0x20], 1
call dword [sym.imp.KERNEL32.dll_CreateDirectoryExW]
test eax, eax
jne 0x43d34b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 0xb7
jne 0x43d309
mov eax, dword [ebp - 0x2ac]
push eax
mov byte [ebp - 0x20], 1
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x43d344
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 0x43d34b
push ecx
push dword [ebp - 0x2ac]
mov byte [ebp - 0x20], 1
push 0x4c3848
push esi
mov esi, dword [ebp - 0x2a8]
mov ecx, esi
call fcn.0043dbd0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x43d339
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov edi, dword [ebp - 0x2a0]
jmp 0x43cf1d
mov byte [ebp - 0x2ad], 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 0x43d378
cmp word [edi], si
je 0x43d378
nop dword [eax + eax]
inc esi
cmp word [edi + esi*2], 0
jne 0x43d370
xor eax, eax
cmp word [ebp - 0x260], ax
je 0x43d391
inc eax
cmp word [ebp + eax*2 - 0x260], 0
jne 0x43d383
add esi, eax
xor eax, eax
inc eax
cmp word [eax*2 + 0x4bfbc8], 0
jne 0x43d393
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.0048a2cb
add esp, 4
mov dword [ebp - 0x2a0], eax
mov ecx, eax
test edi, edi
je 0x43d3f1
movzx eax, word [edi]
mov edx, eax
test ax, ax
je 0x43d3f1
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 0x43d3e0
mov eax, dword [ebp - 0x260]
test ax, ax
je 0x43d421
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 0x43d410
mov edx, 0x4bfbc8
mov edi, 0x5c
sub edx, ecx
nop dword [eax]
mov word [ecx], di
lea ecx, [ecx + 2]
movzx eax, word [edx + ecx]
mov edi, eax
test ax, ax
jne 0x43d430
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.00489f13
mov ecx, dword [ebp - 0x2a8]
add esp, 4
mov byte [ebp - 0x14], 1
push edi
push dword [ebp - 0x2c0]
push dword [ebp - 0x2b8]
push dword [ebp - 0x2c8]
call fcn.0043cc60
cmp eax, 0xffffffff
je 0x43db43
mov eax, dword [ebp - 0x290]
mov esi, dword [ebp - 0x2ac]
test eax, eax
je 0x43d4c1
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 0x43d4de
push ecx
push esi
push 0x4c3888
mov byte [ebp - 0x20], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2a8]
push eax
call fcn.0043dbd0
cmp byte [ebp - 0x2ad], 0
je 0x43d4f8
push dword [ebp - 0x2c4]
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 0x43cf17
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x43cf17
xor ecx, ecx
movzx eax, word [ebp + ecx - 0x260]
lea esi, [ecx + 0x4c38d8]
mov dword [ebp - 0x2a4], ecx
mov edx, eax
test ax, ax
jne 0x43d53b
cmp word [esi], ax
je 0x43cf11
jmp 0x43d540
cmp ax, word [esi]
je 0x43d580
xor ecx, ecx
cmp cx, ax
jne 0x43d54b
xor edi, edi
jmp 0x43d557
push edx
call fcn.0048e184
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x43d567
xor eax, eax
jmp 0x43d573
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp di, ax
jb 0x43d585
ja 0x43d585
mov ecx, dword [ebp - 0x2a4]
add ecx, 2
jmp 0x43d515
xor ecx, ecx
movzx eax, word [ebp + ecx - 0x260]
lea esi, [ecx + 0x4c38f4]
mov dword [ebp - 0x2a4], ecx
mov edx, eax
test ax, ax
jne 0x43d5ad
cmp word [esi], ax
je 0x43cf11
jmp 0x43d5b2
cmp ax, word [esi]
je 0x43d5f2
xor ecx, ecx
cmp cx, ax
jne 0x43d5bd
xor edi, edi
jmp 0x43d5c9
push edx
call fcn.0048e184
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x43d5d9
xor eax, eax
jmp 0x43d5e5
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp di, ax
jb 0x43d5f7
ja 0x43d5f7
mov ecx, dword [ebp - 0x2a4]
add ecx, 2
jmp 0x43d587
xor ecx, ecx
movzx eax, word [ebp + ecx - 0x260]
lea esi, [ecx + 0x4c3910]
mov dword [ebp - 0x2a4], ecx
mov edx, eax
test ax, ax
jne 0x43d61f
cmp word [esi], ax
je 0x43cf11
jmp 0x43d624
cmp ax, word [esi]
je 0x43d664
xor ecx, ecx
cmp cx, ax
jne 0x43d62f
xor edi, edi
jmp 0x43d63b
push edx
call fcn.0048e184
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x43d64b
xor eax, eax
jmp 0x43d657
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp di, ax
jb 0x43d669
ja 0x43d669
mov ecx, dword [ebp - 0x2a4]
add ecx, 2
jmp 0x43d5f9
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 0x43d6a0
cmp word [eax], si
je 0x43d6a0
inc esi
cmp word [eax + esi*2], 0
jne 0x43d698
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x43d6ba
xor eax, eax
cmp word [edi], ax
je 0x43d6b8
nop
inc eax
cmp word [edi + eax*2], 0
jne 0x43d6b0
add esi, eax
xor eax, eax
cmp word [ebp - 0x260], ax
je 0x43d6dc
nop word [eax + eax]
inc eax
cmp word [ebp + eax*2 - 0x260], 0
jne 0x43d6d0
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.0048a2cb
mov ecx, dword [ebp - 0x2b8]
add esp, 4
mov dword [ebp - 0x2a4], eax
mov edx, eax
test ecx, ecx
je 0x43d734
movzx ecx, word [ecx]
mov edi, ecx
test cx, cx
je 0x43d731
mov edi, dword [ebp - 0x2b8]
sub edi, eax
nop
mov word [edx], cx
add edx, 2
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x43d720
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x43d755
movzx eax, word [edi]
mov ecx, eax
test ax, ax
je 0x43d755
sub edi, edx
mov word [edx], cx
add edx, 2
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x43d744
mov eax, dword [ebp - 0x260]
test ax, ax
je 0x43d781
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 0x43d770
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 0x43d7af
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x2ac]
xor ecx, ecx
mov dword [ebp - 0x2b4], eax
mov eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x28], 0
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
test eax, eax
je 0x43d7e8
cmp word [eax], cx
je 0x43d7e8
nop
inc ecx
cmp word [eax + ecx*2], 0
jne 0x43d7e0
mov esi, dword [ebp + 0x14]
xor eax, eax
test esi, esi
je 0x43d7fe
cmp word [esi], ax
je 0x43d7fe
inc eax
cmp word [esi + eax*2], 0
jne 0x43d7f6
lea edi, [eax + ecx]
xor eax, eax
cmp word [ebp - 0x260], ax
je 0x43d81c
nop dword [eax]
inc eax
cmp word [ebp + eax*2 - 0x260], 0
jne 0x43d810
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.0048a2cb
mov dword [ebp - 0x2ac], eax
mov ecx, eax
mov eax, dword [ebp - 0x2c0]
add esp, 4
test eax, eax
je 0x43d874
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x43d874
mov esi, dword [ebp - 0x2c0]
sub esi, ecx
nop
mov word [ecx], dx
add ecx, 2
movzx eax, word [esi + ecx]
mov edx, eax
test ax, ax
jne 0x43d860
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x43d895
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x43d895
sub esi, ecx
mov word [ecx], dx
add ecx, 2
movzx eax, word [esi + ecx]
mov edx, eax
test ax, ax
jne 0x43d884
mov eax, dword [ebp - 0x260]
test ax, ax
je 0x43d8c1
lea esi, [ebp - 0x260]
movzx edx, ax
sub esi, ecx
nop dword [eax + eax]
mov word [ecx], dx
add ecx, 2
movzx eax, word [esi + ecx]
mov edx, eax
test ax, ax
jne 0x43d8b0
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 0x43d8e5
push eax
call fcn.00489f13
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 - 0x20], 1
mov byte [ebp - 0x14], 1
call dword [sym.imp.KERNEL32.dll_CopyFileExW]
test eax, eax
jne 0x43cf11
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 0x43d99d
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 0x43cf11
mov eax, dword [ebp - 0x2c8]
xor ecx, ecx
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
test eax, eax
je 0x43d9c8
cmp word [eax], cx
je 0x43d9c8
inc ecx
cmp word [eax + ecx*2], 0
jne 0x43d9c0
mov esi, dword [ebp + 0x14]
xor eax, eax
test esi, esi
je 0x43d9de
cmp word [esi], ax
je 0x43d9de
inc eax
cmp word [esi + eax*2], 0
jne 0x43d9d6
lea edi, [eax + ecx]
xor eax, eax
cmp word [ebp - 0x260], ax
je 0x43d9fc
nop dword [eax]
inc eax
cmp word [ebp + eax*2 - 0x260], 0
jne 0x43d9f0
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.0048a2cb
mov dword [ebp - 0x2a0], eax
mov ecx, eax
mov eax, dword [ebp - 0x2c8]
add esp, 4
test eax, eax
je 0x43da54
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x43da54
mov esi, edx
mov edx, dword [ebp - 0x2c8]
sub edx, ecx
mov word [ecx], si
add ecx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x43da40
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x43da81
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x43da81
mov esi, edx
mov edx, dword [ebp + 0x14]
sub edx, ecx
nop dword [eax]
mov word [ecx], si
add ecx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x43da70
mov eax, dword [ebp - 0x260]
test ax, ax
je 0x43dab1
lea edx, [ebp - 0x260]
movzx esi, ax
sub edx, ecx
nop word [eax + eax]
mov word [ecx], si
add ecx, 2
movzx eax, word [edx + ecx]
mov esi, eax
test ax, ax
jne 0x43daa0
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.00489f13
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 0x43cf17
push ecx
push esi
mov esi, dword [ebp - 0x2a8]
mov ecx, esi
push 0x4c392c
push dword [ebp - 0x2b4]
mov byte [ebp - 0x20], 1
call fcn.0043dbd0
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 0x43cf1d
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x43db51
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x3c]
or esi, 0xffffffff
jmp 0x43db7e
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 0x43db8a
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x2ac]
test eax, eax
je 0x43db9d
push eax
call fcn.00489f13
add esp, 4
test edi, edi
je 0x43dbaa
push edi
call fcn.00489f13
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.00489f05
mov esp, ebp
pop ebp
ret 0x10
or esi, 0xffffffff
jmp 0x43db7e