Function at 0x401420
Capabilities:
Copy file
Print debug messages
Read file on windows
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1d8c
call fcn.0042d2e0
mov eax, dword [0x44c044]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor esi, esi
push 0x206
lea ecx, [ebp - 0x1036]
xor eax, eax
push esi
push ecx
mov dword [ebp - 0x1d70], esi
mov dword [ebp - 0x1d58], esi
mov word [ebp - 0x1038], ax
call fcn.00428490
add esp, 0xc
push 0x206
lea eax, [ebp - 0x62e]
xor edx, edx
push esi
push eax
mov word [ebp - 0x630], dx
call fcn.00428490
add esp, 0xc
push 0x206
lea edx, [ebp - 0x1446]
xor ecx, ecx
push esi
push edx
mov word [ebp - 0x1448], cx
call fcn.00428490
add esp, 0xc
push 0x206
lea ecx, [ebp - 0x123e]
xor eax, eax
push esi
push ecx
mov word [ebp - 0x1240], ax
call fcn.00428490
add esp, 0xc
push 0x206
lea eax, [ebp - 0x426]
xor edx, edx
push esi
push eax
mov word [ebp - 0x428], dx
call fcn.00428490
add esp, 0xc
push 0x206
lea edx, [ebp - 0x21e]
xor ecx, ecx
push esi
push edx
mov word [ebp - 0x220], cx
call fcn.00428490
add esp, 0xc
push 0x7fe
lea ecx, [ebp - 0xe2e]
xor eax, eax
push esi
push ecx
mov word [ebp - 0xe30], ax
call fcn.00428490
add esp, 0xc
push 0x7fe
lea eax, [ebp - 0x1c46]
xor edx, edx
push esi
push eax
mov word [ebp - 0x1c48], dx
call fcn.00428490
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x1038]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
lea ecx, [ecx]
movzx ecx, word [ebp + eax - 0x1038]
mov word [ebp + eax - 0x630], cx
add eax, 2
cmp cx, si
jne 0x401550
lea edx, [ebp - 0x630]
push 0x5c
push edx
call fcn.0042224c
add esp, 8
test eax, eax
je 0x401593
lea eax, [ebp - 0x630]
push 0x5c
push eax
call fcn.0042224c
add esp, 8
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x1038]
push 0x5c
push edx
call fcn.0042224c
add eax, 2
lea edx, [ebp - 0x1448]
add esp, 8
sub edx, eax
nop
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
cmp cx, si
jne 0x4015b0
xor eax, eax
jmp 0x4015d0
movzx ecx, word [ebp + eax - 0x1448]
mov word [ebp + eax - 0x1240], cx
add eax, 2
cmp cx, si
jne 0x4015d0
lea eax, [ebp - 0x1240]
push 0x2e
push eax
call fcn.0042224c
add esp, 8
test eax, eax
je 0x401613
lea ecx, [ebp - 0x1240]
push 0x2e
push ecx
call fcn.0042224c
add esp, 8
xor edx, edx
mov word [eax], dx
push 0xd0
lea eax, [ebp - 0x1d18]
push esi
push eax
mov dword [ebp - 0x1d20], esi
call fcn.00428490
add esp, 0xc
lea esi, [ebp - 0x1d18]
mov ebx, 0x44e414
lea esp, [esp]
mov ecx, dword [ebx]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
push ecx
lea edx, [ebp - 0x630]
push edx
lea eax, [ebp - 0x220]
push 0x43bff0
push eax
call edi
lea ecx, [ebp - 0x220]
push 0
push ecx
call fcn.00422560
add esp, 0x18
test eax, eax
jne 0x4016b2
inc dword [ebp - 0x1d70]
lea edx, [ebp - 0x1d50]
push edx
lea eax, [ebp - 0x220]
push eax
call fcn.00421dee
add esp, 8
test eax, eax
jne 0x401707
mov ecx, dword [ebp - 0x1d30]
mov edx, dword [ebp - 0x1d2c]
mov eax, dword [ebp - 0x1d3c]
add dword [ebp - 0x1d58], eax
mov dword [esi], ecx
mov dword [esi + 4], edx
jmp 0x4016bf
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi - 8], eax
add ebx, 4
add esi, 0x18
cmp ebx, 0x44e438
jl 0x401640
cmp dword [ebp - 0x1d70], 0
jne 0x40174b
push 0x40000
push 0x43c01c
push 0x43c024
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217e4
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0xe30]
push str._s_r_n_r_n
push ecx
call edi
add esp, 0xc
push 0x40010
push 0x43bdf4
lea edx, [ebp - 0xe30]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217e4
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x1d20], 0
jne 0x40177e
push 0x40030
push 0x43c038
push 0x43c044
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217e4
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x1d58]
lea ecx, [ebp - 0x1240]
push ecx
add eax, 0xe8
lea edx, [ebp - 0x630]
push edx
mov dword [ebp - 0x1d6c], eax
lea eax, [ebp - 0x428]
push str._s_s_
push eax
call edi
add esp, 0x10
push 0
lea ecx, [ebp - 0x428]
push ecx
lea edx, [ebp - 0x1038]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x80
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea ebx, [ebp - 0x428]
call fcn.00401080
test eax, eax
je 0x401738
mov ecx, dword [str.KfhliQbpiGjbp]
mov edx, dword [0x43bdcc]
xor eax, eax
mov dword [ebp - 0x17], eax
mov dword [ebp - 0x13], eax
mov dword [ebp - 0xf], eax
mov dword [ebp - 0xb], eax
mov eax, dword [0x43bdd0]
mov dword [ebp - 0x18], ecx
mov ecx, dword [0x43bdd4]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], ecx
xor eax, eax
lea esp, [esp]
add byte [ebp + eax - 0x18], 6
inc eax
cmp eax, 0x10
jb 0x401820
lea edx, [ebp - 0x428]
push 0x43c08c
push edx
call fcn.00421cda
mov edi, eax
add esp, 8
mov dword [ebp - 0x1d54], edi
test edi, edi
jne 0x401890
lea eax, [ebp - 0x428]
push eax
lea ecx, [ebp - 0xe30]
push 0x43c094
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x10
push str.L_eQ_
lea edx, [ebp - 0xe30]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217e4
mov esp, ebp
pop ebp
ret
push 2
push 0
push edi
call fcn.00422a6b
add esp, 0xc
push edi
call fcn.0042297c
add esp, 4
push edi
mov esi, eax
call fcn.004218c1
add esp, 4
push esi
call fcn.0042182d
add esp, 4
mov ebx, eax
push edi
test ebx, ebx
jne 0x4018ef
call fcn.00422ba5
add esp, 4
push 0x10
push str.L_eQ_
push 0x43c0c4
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217e4
mov esp, ebp
pop ebp
ret
push esi
push 1
push ebx
call fcn.004224c4
add esp, 0x10
cmp eax, esi
je 0x401938
push edi
call fcn.00422ba5
add esp, 4
push ebx
call fcn.004217f3
add esp, 4
push 0x10
push str.L_eQ_
push 0x43c0d8
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217e4
mov esp, ebp
pop ebp
ret
push esi
push ebx
lea esi, [ebp - 0x18]
call section..text
cdq
push ebx
mov dword [ebp - 0x1d80], eax
mov dword [ebp - 0x1d7c], edx
call fcn.004217f3
mov esi, dword [ebp - 0x1d6c]
add esp, 0xc
push esi
call fcn.0042182d
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1d6c], ebx
test ebx, ebx
jne 0x4019ba
push edi
call fcn.00422ba5
add esp, 4
push esi
lea eax, [ebp - 0xe30]
push 0x43c0ec
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x10
push str.L_eQ_
lea ecx, [ebp - 0xe30]
push ecx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217e4
mov esp, ebp
pop ebp
ret
push esi
push 0
push ebx
call fcn.00428490
mov edx, dword [ebp - 0x18]
mov dword [ebx], edx
mov eax, dword [ebp - 0x14]
mov dword [ebx + 4], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebx + 8], ecx
mov edx, dword [ebp - 0xc]
lea edi, [ebx + 0x10]
mov ecx, 0x36
lea esi, [ebp - 0x1d20]
add esp, 0xc
xor eax, eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x1d20]
mov dword [ebx + 0xc], edx
mov dword [ebp - 0x1d88], eax
mov dword [ebp - 0x1d84], eax
mov dword [ebp - 0x1d58], 0xe8
mov dword [ebp - 0x1d5c], eax
mov dword [ebp - 0x1d74], ecx
mov edx, dword [ebp - 0x1d74]
mov esi, dword [edx]
mov dword [ebp - 0x1d68], esi
test esi, esi
je 0x401bee
mov eax, dword [eax*4 + 0x44e414]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
push eax
lea ecx, [ebp - 0x630]
push ecx
lea edx, [ebp - 0x220]
push 0x43bff0
push edx
call edi
lea eax, [ebp - 0x220]
push 0x43c118
push eax
call fcn.00421cda
add esp, 0x18
mov dword [ebp - 0x1d60], eax
test eax, eax
je 0x401c41
push esi
call fcn.0042182d
mov edi, eax
add esp, 4
test edi, edi
je 0x401c9a
push esi
push 0
push edi
call fcn.00428490
mov ecx, dword [ebp - 0x1d60]
add esp, 0xc
push ecx
push esi
push 1
push edi
call fcn.004224c4
add esp, 0x10
mov dword [ebp - 0x1d64], eax
cmp eax, esi
jne 0x401cf4
lea eax, [esi + esi]
push eax
mov dword [ebp - 0x1d64], eax
call fcn.0042182d
mov esi, eax
add esp, 4
test esi, esi
je 0x401d6b
mov edx, dword [ebp - 0x1d64]
push edx
push 0
push esi
call fcn.00428490
mov ecx, dword [ebp - 0x1d68]
lea eax, [ebp - 0x1d64]
add esp, 0xc
push eax
mov eax, edi
mov edx, esi
call fcn.0041c200
add esp, 4
mov dword [ebp - 0x1d68], eax
cmp eax, 0xfffffffb
je 0x401dca
test eax, eax
jne 0x401e2d
mov ebx, dword [ebp - 0x1d64]
mov eax, dword [ebp - 0x1d74]
mov ecx, dword [ebp - 0x1d88]
mov edx, dword [ebp - 0x1d6c]
push ebx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ecx
lea eax, [ecx + edx + 0xe8]
push esi
push eax
call fcn.00428830
mov ecx, dword [ebp - 0x1d60]
add esp, 0xc
add dword [ebp - 0x1d88], ebx
push ecx
adc dword [ebp - 0x1d84], 0
add dword [ebp - 0x1d58], ebx
call fcn.00422ba5
add esp, 4
push edi
call fcn.004217f3
add esp, 4
push esi
call fcn.004217f3
mov edx, dword [ebp - 0x1d5c]
mov eax, dword [edx*4 + 0x44e414]
add esp, 4
mov ecx, eax
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x401b83
lea edi, [ebp - 0x1c48]
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
jmp 0x401ba0
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x401ba0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x1c48]
rep movsb byte es:[edi], byte [esi]
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x401bc3
mov ecx, dword [0x43c24c]
mov dx, word [0x43c250]
mov ebx, dword [ebp - 0x1d6c]
mov dword [eax], ecx
mov word [eax + 4], dx
mov eax, dword [ebp - 0x1d5c]
add dword [ebp - 0x1d74], 0x18
inc eax
mov dword [ebp - 0x1d5c], eax
cmp eax, 9
jl 0x401a17
mov ecx, 0x36
lea esi, [ebp - 0x1d20]
lea edi, [ebx + 0x10]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x1d80]
mov ecx, esi
and ecx, dword [ebp - 0x1d7c]
cmp ecx, 0xffffffff
jne 0x401ea3
mov edi, dword [ebp - 0x1d54]
push 2
push 0
push edi
call fcn.00422a6b
jmp 0x401eb8
mov eax, dword [ebp - 0x1d54]
push eax
call fcn.00422ba5
add esp, 4
push ebx
call fcn.004217f3
add esp, 4
lea ecx, [ebp - 0x220]
push ecx
lea edx, [ebp - 0xe30]
push 0x43c094
push edx
call edi
add esp, 0xc
push 0x10
push str.L_eQ_
lea eax, [ebp - 0xe30]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217e4
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x1d54]
push ecx
call fcn.00422ba5
add esp, 4
push ebx
call fcn.004217f3
mov edx, dword [ebp - 0x1d60]
add esp, 4
push edx
call fcn.00422ba5
mov eax, dword [ebp - 0x1d5c]
lea ecx, [eax + eax*2]
mov edx, dword [ebp + ecx*8 - 0x1d20]
mov eax, dword [eax*4 + 0x44e414]
add esp, 4
push edx
push eax
lea ecx, [ebp - 0xe30]
push 0x43c120
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x401867
mov eax, dword [ebp - 0x1d54]
push eax
call fcn.00422ba5
add esp, 4
push ebx
call fcn.004217f3
mov ecx, dword [ebp - 0x1d60]
add esp, 4
push ecx
call fcn.00422ba5
add esp, 4
push edi
call fcn.004217f3
mov eax, dword [ebp - 0x1d5c]
mov edx, dword [ebp - 0x1d64]
add esp, 4
push edx
lea eax, [eax + eax*2]
mov ecx, dword [ebp + eax*8 - 0x1d20]
push ecx
lea edx, [ebp - 0x220]
push edx
lea eax, [ebp - 0xe30]
push 0x43c150
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
push 0x10
push str.L_eQ_
lea ecx, [ebp - 0xe30]
push ecx
jmp 0x401875
mov edx, dword [ebp - 0x1d54]
push edx
call fcn.00422ba5
add esp, 4
push ebx
call fcn.004217f3
mov eax, dword [ebp - 0x1d60]
add esp, 4
push eax
call fcn.00422ba5
add esp, 4
push edi
call fcn.004217f3
mov ecx, dword [ebp - 0x1d64]
mov edx, dword [ebp - 0x1d5c]
mov eax, dword [edx*4 + 0x44e414]
add esp, 4
push ecx
push eax
lea ecx, [ebp - 0xe30]
push 0x43c19c
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x401867
mov eax, dword [ebp - 0x1d54]
push eax
call fcn.00422ba5
add esp, 4
push ebx
call fcn.004217f3
mov ecx, dword [ebp - 0x1d60]
add esp, 4
push ecx
call fcn.00422ba5
add esp, 4
push edi
call fcn.004217f3
add esp, 4
push esi
call fcn.004217f3
mov edx, dword [ebp - 0x1d5c]
mov eax, dword [edx*4 + 0x44e414]
add esp, 4
push 0xfffffffffffffffb
push eax
lea ecx, [ebp - 0xe30]
push 0x43c1c8
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x401867
mov eax, dword [ebp - 0x1d54]
push eax
call fcn.00422ba5
add esp, 4
push ebx
call fcn.004217f3
mov ecx, dword [ebp - 0x1d60]
add esp, 4
push ecx
call fcn.00422ba5
add esp, 4
push edi
call fcn.004217f3
add esp, 4
push esi
call fcn.004217f3
mov edx, dword [ebp - 0x1d68]
mov eax, dword [ebp - 0x1d5c]
mov ecx, dword [eax*4 + 0x44e414]
add esp, 4
push edx
push ecx
lea edx, [ebp - 0xe30]
push 0x43c210
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push 0x10
push str.L_eQ_
lea eax, [ebp - 0xe30]
push eax
jmp 0x401875
mov edx, dword [ebp - 0x1d54]
push 0
push esi
push edx
call fcn.00422a6b
mov edi, dword [ebp - 0x1d54]
mov eax, dword [ebp - 0x1d0c]
mov ecx, dword [ebp - 0x1d10]
mov edx, dword [ebp - 0x1d14]
add esp, 0xc
push eax
mov eax, dword [ebp - 0x1d18]
push ecx
mov ecx, dword [ebp - 0x1d20]
push edx
push eax
push ecx
lea edx, [ebp - 0xe30]
push str.Client.cab___lu____I64d____lu____lu_
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x1c
lea eax, [ebp - 0xe30]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov ecx, dword [ebp - 0x1d58]
push edi
push ecx
push 1
push ebx
call fcn.0042276e
and esi, dword [ebp - 0x1d7c]
add esp, 0x10
mov dword [ebp - 0x1d68], eax
cmp esi, 0xffffffff
je 0x401f98
push edi
call fcn.0042297c
cdq
add esp, 4
push edi
mov esi, eax
mov dword [ebp - 0x1d7c], edx
call fcn.004225f1
mov edx, dword [ebp - 0x1d7c]
add esp, 4
push edx
push esi
push eax
call fcn.00421b35
add esp, 0xc
test eax, eax
je 0x401f98
push edi
call fcn.00422ba5
add esp, 4
push ebx
call fcn.004217f3
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0xe30]
push 0x43c2a4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x40010
push 0x43bdf4
lea ecx, [ebp - 0xe30]
push ecx
jmp 0x401875
push edi
call fcn.00422ba5
add esp, 4
push ebx
call fcn.004217f3
mov eax, dword [ebp - 0x1d68]
mov ecx, dword [ebp - 0x1d58]
add esp, 4
cmp eax, ecx
je 0x401fe4
push ecx
push eax
lea edx, [ebp - 0xe30]
push 0x43c2d4
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push 0x10
push str.L_eQ_
lea eax, [ebp - 0xe30]
push eax
jmp 0x401875
lea eax, [ebp - 0x1c48]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401ff0
sub eax, edx
mov edx, dword [ebp - 0x1d70]
lea ecx, [ebp - 0x428]
push ecx
push edx
sar eax, 1
lea eax, [ebp + eax*2 - 0x1c48]
push 0x43c308
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push 0x40040
push 0x43c348
lea ecx, [ebp - 0x1c48]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.004217e4
mov esp, ebp
pop ebp
ret