Function at 0x402680
Capabilities:
Copy file
Create directory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x46c
mov edx, dword [ebp + 8]
test edx, edx
jne 0x4026c2
mov edx, dword [0x406020]
test edx, edx
je 0x4026b8
mov dword [esp + 4], 0x402647
mov edi, dword [ebp + 0x14]
mov dword [esp], edi
call sub.msvcrt.dll_strcat
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x402655
jmp 0x4026a5
movzx ebx, byte [0x401df7]
lea esi, [ebp - 0x127]
mov dword [esp + 8], 0x103
mov dword [esp + 4], 0
mov dword [esp], esi
mov byte [ebp - 0x128], bl
call sub.msvcrt.dll_memset
mov byte [ebp - 0x238], bl
lea ecx, [ebp - 0x237]
lea ebx, [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 8], 0x103
mov dword [esp + 4], 0
call sub.msvcrt.dll_memset
mov dword [esp], ebx
mov edx, dword [ebp + 0x14]
mov dword [esp + 4], edx
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], 0x402664
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov ecx, ebx
nop
lea esi, [esi]
mov edi, dword [ecx]
add ecx, 4
lea edx, [edi - 0x1010101]
not edi
and edx, edi
and edx, 0x80808080
je 0x402740
test edx, 0x8080
jne 0x402765
shr edx, 0x10
add ecx, 2
add dl, dl
sbb ecx, 3
sub ecx, ebx
xor edx, edx
mov byte [ebp + ecx - 0x129], dl
mov dword [esp + 4], 0x4060a0
mov dword [esp], ebx
call sub.msvcrt.dll__stat
test eax, eax
jne 0x402975
mov dword [esp + 4], 0x402673
lea esi, [ebp - 0x238]
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp], esi
mov edi, dword [ebp + 0x14]
mov dword [esp + 4], edi
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], 0x402664
lea ecx, [ebp - 0x238]
mov dword [esp], ecx
call sub.msvcrt.dll_strcat
lea ecx, [ebp - 0x238]
mov esi, esi
mov esi, dword [ecx]
add ecx, 4
lea edx, [esi - 0x1010101]
not esi
and edx, esi
and edx, 0x80808080
je 0x4027d0
test edx, 0x8080
jne 0x4027f5
shr edx, 0x10
add ecx, 2
mov dword [esp], ebx
add dl, dl
mov esi, ecx
sbb esi, 3
lea edx, [ebp - 0x358]
mov dword [esp + 4], edx
call sub.msvcrt.dll__findfirst
cmp eax, 0xffffffff
mov ebx, eax
je 0x402850
lea edi, [ebp - 0x344]
nop
lea esi, [esi]
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.msvcrt.dll_strcpy
lea edx, [ebp - 0x238]
mov dword [esp], edx
call sub.msvcrt.dll__unlink
mov dword [esp], ebx
lea ecx, [ebp - 0x358]
mov dword [esp + 4], ecx
call sub.msvcrt.dll__findnext
test eax, eax
je 0x402820
mov dword [esp], ebx
call sub.msvcrt.dll__findclose
movzx ecx, byte [0x401df7]
lea edi, [ebp - 0x467]
mov dword [esp + 8], 0x103
mov dword [esp + 4], 0
mov dword [esp], edi
mov byte [ebp - 0x468], cl
call sub.msvcrt.dll_memset
mov ebx, dword [ebp + 0x14]
mov dword [esp + 4], ebx
lea ebx, [ebp - 0x468]
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, dword [0x406020]
test eax, eax
je 0x402968
mov dword [esp + 4], 0x402647
mov dword [esp], ebx
lea esi, [ebp - 0x238]
call sub.msvcrt.dll_strcat
mov edi, dword [ebp + 0x14]
lea edx, [ebp - 0x238]
mov dword [esp], edx
mov dword [esp + 4], edi
call sub.msvcrt.dll_strcpy
mov dword [esp], esi
lea esi, [ebp - 0x238]
mov dword [esp + 4], 0x402664
call sub.msvcrt.dll_strcat
mov ecx, dword [ebp + 0xc]
lea edx, [ebp - 0x238]
mov eax, dword [ebp + 0x10]
mov dword [esp], edx
lea edi, [eax + ecx + 1]
mov dword [esp + 4], edi
call sub.msvcrt.dll_strcat
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
sub esp, 0xc
test eax, eax
jne 0x40294e
mov dword [esp + 4], 0x4060a0
lea ecx, [ebp - 0x238]
mov ebx, dword [0x4060b4]
mov dword [esp], ecx
call sub.msvcrt.dll__stat
test eax, eax
jne 0x402693
cmp ebx, dword [0x4060b4]
jne 0x402693
mov ebx, dword [ebp + 0x14]
lea esi, [ebp - 0x238]
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
jmp 0x4026b0
mov dword [esp + 4], 0x402655
jmp 0x4028ad
mov dword [esp], ebx
call sub.msvcrt.dll__mkdir
test eax, eax
jne 0x402693
jmp 0x402858