Function at 0x100204f0
Capabilities:
Copy file
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x10050a9c
mov eax, dword fs:[0]
push eax
sub esp, 0x6c4
mov eax, dword [0x1006b2c8]
xor eax, esp
mov dword [esp + 0x6c0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1006b2c8]
xor eax, esp
push eax
lea eax, [esp + 0x6d8]
mov dword fs:[0], eax
mov esi, dword [esp + 0x6ec]
mov dword [esp + 0x14], esi
xor ebx, ebx
push 0x208
lea eax, [esp + 0x4d0]
push ebx
push eax
mov dword [esp + 0x6ec], 5
mov dword [esp + 0x44], ebx
call fcn.100376a0
push 0x208
lea ecx, [esp + 0x2d4]
push ebx
push ecx
call fcn.100376a0
push 0x208
lea edx, [esp + 0xd8]
push ebx
push edx
call fcn.100376a0
add esp, 0x24
cmp dword [esp + 0x6e8], ebx
je 0x10020d95
cmp esi, ebx
je 0x10020d95
mov eax, dword [esp + 0x768]
push eax
call fcn.1001bb50
add esp, 4
push esi
lea ecx, [esp + 0x4d0]
push ecx
mov dword [esp + 0x44], eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea edx, [esp + 0x4cc]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
mov esi, dword [esp + 0x710]
cmp esi, dword [esp + 0x714]
jbe 0x100205de
call fcn.100370ab
lea eax, [esp + 0x70c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x720]
cmp eax, dword [esp + 0x724]
mov dword [esp + 0x1c], esi
mov edi, eax
jbe 0x10020604
call fcn.100370ab
lea eax, [esp + 0x71c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x730]
cmp eax, dword [esp + 0x734]
mov dword [esp + 0x34], edi
mov ebp, eax
jbe 0x1002062a
call fcn.100370ab
mov esi, dword [esp + 0x740]
cmp esi, dword [esp + 0x744]
lea eax, [esp + 0x72c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
jbe 0x1002064e
call fcn.100370ab
lea eax, [esp + 0x73c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x714]
cmp dword [esp + 0x710], esi
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
jbe 0x1002067a
call fcn.100370ab
cmp ebp, ebx
je 0x10020689
lea eax, [esp + 0x70c]
cmp ebp, eax
je 0x1002068e
call fcn.100370ab
cmp edi, esi
je 0x10020c66
cmp dword [esp + 0x38], ebx
jne 0x10020c66
cmp ebp, ebx
jne 0x100206a9
call fcn.100370ab
cmp edi, dword [ebp + 8]
jb 0x100206b3
call fcn.100370ab
push 0xffffffffffffffff
push ebx
mov ebp, 7
push edi
lea ecx, [esp + 0xac]
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc0], ebx
mov word [esp + 0xb0], bx
call fcn.100016f0
mov edi, dword [esp + 0x30]
cmp edi, ebx
mov byte [esp + 0x6e0], 6
jne 0x100206f3
call fcn.100370ab
mov esi, dword [esp + 0x34]
cmp esi, dword [edi + 8]
jb 0x10020701
call fcn.100370ab
push 0xffffffffffffffff
push ebx
push esi
lea ecx, [esp + 0x74]
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x88], ebx
mov word [esp + 0x78], bx
call fcn.100016f0
mov esi, dword [esp + 0x20]
cmp esi, ebx
jne 0x1002072e
call fcn.100370ab
mov ecx, dword [esp + 0x24]
cmp ecx, dword [esi + 8]
jb 0x1002073c
call fcn.100370ab
mov ebp, dword [esp + 0x28]
cmp ebp, ebx
mov edx, dword [esp + 0x24]
mov edi, dword [edx]
jne 0x1002074f
call fcn.100370ab
mov esi, dword [esp + 0x2c]
cmp esi, dword [ebp + 8]
jb 0x1002075d
call fcn.100370ab
mov ebp, dword [esi]
mov esi, 7
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ebx
mov word [esp + 0x50], bx
cmp edi, 0xffffffff
mov byte [esp + 0x6e0], 8
mov dword [esp + 0x40], ebx
jne 0x100207b6
mov edi, 8
cmp dword [esp + 0x80], edi
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ebx
mov word [esp + 0x50], bx
jb 0x100207aa
mov eax, dword [esp + 0x6c]
push eax
call fcn.10036ea6
add esp, 4
cmp dword [esp + 0xb8], edi
jmp 0x10020bd5
cmp dword [esp + 0x7c], ebx
mov esi, 8
jne 0x1002082d
cmp dword [esp + 0xb8], esi
mov eax, dword [esp + 0xa4]
jae 0x100207d8
lea eax, [esp + 0xa4]
push eax
lea edx, [esp + 0x4d0]
push edx
push str._s_s
push 0x104
lea eax, [esp + 0x2d4]
push 0x104
push eax
call fcn.10037d11
mov edx, dword [esp + 0xbc]
add esp, 0x18
cmp dword [esp + 0xb8], esi
jae 0x10020817
lea edx, [esp + 0xa4]
mov eax, edx
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x10020820
jmp 0x1002088b
cmp dword [esp + 0x80], esi
mov eax, dword [esp + 0x6c]
jae 0x1002083e
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x4d0]
push ecx
push str._s_s
push 0x104
lea edx, [esp + 0x2d4]
push 0x104
push edx
call fcn.10037d11
mov edx, dword [esp + 0x84]
add esp, 0x18
cmp dword [esp + 0x80], esi
jae 0x1002087a
lea edx, [esp + 0x6c]
mov eax, edx
lea esi, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x10020880
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x54]
call fcn.100017e0
mov dword [esp + 0x9c], 7
mov dword [esp + 0x98], ebx
mov word [esp + 0x88], bx
cmp dword [esp + 0x3c], ebx
mov byte [esp + 0x6e0], 9
jne 0x10020925
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x730]
call fcn.100011a0
push eax
lea ecx, [esp + 0x24]
call fcn.100010d0
test al, al
je 0x10020911
cmp dword [esp + 0x708], 8
mov eax, dword [esp + 0x6f4]
jae 0x100208f9
lea eax, [esp + 0x6f4]
lea ecx, [esp + 0x84]
push ecx
push eax
push edi
call fcn.10029580
mov ecx, eax
call fcn.10029450
jmp 0x1002094e
push ebx
push 0x100533f4
lea ecx, [esp + 0x8c]
call fcn.100017e0
jmp 0x1002094e
cmp dword [esp + 0x708], 8
mov eax, dword [esp + 0x6f4]
jae 0x1002093d
lea eax, [esp + 0x6f4]
lea edx, [esp + 0x84]
push edx
push eax
call fcn.100073b0
add esp, 8
cmp dword [esp + 0x9c], 8
mov eax, dword [esp + 0x88]
jae 0x10020966
lea eax, [esp + 0x88]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push eax
lea eax, [esp + 0xc0]
push eax
call edi
mov esi, dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea ecx, [esp + 0xbc]
push ecx
call esi
cmp dword [esp + 0x64], 8
mov eax, dword [esp + 0x50]
jae 0x10020996
lea eax, [esp + 0x50]
push eax
lea edx, [esp + 0xc0]
push edx
push str._s_s
push 0x104
mov eax, edx
push 0x104
push eax
call fcn.10037d11
add esp, 0x18
call fcn.10034d20
mov ecx, dword [eax + 0x120]
shr ecx, 7
test cl, 1
je 0x10020aa6
mov ecx, dword [esp + 0x6c]
mov eax, 8
cmp dword [esp + 0x80], eax
jae 0x100209e6
lea ecx, [esp + 0x6c]
cmp dword [esp + 0x764], eax
mov eax, dword [esp + 0x750]
jae 0x100209fd
lea eax, [esp + 0x750]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x10020aa6
cmp dword [esp + 0x3c], ebx
jne 0x10020aa6
push ebx
lea edx, [esp + 0xc0]
push edx
lea eax, [esp + 0x2cc]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
call fcn.10034d20
mov ecx, eax
call fcn.10006820
push eax
lea ecx, [esp + 0x88]
call fcn.10001930
cmp dword [esp + 0x9c], 8
mov eax, dword [esp + 0x88]
jae 0x10020a5f
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0xc0]
push ecx
call edi
lea edx, [esp + 0xbc]
push edx
call esi
cmp dword [esp + 0x64], 8
mov eax, dword [esp + 0x50]
jae 0x10020a83
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0xc0]
push eax
push str._s_s
push 0x104
mov ecx, eax
push 0x104
push ecx
call fcn.10037d11
add esp, 0x18
cmp ebp, ebx
je 0x10020b2b
cmp dword [esp + 0x64], 8
mov eax, dword [esp + 0x50]
jae 0x10020abd
lea eax, [esp + 0x50]
mov edi, dword [esp + 0x14]
lea edx, [esp + 0x40]
push edx
push ebx
push ebx
push 0x280
lea ecx, [esp + 0xcc]
push ecx
push edi
push eax
push ebx
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupInstallFileExW]
test eax, eax
jne 0x10020aff
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
mov dword [esp + 0x38], eax
je 0x10020aff
push eax
push str.SetupInstallFileEx_Error:_d
call fcn.10033fe0
add esp, 8
mov eax, dword [esp + 0x50]
mov ebp, 8
cmp dword [esp + 0x64], ebp
jae 0x10020b12
lea eax, [esp + 0x50]
lea edx, [esp + 0xbc]
push edx
push edi
push eax
push str.::SetupInstallFileEx___s___s___s___
call fcn.10033fe0
add esp, 0x10
jmp 0x10020b64
push ebx
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x2cc]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea edx, [esp + 0xbc]
push edx
lea eax, [esp + 0x2c8]
push eax
push str.::CopyFile___s___s__FALSE___
call fcn.10033fe0
add esp, 0xc
mov ebp, 8
cmp dword [esp + 0x9c], ebp
jb 0x10020b7d
mov ecx, dword [esp + 0x88]
push ecx
call fcn.10036ea6
add esp, 4
cmp dword [esp + 0x64], ebp
mov esi, 7
mov dword [esp + 0x9c], esi
mov dword [esp + 0x98], ebx
mov word [esp + 0x88], bx
jb 0x10020bab
mov edx, dword [esp + 0x50]
push edx
call fcn.10036ea6
add esp, 4
cmp dword [esp + 0x80], ebp
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ebx
mov word [esp + 0x50], bx
jb 0x10020bce
mov eax, dword [esp + 0x6c]
push eax
call fcn.10036ea6
add esp, 4
cmp dword [esp + 0xb8], ebp
mov byte [esp + 0x6e0], 5
mov word [esp + 0x6c], bx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], esi
jb 0x10020bff
mov ecx, dword [esp + 0xa4]
push ecx
call fcn.10036ea6
add esp, 4
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
cmp eax, dword [edx + 8]
jb 0x10020c11
call fcn.100370ab
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov esi, 0x1c
add dword [esp + 0x1c], esi
cmp edx, dword [ecx + 8]
jb 0x10020c2c
call fcn.100370ab
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x34], esi
cmp ecx, dword [eax + 8]
jb 0x10020c42
call fcn.100370ab
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov esi, 4
add dword [esp + 0x24], esi
cmp eax, dword [edx + 8]
jb 0x10020c5d
call fcn.100370ab
add dword [esp + 0x2c], esi
jmp 0x1002065d
cmp dword [esp + 0x708], 8
jb 0x10020c80
mov ecx, dword [esp + 0x6f4]
push ecx
call fcn.10036ea6
add esp, 4
mov eax, dword [esp + 0x710]
cmp eax, ebx
mov dword [esp + 0x708], 7
mov dword [esp + 0x704], ebx
mov word [esp + 0x6f4], bx
je 0x10020cd0
mov edx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x718]
lea ecx, [esp + 0x710]
push ecx
push edx
push eax
call fcn.100039d0
mov eax, dword [esp + 0x720]
push eax
call fcn.10036ea6
add esp, 0x14
mov eax, dword [esp + 0x720]
cmp eax, ebx
mov dword [esp + 0x710], ebx
mov dword [esp + 0x714], ebx
mov dword [esp + 0x718], ebx
je 0x10020d1b
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x728]
lea edx, [esp + 0x720]
push edx
push ecx
push eax
call fcn.100039d0
mov edx, dword [esp + 0x730]
push edx
call fcn.10036ea6
add esp, 0x14
mov eax, dword [esp + 0x730]
cmp eax, ebx
mov dword [esp + 0x720], ebx
mov dword [esp + 0x724], ebx
mov dword [esp + 0x728], ebx
je 0x10020d44
push eax
call fcn.10036ea6
add esp, 4
cmp dword [esp + 0x740], ebx
mov dword [esp + 0x730], ebx
mov dword [esp + 0x734], ebx
mov dword [esp + 0x738], ebx
je 0x10020d72
mov eax, dword [esp + 0x740]
push eax
call fcn.10036ea6
add esp, 4
cmp dword [esp + 0x764], 8
jb 0x10020d8c
mov ecx, dword [esp + 0x750]
push ecx
call fcn.10036ea6
add esp, 4
mov eax, dword [esp + 0x38]
jmp 0x10020ebe
mov esi, 8
cmp dword [esp + 0x708], esi
jb 0x10020db3
mov edx, dword [esp + 0x6f4]
push edx
call fcn.10036ea6
add esp, 4
mov eax, dword [esp + 0x710]
cmp eax, ebx
mov dword [esp + 0x708], 7
mov dword [esp + 0x704], ebx
mov word [esp + 0x6f4], bx
je 0x10020e03
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x718]
lea edx, [esp + 0x710]
push edx
push ecx
push eax
call fcn.100039d0
mov edx, dword [esp + 0x720]
push edx
call fcn.10036ea6
add esp, 0x14
mov eax, dword [esp + 0x720]
cmp eax, ebx
mov dword [esp + 0x710], ebx
mov dword [esp + 0x714], ebx
mov dword [esp + 0x718], ebx
je 0x10020e4e
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x728]
lea edx, [esp + 0x720]
push edx
push ecx
push eax
call fcn.100039d0
mov edx, dword [esp + 0x730]
push edx
call fcn.10036ea6
add esp, 0x14
mov eax, dword [esp + 0x730]
cmp eax, ebx
mov dword [esp + 0x720], ebx
mov dword [esp + 0x724], ebx
mov dword [esp + 0x728], ebx
je 0x10020e77
push eax
call fcn.10036ea6
add esp, 4
mov eax, dword [esp + 0x740]
cmp eax, ebx
mov dword [esp + 0x730], ebx
mov dword [esp + 0x734], ebx
mov dword [esp + 0x738], ebx
je 0x10020ea0
push eax
call fcn.10036ea6
add esp, 4
cmp dword [esp + 0x764], esi
jb 0x10020eb9
mov eax, dword [esp + 0x750]
push eax
call fcn.10036ea6
add esp, 4
mov eax, 0x57
mov ecx, dword [esp + 0x6d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x6c0]
xor ecx, esp
call fcn.1003754f
add esp, 0x6d0
ret