Function at 0x43b650
Capabilities:
Copy file
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x424
mov eax, dword [0x56d380]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi], 0
jne 0x43b9f8
push 0xc8
call fcn.0045f340
mov eax, dword [eax + 0x1064]
push ecx
sub eax, 0x10
mov esi, esp
push eax
call fcn.00403b50
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x420]
add esp, 4
push eax
call fcn.0045f340
lea ecx, [eax + 0x1100]
call fcn.00451570
mov edx, dword [0x56c260]
mov eax, dword [edx + 0xc]
mov ecx, 0x56c260
call eax
add eax, 0x10
mov dword [ebp - 0x41c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov ecx, 0x3e8
div ecx
push edx
lea edx, [ebp - 0x41c]
push str.qfutemp_temp_d_
push edx
call fcn.00428a30
lea eax, [ebp - 0x41c]
push eax
lea ecx, [ebp - 0x420]
push ecx
lea edx, [ebp - 0x418]
push edx
call fcn.004284d0
add esp, 0x18
push eax
lea ecx, [edi + 0xc]
call fcn.00423fc0
mov eax, dword [ebp - 0x418]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b72e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x556338
push 0x53d38c
lea ecx, [edi + 0xc]
call fcn.00423850
mov esi, dword [edi + 0xc]
push 0
push ecx
sub esi, 0x10
mov ebx, esp
push esi
call fcn.00403b50
add eax, 0x10
add esp, 4
mov dword [ebx], eax
call fcn.0045f340
lea ecx, [eax + 0x1100]
call fcn.00450120
mov eax, dword [ebp + 8]
mov esi, dword [eax - 0xc]
cmp esi, 1
jg 0x43b785
add eax, 0xfffffff0
push eax
call fcn.00403b50
add esp, 4
lea esi, [eax + 0x10]
jmp 0x43b7c5
mov eax, dword [eax - 0x10]
test eax, eax
je 0x43b799
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x10]
call eax
test eax, eax
jne 0x43b7a9
mov edx, dword [0x56c260]
mov eax, dword [edx + 0x10]
mov ecx, 0x56c260
call eax
mov ecx, dword [ebp + 8]
push eax
lea edx, [ecx + esi*2 - 2]
push 1
push edx
lea ecx, [ebp - 0x418]
call fcn.00403330
mov esi, dword [ebp - 0x418]
push 0x556338
push esi
call fcn.004fe94a
add esp, 8
test eax, eax
setne bl
add esi, 0xfffffff0
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43b7f4
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
test bl, bl
je 0x43b807
push 1
push 0x556338
lea ecx, [ebp + 8]
call fcn.004034c0
lea ecx, [ebp + 8]
push ecx
lea ecx, [edi + 0x14]
call fcn.00423fc0
mov eax, dword [edi + 0x10]
lea esi, [edi + 0x10]
push str.UCore.dll
push eax
call fcn.004fe94a
add esp, 8
test eax, eax
je 0x43b8a8
push str.UCore.dll
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x418]
push eax
call fcn.00428550
push esi
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0x424]
push edx
call fcn.004284d0
mov ebx, dword [ebp - 0x424]
mov eax, dword [ebp - 0x418]
add esp, 0x18
push 0
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebx - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b886
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x418]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b8a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0x418]
push edx
call fcn.004284d0
add esp, 0xc
push 0x556338
push 0x53d38c
lea ecx, [ebp - 0x418]
call fcn.00423850
mov eax, dword [ebp + 8]
push eax
push str.C11UCoreLoader::bLoadDll:_s
call fcn.0045f340
push eax
call fcn.0042d870
mov esi, dword [ebp - 0x418]
push esi
lea ecx, [ebp - 0x414]
push 0x104
push ecx
call fcn.0050137b
add esp, 0x18
lea edx, [ebp - 0x414]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x20c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov ebx, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea ecx, [ebp - 0x414]
push ecx
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
lea edx, [ebp - 0x20c]
push edx
mov dword [edi], eax
call ebx
mov ecx, dword [edi]
lea eax, [ebp - 0x20c]
push eax
push ecx
push str.C11UCoreLoader::bLoadDll_Finish_Handle:_x_szOldDir:_s
call fcn.0045f340
push eax
call fcn.0042d870
mov eax, dword [edi]
add esp, 0x10
test eax, eax
je 0x43ba2f
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetYYUCoreObj
push eax
call ebx
mov edx, dword [edi]
push str.ReleaseYYUCoreObj
push edx
mov dword [edi + 4], eax
call ebx
push str.C11UCoreLoader::bLoadDll_GetProcAddress_
mov dword [edi + 8], eax
call fcn.0045f340
push eax
call fcn.0042d870
add esi, 0xfffffff0
add esp, 8
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43b9b4
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov eax, dword [ebp - 0x41c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b9d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x420]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b9f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ba17
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00500397
mov esp, ebp
pop ebp
ret 4
add esi, 0xfffffff0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ba4b
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [ebp - 0x41c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ba6d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x420]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ba8f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43baae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00500397
mov esp, ebp
pop ebp
ret 4