Function at 0x4015ec
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff5ac
mov eax, 0x402110
mov dword [ebp - 4], eax
mov eax, 0x402118
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], 0x4015d8
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x18], 0x181ef
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_CopyFileExW
test eax, eax
jne 0x401658
mov dword [0x7d906f], edx
mov dword [0x7d90c7], edi
sub dword [0x7d9049], eax
mov dword [0x7d904d], esi
mov dword [0x7d90ad], ecx
mov word [0x7d90dd], 0xcebb
mov dword [0x7d90a3], edx
and edx, ecx
mov dword [0x7d9066], edi
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
call sub.kernel32.dll_ConvertThreadToFiber
test eax, eax
jne 0x401693
mov esi, edx
mov dword [0x7d9056], edx
xchg dword [esp - 0xc], esi
mov dword [0x7d9048], 0x176ec
mov dword [0x7d910a], 0x15024
sub dword [0x7d9044], ebx
xchg dword [0x7d902b], edx
mov dword [0x7d9059], ebx
mov word [0x7d9024], 0xcd26
lea eax, [ebp - 0x1cf]
push eax
call sub.advapi32.dll_GetCurrentHwProfileW
mov edi, esi
mov dword [esp - 8], ebx
mov word [0x7d905b], 0xbbf6
mov eax, 0x402134
mov dword [ebp - 0x20], eax
mov eax, 0x402160
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], 0x4015d8
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x34], 0x196a8
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x20]
push eax
call sub.kernel32.dll_CopyFileExW
lea eax, [ebp - 0x2c1]
push eax
call sub.advapi32.dll_GetCurrentHwProfileW
test eax, eax
jne 0x401750
mov word [0x7d9086], 0x9982
mov dword [0x7d902d], eax
and dword [0x7d90cd], ebx
inc ecx
and dword [0x7d903e], ebx
mov edi, 0x8f
mov dword [0x7d9082], 0x16c79
mov dword [esp - 0x10], edx
mov dword [0x7d9066], ebx
mov dword [0x7d9058], ecx
mov dword [0x7d9042], esi
mov dword [0x7d9056], edx
dec ecx
mov dword [0x7d90c0], esi
xor eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
push eax
call sub.kernel32.dll_ConvertThreadToFiber
test eax, eax
je 0x4017b3
mov edi, edx
mov byte [0x7d90f3], 0xb9
mov dword [0x7d9071], edx
mov byte [0x7d9017], 0xfa
mov word [0x7d909f], 0xb6f9
mov word [0x7d90f0], 0xac74
mov dword [0x7d90b2], 0x17e92
mov dword [0x7d90f3], eax
mov dword [esp - 0x28], edx
mov dword [0x7d907e], ecx
lea eax, [ebp - 0x3b3]
push eax
call sub.advapi32.dll_GetCurrentHwProfileW
test eax, eax
je 0x401804
mov dword [0x7d9109], ecx
mov dword [0x7d906e], 0x12065
mov dword [0x7d9048], ecx
and edx, ebx
mov dword [0x7d90a0], ebx
mov dword [0x7d9017], esi
mov word [0x7d9083], 0x9713
mov dword [esp - 4], edx
mov dword [0x7d90a9], 0x10062
test ebx, ebx
je 0x401834
mov dword [0x7d9039], ecx
mov word [0x7d90c2], 0xccaa
xchg dword [0x7d9104], ebx
mov dword [0x7d9027], 0x17e77
xor eax, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_ConvertThreadToFiber
test eax, eax
jne 0x40186b
mov dword [0x7d9052], eax
mov word [0x7d90fb], 0x866e
mov dword [0x7d90fc], ecx
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
push eax
call sub.kernel32.dll_ConvertThreadToFiber
test eax, eax
je 0x401898
mov word [0x7d9060], 0x86c1
mov eax, edi
mov dword [esp - 0x18], ecx
mov dword [0x7d90ff], eax
sub dword [0x7d90ce], esi
mov dword [esp - 0x28], ecx
mov edi, eax
mov dword [0x7d90e1], ecx
mov eax, 0x402178
mov dword [ebp - 0x44], eax
mov eax, 0x402198
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x4c], 0x4015d8
xor eax, eax
mov dword [ebp - 0x50], eax
xor eax, eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], 0x1d6f3
mov eax, dword [ebp - 0x58]
push eax
mov eax, dword [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x44]
push eax
call sub.kernel32.dll_CopyFileExW
test eax, eax
jne 0x401902
mov edx, 0x1d5
mov dword [0x7d90d1], 0x12943
xchg dword [0x7d90ea], edx
mov ax, word [ebp - 0x5a]
push eax
call sub.kernel32.dll_GlobalDeleteAtom
test ax, ax
je 0x40193b
mov dword [0x7d90bf], edi
mov ebx, 0x15c
cmp edx, 0xf1
jl 0x40192f
lea edi, [0x7d9012]
and dword [edi], 0x3f
jmp 0x401935
xchg dword [0x7d9036], ecx
mov dword [0x7d90bb], esi
lea eax, [ebp - 0x4a5]
push eax
call sub.advapi32.dll_GetCurrentHwProfileW
mov dword [0x7d9045], edi
mov dword [0x7d9081], esi
cmp dword [0x7d906a], 0
jle 0x401962
xchg dword [0x7d9094], eax
mov word [0x7d9102], 0xebeb
mov dword [0x7d90c7], edx
mov dword [0x7d9063], ecx
mov byte [ebp - 0xdd], 0
cmp dword [ebp - 8], ebx
je 0x40199a
mov dword [0x7d9106], 0x11d7b
mov dword [0x7d90d7], ecx
mov byte [0x7d909f], 0x5a
mov dword [0x7d907f], 0x11b74
lea esi, [0x7d90b3]
mov dword [esi + 0x18], edi
and ecx, 0xe5
mov dword [0x7d9026], edi
test eax, eax
je 0x4019d1
lea edi, [0x7d9041]
mov dword [edi], ecx
mov dword [0x7d9107], edi
mov dword [0x7d9091], ecx
lea ebx, [0x7d904d]
add dword [ebx + 0x28], 0x83
mov dword [0x7d90b8], edi
and eax, dword [0x7d90e7]
inc edi
mov ax, word [ebp - 0x5c]
push eax
call sub.kernel32.dll_GlobalDeleteAtom
sub dword [0x7d90c9], edx
mov dword [0x7d903a], 0x13e47
mov dword [esp - 0xc], esi
mov eax, 0x1dd
mov dword [0x7d90d9], edx
inc byte [ebp - 0xdd]
cmp byte [ebp - 0xdd], 2
jne 0x40197e
mov eax, 0x4021b0
mov dword [ebp - 0x60], eax
mov eax, 0x4021d0
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x68], 0x4015d8
xor eax, eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x70], 1
mov dword [ebp - 0x74], 0x179e6
mov eax, dword [ebp - 0x74]
push eax
mov eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x64]
push eax
mov eax, dword [ebp - 0x60]
push eax
call sub.kernel32.dll_CopyFileExW
test eax, eax
jne 0x401a8a
mov dword [0x7d90e0], eax
add dword [0x7d9062], edx
add dword [0x7d90ba], edi
mov dword [0x7d9082], eax
mov dword [0x7d9106], eax
mov dword [0x7d90d4], 0x15e1d
mov dword [0x7d9075], eax
mov ax, word [ebp - 0x76]
push eax
call sub.kernel32.dll_GlobalDeleteAtom
test ax, ax
je 0x401aca
and dword [0x7d90db], edx
mov dword [0x7d90b1], esi
lea eax, [0x7d90cd]
and dword [eax], 0x3c
mov dword [0x7d90df], esi
mov eax, 0x4021f4
mov dword [ebp - 0x7c], eax
mov eax, 0x402210
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x84], 0x4015d8
xor eax, eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x8c], 1
mov dword [ebp - 0x90], 0x18552
mov eax, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 0x8c]
push eax
mov eax, dword [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x7c]
push eax
call sub.kernel32.dll_CopyFileExW
test eax, eax
jne 0x401b4d
mov dword [0x7d90c7], ebx
sub edi, dword [0x7d90b9]
mov edx, dword [esp + 0x28]
sub dword [0x7d906e], ecx
lea ebx, [0x7d9087]
add dword [ebx + 0x10], 0x58
mov eax, 0x402228
mov dword [ebp - 0x94], eax
mov eax, 0x402244
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x9c], 0x4015d8
xor eax, eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0xa8], 0x17985
mov eax, dword [ebp - 0xa8]
push eax
mov eax, dword [ebp - 0xa4]
push eax
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x94]
push eax
call sub.kernel32.dll_CopyFileExW
test eax, eax
jne 0x401bda
add dword [0x7d90a6], eax
mov dword [0x7d9038], esi
mov dword [0x7d90a1], edi
mov edx, dword [0x7d90b2]
mov dword [0x7d9073], eax
lea eax, [ebp - 0x597]
push eax
call sub.advapi32.dll_GetCurrentHwProfileW
mov byte [0x7d90e9], 5
mov dword [0x7d902a], ecx
mov esi, dword [0x7d9052]
lea ebx, [0x7d90c2]
mov dword [ebx], 0xba
mov dword [esp - 0xc], eax
dec ebx
mov dword [0x7d90df], edi
mov ax, word [ebp - 0xaa]
push eax
call sub.kernel32.dll_GlobalDeleteAtom
test ax, ax
jne 0x401c4e
test edx, edx
je 0x401c40
mov dword [0x7d901f], edi
mov word [0x7d90d4], 0xf67a
mov edx, 0x16a
add dword [0x7d90a3], eax
mov dword [0x7d9030], ebx
sub edx, 0x80
mov esi, ebx
mov byte [ebp - 0xdd], 0
mov dword [0x7d9016], edx
mov ebx, 0x18b
mov dword [0x7d904c], esi
mov ax, word [ebp - 0xac]
push eax
call sub.kernel32.dll_GlobalDeleteAtom
test ax, ax
je 0x401c90
mov byte [0x7d9024], 0x63
mov byte [0x7d90dc], 0x9f
mov dword [0x7d9035], 0x17b9a
inc byte [ebp - 0xdd]
cmp byte [ebp - 0xdd], 3
jne 0x401c55
mov dword [0x7d90df], eax
mov edi, 0xcd
mov esi, 0xad
xor eax, eax
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xb0]
push eax
call sub.kernel32.dll_ConvertThreadToFiber
mov dword [0x7d90db], edi
mov dword [esp - 8], esi
xchg dword [0x7d90ad], ebx
mov dword [0x7d903d], edi
lea eax, [ebp - 0x689]
push eax
call sub.advapi32.dll_GetCurrentHwProfileW
test eax, eax
jne 0x401cff
mov dword [0x7d90a0], 0x1555d
mov dword [0x7d90bd], ebx
sub ecx, dword [0x7d9019]
mov edx, 0xe6
mov dword [0x7d90ec], esi
mov dword [0x7d90e5], 0x101d7
mov ax, word [ebp - 0xb2]
push eax
call sub.kernel32.dll_GlobalDeleteAtom
test ax, ax
jne 0x401d3a
mov dword [0x7d904e], ebx
and dword [0x7d9083], ecx
mov dword [0x7d9021], edx
mov ecx, esi
mov edi, 0x1e3
cmp eax, 0xffffffff
jge 0x401d4f
mov byte [0x7d90d9], 1
mov dword [esp - 0x1c], edx
mov eax, dword [0x7d9070]
mov ecx, 0x1ef
mov dword [0x7d9038], eax
mov dword [0x7d9012], 0x16310
lea eax, [ebp - 0x77b]
push eax
call sub.advapi32.dll_GetCurrentHwProfileW
test eax, eax
je 0x401d8f
mov word [0x7d9021], 0x540d
xchg dword [0x7d9084], edx
mov dword [0x7d90c0], ebx
mov dword [0x7d905f], edi
lea edx, [0x7d905e]
mov dword [edx + 0x24], 0x31
mov dword [0x7d9045], 0x169c8
lea ebx, [0x7d9073]
sub dword [ebx + 0x10], 1
mov dword [0x7d90b5], edx
mov dword [0x7d902e], eax
mov dword [0x7d90a9], edi
mov dword [0x7d90f2], edx
mov word [0x7d9022], 0x1867
cmp dword [0x7d904e], 0
jle 0x401df6
add dword [0x7d90f2], edx
mov dword [0x7d90c6], 0x1722a
xchg dword [0x7d90f6], ebx
mov word [0x7d903b], 0x1401
mov word [0x7d90ed], 0x9317
mov dword [0x7d9032], edi
xor eax, eax
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
push eax
call sub.kernel32.dll_ConvertThreadToFiber
test eax, eax
jne 0x401e2f
dec edi
mov ecx, edx
mov dword [0x7d90db], edi
mov byte [ebp - 0xdd], 0
lea eax, [ebp - 0x86d]
push eax
call sub.advapi32.dll_GetCurrentHwProfileW
mov dword [esp - 0x10], esi
xchg dword [0x7d901c], edx
mov eax, dword [0x7d905e]
inc byte [ebp - 0xdd]
cmp byte [ebp - 0xdd], 2
jne 0x401e36
mov byte [ebp - 0xdd], 0
xor eax, eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xbc]
push eax
call sub.kernel32.dll_ConvertThreadToFiber
mov edi, esi
mov dword [esp - 8], ebx
mov word [0x7d905b], 0xbbf6
inc byte [ebp - 0xdd]
cmp byte [ebp - 0xdd], 2
jne 0x401e68
mov eax, 0x402268
mov dword [ebp - 0xc0], eax
mov eax, 0x40228c
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc8], 0x4015d8
xor eax, eax
mov dword [ebp - 0xcc], eax
xor eax, eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xd4], 0x1edc7
mov eax, dword [ebp - 0xd4]
push eax
mov eax, dword [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xcc]
push eax
mov eax, dword [ebp - 0xc8]
push eax
mov eax, dword [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xc0]
push eax
call sub.kernel32.dll_CopyFileExW
test eax, eax
je 0x401f23
mov dword [0x7d9099], edi
mov dword [0x7d902e], eax
mov byte [0x7d9068], 0x85
lea esi, [0x7d90b6]
mov dword [esi + 0x1c], ebx
mov dword [esp - 8], eax
mov dword [0x7d9085], edi
cmp ebx, 0xffffffff
jg 0x401f45
mov byte [0x7d904e], 0x47
mov dword [esp - 0x12], ecx
mov dword [0x7d90f4], esi
jmp 0x401f65
mov esi, edi
mov eax, ebx
mov esi, 0x186
mov dword [0x7d90c2], 0x10645
lea eax, [0x7d90d3]
mov dword [eax + 8], 0x6a
mov dword [0x7d90ec], ecx
mov dword [0x7d9017], 0x17bd5
xor eax, eax
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
push eax
call sub.kernel32.dll_ConvertThreadToFiber
test eax, eax
jne 0x401fab
mov dword [0x7d9027], edi
mov dword [0x7d90be], 0x13537
mov dword [0x7d90ab], eax
mov ebx, esi
add dword [0x7d9017], ecx
mov dword [0x7d905f], edx
mov ebx, dword [esp + 0x24]
mov dword [0x7d902c], eax
mov word [0x7d90ae], 0x2e14
mov ax, word [ebp - 0xda]
push eax
call sub.kernel32.dll_GlobalDeleteAtom
test ax, ax
je 0x401ff3
mov word [0x7d908d], 0x54a9
mov dword [0x7d908b], ebx
add dword [0x7d909a], esi
mov edi, 0x197
add ecx, 0x65
mov edi, 0x8f
mov dword [0x7d9082], 0x16c79
mov dword [esp - 0x10], edx
mov dword [0x7d9066], ebx
lea eax, [ebp - 0x95f]
push eax
call sub.advapi32.dll_GetCurrentHwProfileW
add edx, dword [0x7d9022]
mov eax, esi
cmp dword [0x7d9080], ecx
jge 0x40203c
mov dword [0x7d90d0], ebx
xchg dword [0x7d9084], edx
mov dword [0x7d90f9], edi
jmp 0x402042
mov dword [0x7d9030], eax
cmp ax, word [0x7d9011]
jl 0x402055
mov dword [esp - 0x12], edx
mov dword [0x7d90f8], eax
mov dword [0x7d90a7], 0x1098c
and dword [0x7d90e4], ecx
cmp ebx, 0x2d
jl 0x402077
mov byte [0x7d9026], 0x73
mov dword [0x7d90fb], edx
mov dword [0x7d904f], edi
sub dword [0x7d9083], esi
lea eax, [ebp - 0xa51]
push eax
call sub.advapi32.dll_GetCurrentHwProfileW
test eax, eax
jne 0x4020b8
and ecx, dword [0x7d90d5]
mov byte [0x7d90bd], 0x93
mov dword [0x7d90cb], eax
mov dword [0x7d9079], edi
lea ebx, [0x7d9061]
add dword [ebx], 0xf2
mov dword [0x7d901e], edx
mov dword [esp - 8], ecx
mov dword [0x7d90e0], ebx
mov dword [0x7d90a6], esi
mov ax, word [ebp - 0xdc]
push eax
call sub.kernel32.dll_GlobalDeleteAtom
test ax, ax
je 0x402109
mov dword [0x7d90f1], eax
and ebx, dword [0x7d9068]
mov dword [0x7d9078], 0x11693
mov dword [0x7d90a3], 0x13600
mov word [0x7d90b3], 0x1965
mov esp, ebp
pop ebp
ret