Function at 0x403c10
Capabilities:
Copy file
Delete file
Link many functions at runtime

Disassembly:
test dword [0x4b63ec], 0xffffff80
jne 0x403c38
test dword [0x4b63ec], 0xffffffff
jne 0x403e90
call fcn.00490ee4
jmp fcn.00403c10
push edi
push esi
push ebp
push ebx
sub esp, 0xc8
mov ebx, ecx
mov esi, dword [esp + 0xdc]
movzx eax, byte [esp + 0xe0]
test eax, eax
jne 0x403c8f
lea ebp, [ebx + 0x1c8]
mov edi, ebp
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x403c71
inc ecx
inc eax
mov dl, byte [ecx]
test dl, dl
jne 0x403c69
push eax
push 0
push ebp
call fcn.004910c4
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebx + 0x1c4], eax
jmp 0x403d2e
mov dword [esp + 0xc4], ebx
mov ebp, 1
mov ebx, esi
lea esi, [esp]
mov edi, ebx
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x403ca2
mov edi, ebx
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x403cc0
inc ecx
inc eax
mov dl, byte [ecx]
test dl, dl
jne 0x403cb8
mov edx, ebp
inc ebp
mov byte [esp + eax - 4], 0
lea ecx, [esp]
push edx
push ecx
push 0x4b8154
push ecx
call fcn.00486227
add esp, 0x10
lea eax, [esp]
push 0
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov edx, 1
cmp eax, 0
mov eax, 0
cmovne eax, edx
cmp ebp, 0x63
jg 0x403e82
test eax, eax
je 0x403c9d
mov ebx, dword [esp + 0xc4]
lea ebp, [ebx + 0x1c8]
mov esi, ebp
lea edi, [esp]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x403d17
push ebp
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebx + 0x1c4], eax
test eax, eax
je 0x403e73
push 0x4b8160
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x28c], eax
push 0x4b816c
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x294], eax
push 0x4b8174
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x290], eax
push 0x4b8180
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x298], eax
push 0x4b818c
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x29c], eax
push 0x4b8198
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x2a0], eax
push 0x4b81a8
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x2a4], eax
push 0x4b81b8
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x2a8], eax
push 0x4b81c4
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x2ac], eax
cmp dword [ebx + 0x294], 0
je 0x403e55
cmp dword [ebx + 0x290], 0
je 0x403e55
cmp dword [ebx + 0x298], 0
je 0x403e55
cmp dword [ebx + 0x29c], 0
je 0x403e55
cmp dword [ebx + 0x2a0], 0
je 0x403e55
cmp dword [ebx + 0x2a4], 0
je 0x403e55
cmp dword [ebx + 0x2a8], 0
je 0x403e55
mov byte [ebx + 0x20], 1
mov eax, 1
add esp, 0xc8
pop ebx
pop ebp
pop esi
pop edi
ret 8
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
movsx eax, byte [ebx + 0x1c8]
test eax, eax
je 0x403e73
push ebp
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
add esp, 0xc8
pop ebx
pop ebp
pop esi
pop edi
ret 8
mov ebx, dword [esp + 0xc4]
jmp 0x403d0c
push edi
push esi
push ebp
push ebx
sub esp, 0xc8
mov ebx, ecx
mov esi, dword [esp + 0xdc]
movzx eax, byte [esp + 0xe0]
test eax, eax
jne 0x403ee7
lea ebp, [ebx + 0x1c8]
mov edi, ebp
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x403ec9
inc ecx
inc eax
mov dl, byte [ecx]
test dl, dl
jne 0x403ec1
push eax
push 0
push ebp
call fcn.004910c4
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebx + 0x1c4], eax
jmp 0x403f80
mov ebp, 1
mov dword [esp + 0xc4], ebx
mov ebx, esi
lea esi, [esp]
mov edi, ebx
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x403efa
mov edi, ebx
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x403f18
inc ecx
inc eax
mov dl, byte [ecx]
test dl, dl
jne 0x403f10
mov byte [esp + eax - 4], 0
mov edx, ebp
inc ebp
lea ecx, [esp]
push edx
push ecx
push 0x4b8154
push ecx
call fcn.00486227
add esp, 0x10
lea eax, [esp]
push 0
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
mov eax, 0
setne al
cmp ebp, 0x63
jg 0x4040d4
test eax, eax
je 0x403ef5
mov ebx, dword [esp + 0xc4]
lea ebp, [ebx + 0x1c8]
mov esi, ebp
lea edi, [esp]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x403f69
push ebp
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebx + 0x1c4], eax
test eax, eax
je 0x4040c5
push 0x4b8160
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x28c], eax
push 0x4b816c
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x294], eax
push 0x4b8174
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x290], eax
push 0x4b8180
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x298], eax
push 0x4b818c
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x29c], eax
push 0x4b8198
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x2a0], eax
push 0x4b81a8
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x2a4], eax
push 0x4b81b8
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x2a8], eax
push 0x4b81c4
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x2ac], eax
cmp dword [ebx + 0x294], 0
je 0x4040a7
cmp dword [ebx + 0x290], 0
je 0x4040a7
cmp dword [ebx + 0x298], 0
je 0x4040a7
cmp dword [ebx + 0x29c], 0
je 0x4040a7
cmp dword [ebx + 0x2a0], 0
je 0x4040a7
cmp dword [ebx + 0x2a4], 0
je 0x4040a7
cmp dword [ebx + 0x2a8], 0
je 0x4040a7
mov byte [ebx + 0x20], 1
mov eax, 1
add esp, 0xc8
pop ebx
pop ebp
pop esi
pop edi
ret 8
push dword [ebx + 0x1c4]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
movsx eax, byte [ebx + 0x1c8]
test eax, eax
je 0x4040c5
push ebp
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
add esp, 0xc8
pop ebx
pop ebp
pop esi
pop edi
ret 8
mov ebx, dword [esp + 0xc4]
jmp 0x403f5e