Function at 0x41bd40
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42093b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c
push ebx
push esi
lea eax, [ebp - 0x2c]
push edi
push eax
call fcn.0040f9e0
push 0xedffffff
xor ebx, ebx
push 0x7a1bffff
mov dword [ebp - 4], ebx
call fcn.0040c830
movsx ecx, byte [0x4274dc]
movsx edx, word [0x4274ec]
push ecx
push edx
mov word [0x427504], ax
mov dword [0x427528], 0x43ffff
call fcn.0040c720
mov word [0x4274f8], ax
movsx eax, byte [0x4274d9]
push eax
push eax
call fcn.0040c720
mov dword [0x427514], eax
mov eax, dword [ebp - 0x18]
add esp, 0x1c
cmp eax, 4
jbe 0x41c1b6
movsx ecx, word [0x4274fc]
or ax, 0xffff
sub ax, word [0x427504]
push ecx
push 0x7995ffff
mov word [0x4274f8], ax
call fcn.0040c6e0
mov cl, byte [0x4274de]
xor edx, edx
add esp, 8
cmp cl, bl
setne dl
mov word [0x427504], ax
mov eax, 8
mov dword [0x427514], edx
call fcn.0041f090
mov eax, dword [sym.imp.MSVCP71.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x18]
mov edi, esp
push ecx
add edx, 0xfffffffc
push edx
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::substr_unsigned_int__unsigned_int_]
mov esi, eax
mov edx, 0x423004
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.0041d7e0
mov ecx, eax
lea edi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
cmp dl, bl
jne 0x41be46
sub ecx, edi
push ecx
mov ecx, dword [esi + 0x14]
push eax
push ecx
push ebx
mov ecx, esi
call dword [sym.imp.MSVCP71.dll_public:_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::compare_unsigned_int__unsigned_int__char_const___unsigned_int_const]
lea ecx, [ebp - 0x48]
mov esi, eax
mov byte [ebp - 4], bl
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
cmp esi, ebx
mov edi, 0x10
je 0x41bf70
mov edx, dword [0x42751c]
push 0x149fffff
push edx
call fcn.0040c830
mov ecx, dword [0x427528]
mov byte [0x4274da], al
movsx eax, word [0x4274ec]
push eax
push ecx
call fcn.0040c7f0
mov edx, dword [0x42751c]
mov word [0x4274e8], ax
add edx, 0x9eb60001
add esp, 0x10
mov eax, 8
mov dword [0x427528], edx
call fcn.0041f090
mov ecx, esp
mov edx, 0x423004
call fcn.0041d7e0
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x48]
push ecx
call fcn.004040e0
mov ecx, dword [eax + 0x18]
add esp, 0xc
cmp ecx, edi
jb 0x41bef1
mov eax, dword [eax + 4]
jmp 0x41bef4
add eax, 4
cmp dword [ebp - 0x14], edi
mov ecx, dword [ebp - 0x28]
jae 0x41beff
lea ecx, [ebp - 0x28]
push ebx
push eax
push ecx
call dword [sym.imp.KERNEL32.DLL_CopyFileA]
lea ecx, [ebp - 0x48]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov edx, dword [0x427514]
push edx
push 0x87d1ffff
call fcn.0040c7b0
mov dword [0x42751c], eax
add esp, 8
mov eax, 8
call fcn.0041f090
mov ecx, esp
mov edx, 0x423004
call fcn.0041d7e0
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov eax, dword [0x427528]
push eax
push 0xb8a1ffff
call fcn.0040c8a0
mov cl, byte [0x4274dd]
add esp, 8
dec cl
mov dword [0x427510], eax
mov byte [0x4274de], cl
push 0xd415ffff
push 0xfd7dffff
call fcn.0040c6e0
add esp, 8
cmp ax, bx
mov word [0x427500], ax
je 0x41bf9d
cmp word [0x4274fc], bx
mov byte [0x4274dc], 1
jne 0x41bfa3
mov byte [0x4274dc], bl
push 0x75cfffff
push 0xb73ffff
call fcn.0040c720
mov cl, byte [0x4274df]
add cl, al
mov dword [0x427510], eax
add esp, 8
mov eax, 0x30
mov byte [0x4274df], cl
call fcn.0041f090
mov ecx, esp
push ebx
lea edx, [ebp - 0x10]
push edx
push ebx
push 0x20006
push ebx
push ebx
push ebx
mov edx, 0x422fc8
call fcn.0041d7e0
push eax
push SysReAllocString
call dword [0x427974]
test eax, eax
je 0x41c034
mov eax, 0x30
call fcn.0041f090
mov ecx, esp
push ebx
lea eax, [ebp - 0x10]
push eax
push ebx
push 0x20006
push ebx
push ebx
push ebx
mov edx, 0x422fc8
call fcn.0041d7e0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [0x427974]
test eax, eax
jne 0x41c189
movsx edx, word [0x4274f4]
movsx ecx, word [0x427504]
movsx eax, word [0x4274fc]
push edx
or ecx, 0x8e07ffff
push eax
mov dword [0x427518], ecx
call fcn.0040c720
movsx ecx, word [0x427504]
push ecx
push 0x1e3dffff
mov dword [0x42751c], eax
call fcn.0040c720
add esp, 0x10
lea ecx, [ebp - 0x48]
mov byte [0x4274e0], al
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
push 0x645ffff
push 0x512fffff
mov byte [ebp - 4], 2
call fcn.0040c760
mov edx, dword [0x427524]
push edx
push 0x5687ffff
mov byte [0x4274df], al
call fcn.0040c870
mov byte [0x4274da], al
lea eax, [ebp - 0x48]
push eax
push 7
mov dword [0x427524], 0x5dedffff
call fcn.0040cc90
movsx ecx, word [0x4274f4]
push 0x9b17ffff
push ecx
call fcn.0040c720
movsx edx, word [0x4274f8]
push 0x52bdffff
push edx
mov word [0x427500], ax
call fcn.0040c7b0
push 0x1b67ffff
push 0xe2b7ffff
mov dword [0x427520], eax
call fcn.0040c870
mov ecx, dword [ebp - 0x28]
mov byte [0x4274dd], al
movsx ax, al
imul ax, word [0x4274e8]
mov word [0x427504], ax
mov eax, dword [ebp - 0x14]
add esp, 0x30
cmp eax, edi
jae 0x41c12c
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x44]
jae 0x41c137
lea eax, [ebp - 0x44]
mov edx, dword [ebp - 0x18]
push edx
push ecx
push 1
push ebx
push eax
mov eax, dword [ebp - 0x10]
push eax
call dword [0x42798c]
cmp word [0x4274f8], bx
je 0x41c166
cmp word [0x4274f0], bx
mov dword [0x427524], 1
jne 0x41c16c
mov dword [0x427524], ebx
mov ecx, dword [ebp - 0x10]
push ecx
call dword [0x427970]
lea ecx, [ebp - 0x48]
mov byte [0x4274da], 0xff
mov byte [ebp - 4], bl
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
movsx edx, word [0x427504]
mov ecx, dword [0x427518]
mov eax, 0xbc21ffff
sub eax, edx
push 0x1e37ffff
push ecx
mov dword [0x427524], eax
call fcn.0040c870
add esp, 8
mov word [0x427504], ax
movsx edx, byte [0x4274dc]
push 0xd139ffff
push edx
mov byte [0x4274da], 1
call fcn.0040c7f0
mov byte [0x4274dc], al
movsx eax, al
push eax
push 0xd599ffff
call fcn.0040c6e0
add esp, 0x10
lea ecx, [ebp - 0x2c]
mov dword [0x427518], eax
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea esp, [ebp - 0x54]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret