Function at 0x404370
Capabilities:
Copy file
Delete file
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x43b1fc
mov eax, dword fs:[0]
push eax
mov eax, 0x189c
mov dword fs:[0], esp
call fcn.0042bb10
mov eax, dword [0x44b754]
xor eax, esp
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 0x18a0], eax
mov al, byte [ebp]
xor ebx, ebx
cmp al, bl
jne 0x40485b
mov eax, dword [esp + 0x18b4]
push esi
push edi
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x18c0]
cmp eax, ebx
mov byte [ebp], 1
mov dword [ebp + 0x110c], 5
mov byte [ebp + 0x1110], bl
mov byte [ebp + 0x1111], bl
mov byte [ebp + 0x1113], bl
mov byte [ebp + 0x1112], bl
mov dword [ebp + 0x1118], ebx
mov dword [ebp + 0x111c], ebx
mov dword [ebp + 0x1120], ebx
mov byte [ebp + 0x1114], bl
mov byte [ebp + 0x1115], bl
mov byte [ebp + 0x2179], bl
mov byte [ebp + 0x1124], bl
mov byte [ebp + 0x1228], bl
mov byte [ebp + 0x132c], bl
mov byte [ebp + 0x1430], bl
mov byte [ebp + 0x1534], bl
mov byte [ebp + 0x1638], bl
mov byte [ebp + 0x173c], bl
mov byte [ebp + 0x1840], bl
mov byte [ebp + 0x1a48], bl
mov byte [ebp + 0x1b4c], bl
mov byte [ebp + 0x1c50], bl
mov byte [ebp + 0x1d54], bl
mov byte [ebp + 0x1e58], bl
mov byte [ebp + 0x1f5c], bl
mov byte [ebp + 0x2060], bl
mov byte [ebp + 0x2178], bl
lea edi, [ebp + 0x1944]
mov ecx, 6
mov esi, str.http:__192.168.20.11_patch
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
je 0x40449c
lea edx, [ebp + 8]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x404490
jmp 0x4044a8
mov ecx, 0x400
xor eax, eax
lea edi, [ebp + 8]
rep stosd dword es:[edi], eax
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea esi, [ebp + 0x1008]
push esi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push esi
call fcn.00416690
add esp, 4
push 0x104
lea eax, [ebp + 0x1a48]
push eax
push 0x1d
mov ecx, ebp
call fcn.004014d0
push 0x104
lea edi, [ebp + 0x1b4c]
push edi
push 0x3c
mov ecx, ebp
call fcn.004014d0
lea ecx, [esp + 0x10]
push ecx
push 5
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x404578
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x18c]
push edx
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
test eax, eax
je 0x404578
push 0x104
lea ecx, [esp + 0x5a0]
push ecx
push 0x3d
mov ecx, ebp
call fcn.004014d0
lea edx, [esp + 0x59c]
push edx
push edi
lea eax, [esp + 0x7ac]
push 0x43db0c
push eax
call fcn.0042ba1b
lea ecx, [esp + 0x19c]
push ecx
lea edx, [esp + 0x7b8]
push edx
mov eax, ecx
push eax
call fcn.00416710
lea ecx, [esp + 0x1a8]
push ecx
call fcn.00416bb0
add esp, 0x20
jmp 0x40458d
lea edx, [esp + 0x18c]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x404583
lea edi, [ebp + 0x2179]
push edi
lea edx, [esp + 0x190]
push str.launcher_log.txt
push edx
call fcn.00416710
add esp, 0xc
push ebx
push ebx
push 2
push ebx
push ebx
push 0x40000000
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
je 0x4045c7
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, ebp
call fcn.00402120
mov ecx, ebp
call fcn.00403860
cmp dword [ebp + 0x110c], 2
je 0x404857
mov ecx, ebp
call fcn.00403560
test al, al
je 0x404857
push esi
lea ecx, [esp + 0x50]
call fcn.00416b50
push 0x2f
lea ecx, [esp + 0x50]
mov dword [esp + 0x18b8], ebx
call fcn.00416a20
push 0x5c
lea ecx, [esp + 0x50]
call fcn.00416a20
lea ecx, [esp + 0x4c]
call fcn.00416ac0
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x404818
lea eax, [esp + 0x394]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0x104
lea ecx, [esp + 0x49c]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x6a0]
push edx
lea eax, [esp + 0x49c]
push eax
call fcn.00416890
lea ecx, [esp + 0x90]
push ecx
lea edx, [esp + 0x6ac]
push edx
lea eax, [esp + 0x3a4]
push eax
call fcn.00416710
lea ecx, [esp + 0x9c]
push ecx
call fcn.00416b70
add esp, 0x18
test al, al
je 0x4046b8
lea edx, [esp + 0x88]
push edx
call fcn.00416b90
add esp, 4
lea eax, [esp + 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov edi, dword [sym.imp.KERNEL32.dll_CopyFileA]
push ebx
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x4a0]
push edx
call edi
test eax, eax
jne 0x4046ea
push ebx
push 0x41b
mov ecx, 0x44c660
call fcn.00404d30
jmp 0x404818
push str.mabinogi_setup.dat
lea ecx, [esp + 0x34]
call fcn.00403470
mov ebp, eax
push esi
lea ecx, [esp + 0x18]
mov byte [esp + 0x18b8], 1
call fcn.00403470
push ebp
push eax
lea eax, [esp + 0x74]
push eax
mov byte [esp + 0x18c0], 2
call fcn.004042d0
add esp, 0xc
lea ecx, [esp + 0x14]
call fcn.00417680
lea ecx, [esp + 0x30]
mov byte [esp + 0x18b4], 4
call fcn.00417680
lea ecx, [esp + 0x290]
push ecx
lea edx, [esp + 0x398]
push str.mabinogi_setup.dat
push edx
call fcn.00416710
lea eax, [esp + 0x29c]
push eax
call fcn.00416b70
add esp, 0x10
test al, al
je 0x404789
lea ecx, [esp + 0x290]
push ecx
call fcn.00416b90
add esp, 4
lea edx, [esp + 0x290]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [esp + 0x84], 0x10
mov eax, dword [esp + 0x70]
jae 0x40479b
lea eax, [esp + 0x70]
push ebx
lea ecx, [esp + 0x294]
push ecx
push eax
call edi
test eax, eax
jne 0x4047bd
push ebx
push 0x41c
mov ecx, 0x44c660
call fcn.00404d30
jmp 0x40480f
lea edx, [esp + 0x88]
push edx
call fcn.00416b90
lea eax, [esp + 0x294]
push eax
call fcn.00416b90
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x94]
push edx
lea eax, [esp + 0x8b8]
push str._s__divied_install__divied_data_drive:_s_
push eax
call fcn.0042ba1b
lea ecx, [esp + 0x3ac]
push ecx
lea edx, [esp + 0x8c4]
push edx
push ebx
call fcn.00417160
add esp, 0x24
lea ecx, [esp + 0x6c]
call fcn.00417680
lea ecx, [esp + 0x4c]
mov dword [esp + 0x18b4], 0xffffffff
call fcn.004169b0
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x18a4]
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x189c]
pop ebx
xor ecx, esp
call fcn.0042baa4
add esp, 0x18a8
ret 8
mov al, 1
jmp 0x40482e
xor al, al
jmp 0x404830