Function at 0x23c56631
Capabilities:
Copy file
Create directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x618
mov eax, dword [0x23c64de8]
push ebx
push esi
push edi
lea ecx, [ebp - 0x208]
push 0x104
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x23c56668
push str.GetModuleFileName_failed_
call fcn.23c563c9
jmp 0x23c56964
lea eax, [ebp - 0x208]
push eax
call fcn.23c58a51
mov edi, str._work
push edi
call fcn.23c57800
lea esi, [ebp - 0x208]
sub esi, eax
lea eax, [ebp - 0x208]
push eax
call fcn.23c57800
add esi, eax
push edi
push esi
call fcn.23c589a2
mov esi, eax
neg esi
sbb esi, esi
inc esi
push esi
push str.Check_is_work_file_bWork_d
call fcn.23c563c9
xor ebx, ebx
add esp, 0x1c
cmp dword [ebp + 8], ebx
je 0x23c56969
cmp esi, ebx
je 0x23c5670b
lea eax, [ebp - 0x208]
push eax
push str.Is_work_file__call_Do_RegisterServer:__s
call fcn.23c563c9
push str.IDrm
push str.XDRM_class
push 0x23c61790
push str.Xdrm.Drm
push str.XDRM
push 0x23c5f5c0
push 0x23c5f5d0
push 0x23c5f5e0
call fcn.23c55d80
add esp, 0x28
call fcn.23c56529
jmp 0x23c56974
lea eax, [ebp - 0x104]
push eax
push ebx
push ebx
push 0x23
push ebx
call dword [sym.imp.SHFOLDER.dll_SHGetFolderPathA]
lea eax, [ebp - 0x104]
push eax
call fcn.23c57800
cmp byte [ebp + eax - 0x105], 0x5c
pop ecx
je 0x23c56747
lea eax, [ebp - 0x104]
push 0x23c61780
push eax
call fcn.23c57720
pop ecx
pop ecx
lea eax, [ebp - 0x104]
push str.Thunder_Network_
push eax
call fcn.23c57720
lea eax, [ebp - 0x104]
push 1
push eax
call fcn.23c56415
mov esi, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
add esp, 0x10
test eax, eax
jne 0x23c56785
lea eax, [ebp - 0x104]
push ebx
push eax
call esi
test eax, eax
je 0x23c56965
lea eax, [ebp - 0x104]
push str.KanKan_
push eax
call fcn.23c57720
lea eax, [ebp - 0x104]
push 1
push eax
call fcn.23c56415
add esp, 0x10
test eax, eax
jne 0x23c567bd
lea eax, [ebp - 0x104]
push ebx
push eax
call esi
test eax, eax
je 0x23c56965
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x410]
push eax
call fcn.23c57710
lea eax, [ebp - 0x410]
push eax
call fcn.23c57800
add esp, 0xc
lea eax, [ebp + eax - 0x410]
cmp byte [eax], 0x5c
je 0x23c567ee
dec eax
jmp 0x23c567e6
and byte [eax + 1], 0
mov esi, 0x23c64dd0
push esi
call fcn.23c57800
mov ebx, dword [sym.imp.KERNEL32.dll_CopyFileA]
pop ecx
test eax, eax
jbe 0x23c5686d
lea eax, [ebp - 0x410]
push esi
push eax
mov edi, str._s_s
lea eax, [ebp - 0x618]
push edi
push eax
call fcn.23c5888d
lea eax, [ebp - 0x104]
push esi
push eax
lea eax, [ebp - 0x514]
push edi
push eax
call fcn.23c5888d
add esp, 0x20
lea eax, [ebp - 0x514]
push 0
push eax
lea eax, [ebp - 0x618]
push eax
call ebx
push eax
lea eax, [ebp - 0x514]
push eax
lea eax, [ebp - 0x618]
push eax
push str.Copy_dependence_files:__s____s__result_d
call fcn.23c563c9
add esp, 0x10
mov edi, str._work
lea eax, [ebp - 0x208]
push eax
call fcn.23c57800
pop ecx
lea eax, [ebp + eax - 0x208]
cmp byte [eax], 0x5c
je 0x23c56889
dec eax
jmp 0x23c56881
inc eax
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.23c57720
lea eax, [ebp - 0x104]
push eax
call fcn.23c5643b
add esp, 0xc
mov dword [ebp + 8], 1
push edi
lea eax, [ebp - 0x104]
push dword [ebp + 8]
push eax
lea eax, [ebp - 0x30c]
push str._s__d_s
push eax
call fcn.23c5888d
add esp, 0x14
inc dword [ebp + 8]
lea eax, [ebp - 0x30c]
push 0
push eax
lea eax, [ebp - 0x208]
push eax
call ebx
mov esi, eax
lea eax, [ebp - 0x30c]
push esi
push eax
lea eax, [ebp - 0x208]
push eax
push str.CopyFile:__s____s__result_d
call fcn.23c563c9
add esp, 0x10
test esi, esi
je 0x23c568ad
lea eax, [ebp - 0x30c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
lea eax, [ebp - 0x30c]
test edi, edi
push eax
je 0x23c56959
push str.LoadLibrary__s_okay_
call fcn.23c563c9
pop ecx
pop ecx
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x23c56950
lea eax, [ebp - 0x30c]
push eax
push str.Call_DllRegisterServer_in__s
call fcn.23c563c9
pop ecx
pop ecx
call esi
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x23c56974
push str.LoadLibrary__s_failed_
call fcn.23c563c9
pop ecx
pop ecx
xor eax, eax
jmp 0x23c56977
push str.Unregister__do_nothing
call fcn.23c563c9
pop ecx
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret