Function at 0x402bd0
Capabilities:
Accept command line arguments
Check if file exists
Get common file path
Get file attributes
Query environment variable
Read file on windows

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
mov eax, 0x94a8
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
call fcn.00404bd8
mov ecx, 0x82
lea esi, [ebp - 0x9260]
sub esp, eax
lea ebx, [ebp - 0x4018]
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x9058]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x9468]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x8e50]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x8c48]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x8a40]
rep stosd dword es:[edi], eax
mov dword [esp + 8], 0x2000
mov dword [esp + 4], ebx
mov dword [esp], 0x40625c
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x402f08
mov dword [ebp - 0x9488], 0x1000
call dword [sym.imp.kernel32.dll_GetCommandLineW]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wcsdup]
mov dword [ebp - 0x948c], eax
test eax, eax
je 0x402f3f
mov eax, dword [ebp - 0x948c]
lea edx, [ebp - 0x946c]
call section..text
mov dword [ebp - 0x947c], eax
test eax, eax
jne 0x4034f0
mov edi, dword [ebp - 0x946c]
movzx eax, word [edi]
test ax, ax
jne 0x402ccc
jmp 0x402cd8
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
je 0x402cd8
cmp ax, 0x20
je 0x402cc0
cmp ax, 9
je 0x402cc0
mov eax, dword [ebp - 0x9488]
mov dword [ebp - 0x946c], edi
cmp word [edi], 0
mov dword [ebp - 0x9490], eax
je 0x402de0
lea eax, [ebp - 0x8838]
mov dword [ebp - 0x9484], eax
mov edx, dword [ebp - 0x9484]
mov eax, edi
call section..text
mov dword [ebp - 0x947c], eax
test eax, eax
jne 0x4034f0
mov eax, dword [ebp - 0x8838]
movzx edx, word [eax]
mov edi, eax
test dx, dx
jne 0x402d3c
jmp 0x402d48
movzx edx, word [edi + 2]
add edi, 2
test dx, dx
je 0x402d48
cmp dx, 0x20
je 0x402d30
cmp dx, 9
je 0x402d30
mov edx, dword [ebp - 0x946c]
movzx ebx, word [edx]
xor edx, edx
mov word [eax], dx
mov ecx, dword [ebp - 0x946c]
movzx edx, word [ecx]
test dx, dx
je 0x402d8c
mov eax, ecx
lea esi, [esi]
lea esi, [esi]
cmp dx, 0x22
je 0x402d80
cmp ecx, eax
jae 0x402d7d
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax + 2]
add eax, 2
test dx, dx
jne 0x402d70
xor eax, eax
mov word [ecx], ax
mov dword [ebp - 0x8838], ecx
test byte [0x405004], 8
jne 0x402e80
cmp bx, 0x2f
je 0x402ebd
cmp word [ebp - 0x9260], 0
jne 0x402e30
mov ecx, dword [ebp - 0x946c]
xor eax, eax
movzx edx, word [ecx + eax]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x402dc0
mov dword [ebp - 0x946c], edi
cmp word [edi], 0
jne 0x402d00
cmp word [ebp - 0x9058], 0
jne 0x402e07
xor eax, eax
lea esi, [esi]
movzx edx, word [eax + 0x40611a]
mov word [ebp + eax - 0x9058], dx
add eax, 2
test dx, dx
jne 0x402df0
mov eax, dword [ebp - 0x948c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [ebp - 0x9490]
mov dword [ebp - 0x9488], eax
jmp 0x402f98
cmp word [ebp - 0x9058], 0
jne 0x403f5a
mov ecx, dword [ebp - 0x946c]
xor eax, eax
lea esi, [esi]
lea esi, [esi]
movzx edx, word [ecx + eax]
mov word [ebp + eax - 0x9058], dx
add eax, 2
test dx, dx
jne 0x402e50
mov dword [ebp - 0x946c], edi
cmp word [edi], 0
jne 0x402d00
jmp 0x402de0
mov eax, dword [ebp - 0x946c]
call fcn.00401250
mov dword [esp + 0xc], str.Processing_Arg:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.XCOPY_ParseCommandLine
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
cmp bx, 0x2f
jne 0x402dae
mov ebx, dword [ebp - 0x946c]
cmp word [ebx], 0
je 0x402dd0
mov dword [ebp - 0x9480], 0
mov dword [ebp - 0x9494], edi
mov edi, dword [ebp - 0x9490]
lea esi, [esi]
nop
movzx eax, word [ebx + 2]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_toupper]
sub eax, 0x2d
cmp eax, 0x2c
ja case.0x402efd.46
jmp dword [eax*4 + 0x406434]
mov dword [esp + 4], 0x40626c
mov edi, dword [sym.imp.ucrtbase.dll_wcsstr]
mov dword [esp], ebx
call edi
test eax, eax
je 0x403af9
mov dword [ebp - 0x9488], 0x1100
jmp 0x402c73
test byte [0x405004], 1
jne 0x403cae
mov dword [ebp - 0x947c], 4
mov eax, dword [ebp - 0x947c]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
test byte [0x405004], 8
jne 0x403a50
mov ebx, dword [ebp - 0x946c]
mov eax, 0x66
call fcn.004018e0
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.00401520
mov eax, dword [ebp - 0x948c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
test byte [0x405004], 8
jne 0x40351b
mov eax, dword [sym.imp.kernel32.dll_GetFullPathNameW]
lea edi, [ebp - 0x8220]
mov dword [esp], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 0x104
mov dword [ebp - 0x9480], eax
call eax
sub esp, 0x10
test eax, eax
je 0x402f32
test byte [ebp - 0x9488], 0x10
je 0x402ff8
xor eax, eax
lea esi, [esi]
movzx edx, word [edi + eax]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x402fe8
mov ebx, dword [sym.imp.ucrtbase.dll_wcschr]
mov dword [esp + 4], 0x2a
mov dword [esp], esi
call ebx
mov dword [esp + 4], 0x3f
mov dword [ebp - 0x947c], eax
mov dword [esp], esi
call ebx
mov ecx, dword [ebp - 0x947c]
mov edx, eax
movzx eax, byte [0x405004]
or ecx, edx
je 0x4035c0
test al, 8
jne 0x403a84
mov dword [esp + 4], 0x5c
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcsrchr]
mov edx, eax
test eax, eax
je 0x403aad
xor eax, eax
lea esi, [esi]
movzx ecx, word [esi + eax]
mov word [ebp + eax - 0x9468], cx
add eax, 2
test cx, cx
jne 0x403060
mov eax, edx
xor ecx, ecx
sub eax, esi
mov word [ebp + eax - 0x9466], cx
xor eax, eax
lea esi, [esi]
movzx ecx, word [edx + eax + 2]
mov word [ebp + eax - 0x8e50], cx
add eax, 2
test cx, cx
jne 0x403088
lea eax, [ebp - 0x8838]
mov dword [esp + 0xc], 0
mov dword [ebp - 0x9484], eax
mov dword [esp + 8], eax
lea eax, [ebp - 0x9058]
mov dword [esp], eax
mov eax, dword [ebp - 0x9480]
mov dword [esp + 4], 0x104
call eax
sub esp, 0x10
test eax, eax
je 0x4037a8
mov eax, dword [ebp - 0x9484]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
sub esp, 4
cmp eax, 0xffffffff
je 0x4036cd
lea esi, [ebp - 0x8428]
test al, 0x10
jne 0x40370c
mov eax, dword [ebp - 0x9484]
lea ecx, [ebp - 0x8630]
lea ebx, [ebp - 0x8018]
mov dword [esp + 0xc], edi
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 8], esi
call dword [sym.imp.ucrtbase.dll__wsplitpath]
xor eax, eax
lea ecx, [ebp - 0x8630]
lea esi, [esi]
movzx edx, word [ecx + eax]
mov word [ebp + eax - 0x8c48], dx
add eax, 2
test dx, dx
jne 0x403138
cmp word [ebp - 0x8c48], 0
lea edx, [ebp - 0x8c48]
je 0x403169
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x403160
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [esi + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x403170
xor eax, eax
lea esi, [esi]
movzx edx, word [edi + eax]
mov word [ebp + eax - 0x8a40], dx
add eax, 2
test dx, dx
jne 0x403188
cmp word [ebp - 0x8a40], 0
lea edx, [ebp - 0x8a40]
je 0x4031b9
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x4031b0
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4031c0
test byte [0x405004], 8
jne 0x403b85
test byte [ebp - 0x9488], 0x40
jne 0x403b34
mov eax, dword [ebp - 0x9488]
lea ecx, [ebp - 0x8c48]
lea edx, [ebp - 0x8e50]
mov ebx, dword fs:[0x18]
mov dword [esp + 4], eax
lea eax, [ebp - 0x8a40]
mov dword [esp], eax
lea eax, [ebp - 0x9468]
call fcn.00401be0
mov esi, dword [0x40c450]
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x947c], eax
test esi, esi
je 0x403280
lea esi, [esi]
mov eax, dword [esi]
mov dword [0x40c450], eax
mov eax, dword [esi + 4]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov esi, dword [0x40c450]
sub esp, 0xc
test esi, esi
jne 0x403238
test byte [ebp - 0x9488], 0x20
jne 0x403b13
test byte [ebp - 0x9488], 0x80
jne 0x402f49
mov ebx, dword [0x40c454]
mov eax, 0x69
call fcn.004018e0
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.00401520
jmp 0x402f49
or edi, 0x100
lea esi, [esi]
mov eax, dword [ebp - 0x946c]
lea ebx, [eax + 4]
mov eax, dword [ebp - 0x9480]
test eax, eax
jne 0x4034b0
movzx eax, word [ebx]
cmp ax, 0x2f
je 0x4034b0
test ax, ax
je 0x4034b0
test byte [0x405004], 1
jne 0x4034bb
mov dword [ebp - 0x9480], 1
mov ebx, dword [ebp - 0x946c]
lea esi, [esi]
cmp word [ebx], 0
jne 0x402ee8
mov dword [ebp - 0x9490], edi
mov edi, dword [ebp - 0x9494]
jmp 0x402dd0
or edi, 0x40
jmp 0x4032c8
or edi, 0x18000
jmp 0x4032c8
or edi, 0x20
jmp 0x4032c8
or edi, 0x100000
jmp 0x4032c8
or edi, 1
jmp 0x4032c8
or edi, 0x1000
jmp 0x4032c8
or edi, 0x10
jmp 0x4032c8
lea ecx, [ebx + 2]
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], str.EXCLUDE:
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x1001
mov dword [esp], 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
sub esp, 0x18
cmp eax, 2
je 0x403ea8
or edi, 6
jmp 0x4032c8
cmp word [ebx + 4], 0x3a
je 0x4037f5
or edi, 0x80000
jmp 0x4032c8
or edi, 0x2000
jmp 0x4032c8
mov eax, 0x75
call fcn.004018e0
mov dword [esp], eax
call fcn.00401520
mov eax, dword [ebp - 0x948c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x402f49
movzx eax, word [ebx + 4]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_toupper]
cmp eax, 0x59
jne 0x4032c8
and edi, 0xfffffeff
add ebx, 6
jmp 0x4032d1
or edi, 0x8000
jmp 0x4032c8
test byte [0x405004], 1
je 0x4032c8
mov dword [esp + 0xc], str.ignoring__V_n
mov dword [esp + 8], str.XCOPY_ParseCommandLine
mov dword [esp + 4], 0x405004
mov dword [esp], 0
call fcn.004014d0
jmp 0x4032c8
or edi, 0x400
jmp 0x4032c8
or edi, 0x82
jmp 0x4032c8
or edi, 2
jmp 0x4032c8
or edi, 0x800
jmp 0x4032c8
or edi, 8
jmp 0x4032c8
or edi, 0x4000
jmp 0x4032c8
or edi, 0x200
jmp 0x4032c8
mov dword [ebp - 0x946c], ebx
jmp 0x403318
mov eax, ebx
call fcn.00401250
mov dword [esp + 0xc], str.Unexpected_characters_found_and_ignored__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.XCOPY_ParseCommandLine
mov dword [esp + 4], 0x405004
mov dword [esp], 0
call fcn.004014d0
jmp 0x403302
mov eax, dword [ebp - 0x948c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
mov esi, dword [ebp - 0x947c]
mov eax, 0
cmp esi, 6
cmovne eax, esi
mov dword [ebp - 0x947c], eax
jmp 0x402f49
mov dword [esp + 0xc], str.Supplied_parameters:_n
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
test byte [0x405004], 8
je 0x402fa5
mov eax, esi
call fcn.00401250
mov dword [esp + 0xc], str.Source______:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
test byte [0x405004], 8
je 0x402fa5
lea eax, [ebp - 0x9058]
call fcn.00401250
mov dword [esp + 0xc], str.Destination_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
jmp 0x402fa5
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
sub esp, 4
mov edx, eax
cmp eax, 0xffffffff
je 0x404019
movzx eax, byte [0x405004]
mov ecx, eax
and ecx, 8
and edx, 0x10
je 0x403035
test cl, cl
jne 0x4036a4
xor eax, eax
lea esi, [esi]
lea esi, [esi]
movzx edx, word [esi + eax]
mov word [ebp + eax - 0x9468], dx
add eax, 2
test dx, dx
jne 0x403600
cmp word [ebp - 0x9468], 0
je 0x403f80
lea eax, [ebp - 0x9468]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x403630
lea esi, [ebp - 0x9468]
sub eax, esi
movzx eax, word [ebp + eax - 0x946a]
cmp ax, 0x3a
je 0x403683
cmp ax, 0x5c
je 0x403683
lea edx, [ebp - 0x9468]
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x403660
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + 0x406258]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x403670
xor eax, eax
lea esi, [esi]
movzx edx, word [eax + 0x40621c]
mov word [ebp + eax - 0x8e50], dx
add eax, 2
test dx, dx
jne 0x403688
jmp 0x40309d
mov dword [esp + 0xc], str.Directory_supplied_n
mov dword [esp + 8], str.XCOPY_ProcessSourceParm
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
jmp 0x4035f4
test byte [ebp - 0x9488], 1
je 0x403ce4
lea eax, [ebp - 0x8e50]
mov dword [esp + 4], 0x3f
mov dword [esp], eax
call ebx
test eax, eax
jne 0x40370c
lea eax, [ebp - 0x8e50]
mov dword [esp + 4], 0x2a
mov dword [esp], eax
call ebx
test eax, eax
je 0x403ce4
mov ecx, dword [ebp - 0x9484]
xor eax, eax
lea esi, [esi]
movzx edx, word [ecx + eax]
mov word [ebp + eax - 0x8c48], dx
add eax, 2
test dx, dx
jne 0x403718
xor eax, eax
cmp word [ebp - 0x8c48], 0
mov word [ebp - 0x8a40], ax
je 0x404000
lea eax, [ebp - 0x8c48]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x403750
lea esi, [ebp - 0x8c48]
sub eax, esi
cmp word [ebp + eax - 0x8c4a], 0x5c
je 0x4031d0
lea edx, [ebp - 0x8c48]
lea esi, [esi]
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x403780
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + 0x406258]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x403790
jmp 0x4031d0
test byte [0x405004], 1
je 0x402f3f
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], str.Unexpected_failure_expanding_source_path___ld__n
mov dword [esp + 8], 0x40652c
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x405004
mov dword [esp], 0
call fcn.004014d0
mov dword [ebp - 0x947c], 4
jmp 0x402f49
movzx eax, word [ebx + 6]
sub eax, 0x30
cmp ax, 9
ja 0x4033be
mov dword [ebp - 0x8630], 0
lea edx, [ebx + 6]
mov dword [esp], edx
mov dword [ebp - 0x9490], edx
mov dword [ebp - 0x862c], 0
mov dword [ebp - 0x8628], 0
mov dword [ebp - 0x8624], 0
call dword [sym.imp.ucrtbase.dll__wtol]
mov edx, dword [ebp - 0x9490]
mov word [ebp - 0x862e], ax
movzx eax, word [ebx + 6]
test ax, ax
jne 0x40386c
jmp 0x403f3c
movzx eax, word [edx]
test ax, ax
je 0x403f3c
lea ecx, [eax - 0x30]
mov ebx, edx
add edx, 2
cmp cx, 9
jbe 0x403860
cmp ax, 0x2d
jne 0x403f3c
mov dword [esp], edx
mov dword [ebp - 0x9490], edx
call dword [sym.imp.ucrtbase.dll__wtol]
mov edx, dword [ebp - 0x9490]
mov word [ebp - 0x862a], ax
movzx eax, word [ebx + 2]
test ax, ax
jne 0x4038bc
jmp 0x403f3c
movzx eax, word [edx]
test ax, ax
je 0x403f3c
lea ecx, [eax - 0x30]
mov ebx, edx
add edx, 2
cmp cx, 9
jbe 0x4038b0
cmp ax, 0x2d
jne 0x403f3c
mov dword [esp], edx
mov dword [ebp - 0x9490], edx
call dword [sym.imp.ucrtbase.dll__wtol]
mov edx, dword [ebp - 0x9490]
mov word [ebp - 0x8630], ax
mov ecx, eax
movzx eax, word [ebx + 2]
mov ebx, edx
test ax, ax
jne 0x40390c
jmp 0x403915
movzx eax, word [ebx + 2]
add ebx, 2
test ax, ax
je 0x403915
sub eax, 0x30
cmp ax, 9
jbe 0x403900
cmp cx, 0x63
ja 0x403928
lea eax, [ecx + 0x7d0]
mov word [ebp - 0x8630], ax
lea eax, [ebp - 0x8630]
mov dword [esp + 4], 0x40c448
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_SystemTimeToFileTime]
sub esp, 8
test eax, eax
je 0x403f3c
lea ecx, [ebp - 0x8428]
mov dword [esp], 0x40c448
or edi, 0x40000
mov dword [esp + 4], ecx
mov dword [ebp - 0x9490], ecx
call dword [sym.imp.kernel32.dll_FileTimeToSystemTime]
mov ecx, dword [ebp - 0x9490]
lea eax, [ebp - 0x8220]
sub esp, 8
mov dword [esp + 8], ecx
mov dword [esp + 0x14], 0x20
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 4], 1
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_GetDateFormatW]
mov ecx, dword [ebp - 0x9490]
lea edx, [ebp - 0x8018]
sub esp, 0x18
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0x20
mov dword [esp + 0xc], 0
mov dword [esp + 8], ecx
mov dword [esp + 4], 2
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_GetTimeFormatW]
lea edx, [ebp - 0x8018]
sub esp, 0x18
test byte [0x405004], 8
je 0x4032d1
mov eax, edx
call fcn.00401250
mov dword [ebp - 0x9490], eax
lea eax, [ebp - 0x8220]
call fcn.00401250
mov edx, dword [ebp - 0x9490]
mov dword [esp + 0xc], str.Date_being_used_is:__s__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 8], str.XCOPY_ParseCommandLine
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
jmp 0x4032d1
mov eax, ebx
call fcn.00401250
mov dword [esp + 0xc], str.Unhandled_parameter__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.XCOPY_ParseCommandLine
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
jmp 0x402f6d
mov dword [esp + 0xc], str.Filename_supplied_n
mov dword [esp + 8], str.XCOPY_ProcessSourceParm
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
jmp 0x40303d
cmp word [ebp - 0x925e], 0x3a
jne 0x403e5e
xor eax, eax
movzx edx, word [esi + eax]
mov word [ebp + eax - 0x9468], dx
add eax, 2
test dx, dx
jne 0x403abd
xor esi, esi
xor eax, eax
mov word [ebp - 0x9464], si
movzx edx, word [ebp + eax - 0x925c]
mov word [ebp + eax - 0x8e50], dx
add eax, 2
test dx, dx
jne 0x403adc
jmp 0x40309d
mov dword [esp + 4], 0x406272
mov dword [esp], ebx
call edi
test eax, eax
jne 0x402f23
jmp 0x402c69
mov ebx, dword [0x40c454]
mov eax, 0x68
call fcn.004018e0
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.00401520
jmp 0x402f49
mov eax, 0x67
call fcn.004018e0
mov dword [esp], eax
call fcn.00401520
mov dword [esp], 0xfffffff6
call dword [sym.imp.kernel32.dll_GetStdHandle]
lea edx, [ebp - 0x8018]
sub esp, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0xa
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_ReadFile]
sub esp, 0x14
jmp 0x4031ea
mov dword [esp + 0xc], str.Resolved_parameters:_n
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
test byte [0x405004], 8
je 0x4031dd
lea eax, [ebp - 0x9468]
call fcn.00401250
mov dword [esp + 0xc], str.Source_Stem_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
test byte [0x405004], 8
je 0x4031dd
lea eax, [ebp - 0x8e50]
call fcn.00401250
mov dword [esp + 0xc], str.Source_Spec_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
test byte [0x405004], 8
je 0x4031dd
lea eax, [ebp - 0x8c48]
call fcn.00401250
mov dword [esp + 0xc], str.Dest___Stem_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
test byte [0x405004], 8
je 0x4031dd
lea eax, [ebp - 0x8a40]
call fcn.00401250
mov dword [esp + 0xc], str.Dest___Spec_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
jmp 0x4031dd
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], str.Unexpected_failure_expanding_source_path___ld__n
mov dword [esp + 8], str.XCOPY_ProcessSourceParm
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x405004
mov dword [esp], 0
call fcn.004014d0
jmp 0x402f3f
cmp word [ebp - 0x9058], 0
lea eax, [ebp - 0x9058]
je 0x404036
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x403d00
lea esi, [ebp - 0x9058]
sub eax, esi
sub eax, 2
cmp word [ebp + eax - 0x9058], 0x5c
je 0x40370c
xor edx, edx
mov eax, 0x73
mov dword [ebp - 0x8018], 0
lea esi, [ebp - 0x8428]
mov word [ebp - 0x8010], dx
mov dword [ebp - 0x8014], 0
call fcn.004018e0
mov ebx, dword [sym.imp.ucrtbase.dll_wcscpy]
mov dword [esp], esi
mov dword [esp + 4], eax
call ebx
mov eax, 0x74
call fcn.004018e0
mov dword [esp], edi
mov dword [esp + 4], eax
call ebx
movsx eax, byte [ebp - 0x8018]
movzx edx, word [ebp - 0x8428]
lea ebx, [ebp - 0x8630]
cmp eax, edx
jne 0x403db8
jmp 0x403fe6
movsx eax, byte [ebp - 0x8018]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_toupper]
movzx edx, word [ebp - 0x8428]
mov byte [ebp - 0x8018], al
movsx eax, al
cmp eax, edx
je 0x403fe6
movzx edx, word [ebp - 0x8220]
cmp edx, eax
je 0x40370c
mov eax, 0x6a
call fcn.004018e0
lea ecx, [ebp - 0x9058]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401520
mov dword [esp], 0xfffffff6
call dword [sym.imp.kernel32.dll_GetStdHandle]
lea edx, [ebp - 0x8018]
sub esp, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xa
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_ReadFile]
sub esp, 0x14
test byte [0x405004], 8
je 0x403d90
movsx eax, byte [ebp - 0x8018]
mov dword [esp + 0xc], str.User_answer__c_n
mov dword [esp + 8], 0x40652c
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
jmp 0x403d90
lea eax, [ebp - 0x8018]
mov dword [esp], 0x2000
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
xor ecx, ecx
mov eax, dword [ebp - 0x8018]
mov word [ebp - 0x9464], cx
sub esp, 8
mov dword [ebp - 0x9468], eax
xor eax, eax
movzx edx, word [esi + eax]
mov word [ebp + eax - 0x8e50], dx
add eax, 2
test dx, dx
jne 0x403e8f
jmp 0x40309d
mov ecx, dword [ebp - 0x946c]
lea ebx, [ecx + 0x12]
test byte [0x405004], 8
jne 0x403fa6
mov dword [0x40c450], 0
movzx eax, word [ecx + 0x12]
test ax, 0xffdf
je 0x403f14
cmp ax, 0x2f
je 0x403f14
add ecx, 0x14
mov edx, ecx
mov ecx, ebx
mov ebx, edx
jmp 0x403efc
movzx eax, word [ebx]
mov edx, ebx
add ebx, 2
test ax, 0xffdf
je 0x403f2d
cmp ax, 0x2f
je 0x403f2d
lea edx, [ebx - 2]
cmp ax, 0x2b
jne 0x403ee8
mov eax, ecx
call fcn.00401990
test eax, eax
jne 0x403f3c
mov ecx, ebx
jmp 0x403ee8
mov ebx, dword [ebp - 0x8838]
or edi, 0x20000
test ebx, ebx
je 0x4032c8
jmp 0x4032d1
cmp edx, ecx
je 0x403f14
mov eax, ecx
call fcn.00401990
test eax, eax
je 0x403f14
mov eax, 0x57
call fcn.00401810
mov eax, dword [ebp - 0x948c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x402f98
mov eax, 0x65
call fcn.004018e0
mov dword [esp], eax
call fcn.00401520
mov eax, dword [ebp - 0x948c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x402f98
movzx eax, word [ebp - 0x946a]
cmp ax, 0x5c
je 0x403683
cmp ax, 0x3a
je 0x403683
lea edx, [ebp - 0x9468]
jmp 0x403669
mov eax, ebx
mov dword [ebp - 0x9490], ecx
call fcn.00401250
mov dword [esp + 0xc], str._EXCLUDE_parms:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.XCOPY_ProcessExcludeList
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call fcn.004014d0
mov ecx, dword [ebp - 0x9490]
jmp 0x403ebe
movzx eax, word [ebp - 0x8220]
cmp eax, edx
jne 0x403102
jmp 0x40370c
cmp word [ebp - 0x8c4a], 0x5c
je 0x4031d0
lea edx, [ebp - 0x8c48]
jmp 0x403789
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
call fcn.00401810
mov dword [ebp - 0x947c], 4
jmp 0x402f49
mov eax, 0xfffffffe
jmp 0x403d14