Function at 0x402ab0
Capabilities:
Copy file
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x438018
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44851c]
xor eax, esp
push eax
lea eax, [esp + 0x4c]
mov dword fs:[0], eax
mov dword [esp + 0x54], 0
call fcn.0040413e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x402af9
push 0x80004005
call fcn.00401b90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x54], 1
mov ecx, dword [esp + 0x5c]
push 0x80
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 8
push 0x43eb80
lea ecx, [esp + 0x24]
call fcn.00401a40
lea ecx, [esp + 0x38]
call fcn.004111fe
mov byte [esp + 0x54], 2
call fcn.0040413e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x402b56
push 0x80004005
call fcn.00401b90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x54], 3
call fcn.0040413e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x402b85
push 0x80004005
call fcn.00401b90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x54], 4
call fcn.004111fe
mov byte [esp + 0x54], 5
call fcn.0040413e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x402bc2
push 0x80004005
call fcn.00401b90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
push 0x12
push str.c:custom_dirs.dat
lea ecx, [esp + 0x28]
mov byte [esp + 0x5c], 6
call fcn.00401a40
mov ebp, dword [esp + 0x20]
push ebp
call fcn.004225e1
add esp, 4
push 0
push 0x1001
push ebp
lea ecx, [esp + 0x30]
call fcn.00411216
cmp eax, 1
jne 0x402d35
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004017c0
mov edx, dword [esp + 0x18]
push 0
push 0
push edx
lea ecx, [esp + 0x44]
call fcn.00411216
cmp eax, 1
jne 0x402d2c
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x3c]
call fcn.0041174b
test eax, eax
je 0x402d23
lea ecx, [ecx]
lea edi, [esp + 0x14]
call fcn.004011c0
mov ebx, edi
call fcn.00401140
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
test eax, eax
jne 0x402c71
or edi, 0xffffffff
jmp 0x402c97
cmp dword [ecx - 0xc], 0
jge 0x402c7c
or edi, 0xffffffff
jmp 0x402c97
push eax
push ecx
call fcn.00422752
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x402c93
or edi, 0xffffffff
jmp 0x402c97
sub eax, ecx
mov edi, eax
cmp dword [ecx - 0xc], 0
jge 0x402ca2
or esi, 0xffffffff
jmp 0x402cc1
push str.quickcam
push ecx
call fcn.00422752
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x402cbd
or esi, 0xffffffff
jmp 0x402cc1
sub eax, ecx
mov esi, eax
cmp dword [ecx - 0xc], 0
jge 0x402ccc
or eax, 0xffffffff
jmp 0x402ce9
push str.QUICKCAM
push ecx
call fcn.00422752
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x402ce7
or eax, 0xffffffff
jmp 0x402ce9
sub eax, ecx
test edi, edi
jge 0x402d0d
test esi, esi
jge 0x402d0d
test eax, eax
jge 0x402d0d
push ecx
lea ecx, [esp + 0x28]
call fcn.00411408
push 0x43ebb8
lea ecx, [esp + 0x28]
call fcn.00411408
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x3c]
call fcn.0041174b
test eax, eax
jne 0x402c50
lea ecx, [esp + 0x38]
call fcn.004115c5
lea ecx, [esp + 0x24]
call fcn.004115c5
mov edx, dword [esp + 0x5c]
push 0
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push ebp
call fcn.004225e1
lea eax, [ebp - 0x10]
add esp, 4
mov byte [esp + 0x54], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402d6d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x54], 4
call fcn.00411630
mov byte [esp + 0x54], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402da0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x54], 2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402dc5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x54], 1
call fcn.00411630
mov byte [esp + 0x54], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402df8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x54], 0xffffffff
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402e20
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x4c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 4