Function at 0x40d530
Capabilities:
Copy file

Disassembly:
sub esp, 0x328
mov eax, dword [0x4a3f4c]
xor eax, esp
mov dword [esp + 0x324], eax
mov eax, dword [esp + 0x32c]
push ebx
push eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x14]
push str.Do_you_want_to_install_a__s.dll_proxy_for_this_game_
push eax
mov ebx, ecx
mov dword [esp + 0x10], 0
call fcn.0045a121
add esp, 0xc
push 0x24
push str.DxWnd_proxy
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebx
call fcn.00434078
cmp eax, 6
jne 0x40d86c
mov edx, dword [ebx + 0x20]
push edi
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x1032
push edx
call edi
test eax, eax
je 0x40d86b
mov eax, dword [ebx + 0x20]
push ebp
push esi
push 2
push 0xffffffffffffffff
push 0x100c
push eax
call edi
mov ecx, dword [ebx + 0x20]
push 2
mov esi, eax
push esi
push 0x100c
push ecx
call edi
mov edx, esi
imul edx, edx, 0x78c
lea edi, [edx + ebx]
lea ebp, [edi + 0x200bd]
mov eax, ebp
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d5e0
sub eax, edx
jne 0x40d5f4
mov eax, esi
shl eax, 9
lea ebp, [eax + ebx + 0x70]
cmp byte [edi + 0x202c7], 0
lea eax, [edi + 0x202c7]
jne 0x40d629
push ebp
lea ecx, [esp + 0x128]
push 0x105
push ecx
call fcn.0045cee3
add esp, 0xc
lea edx, [esp + 0x124]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
jmp 0x40d63f
push eax
lea eax, [esp + 0x128]
push 0x105
push eax
call fcn.0045cee3
add esp, 0xc
lea ecx, [esp + 0x124]
push ecx
lea edx, [esp + 0x20]
push str._sdxwnd.dxw
push edx
call fcn.0045a121
mov eax, dword [edi + 0x207ec]
shl esi, 9
lea ecx, [edi + 0x2006c]
lea ebp, [esi + ebx]
push 0
push ecx
lea ecx, [ebp + 0x6c]
lea esi, [esp + 0x30]
mov dword [esp + 0x28], eax
call fcn.0040c220
mov edx, dword [esp + 0x28]
mov esi, 0x8000000
add esp, 0x14
mov dword [edi + 0x207ec], edx
test dword [ebp + 0x1e4], esi
je 0x40d69e
lea eax, [esp + 0x1c]
call fcn.0040a5a0
test dword [ebp + 0x1dc], esi
je 0x40d6b3
lea eax, [esp + 0x1c]
push eax
call fcn.0040a5e0
add esp, 4
lea esi, [esp + 0x1c]
call fcn.00408960
mov edi, dword [esp + 0x18]
push edi
lea ecx, [esp + 0x128]
push ecx
mov edx, esi
push 0x480978
push edx
call fcn.0045a121
push edi
push 0x4a5e60
lea eax, [esp + 0x244]
push str._sproxy_s.dll
push eax
call fcn.0045a121
add esp, 0x20
push 0
mov ecx, esi
mov esi, dword [sym.imp.KERNEL32.dll_CopyFileA]
push ecx
lea edx, [esp + 0x234]
push edx
call esi
test eax, eax
jne 0x40d712
mov dword [esp + 0x10], 1
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0x20]
push str._sdxwnd.dll
push ecx
call fcn.0045a121
push 0x4a5e60
lea edx, [esp + 0x23c]
push str._sdxwnd.dll
push edx
call fcn.0045a121
add esp, 0x18
push 0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x234]
push ecx
call esi
test eax, eax
jne 0x40d75d
or dword [esp + 0x10], 2
test byte [ebp + 0x1d0], 0x40
jne 0x40d793
test dword [ebp + 0x1dc], 0x800
jne 0x40d793
test dword [ebp + 0x1e0], 0x40000
jne 0x40d793
test dword [ebp + 0x210], 0x800000
jne 0x40d793
cmp byte [ebp + 0x228], 0
je 0x40d7de
lea edx, [esp + 0x124]
push edx
lea eax, [esp + 0x20]
push str._sdisasm.dll
push eax
call fcn.0045a121
push 0x4a5e60
lea ecx, [esp + 0x23c]
push str._sdisasm.dll
push ecx
call fcn.0045a121
add esp, 0x18
push 0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x234]
push eax
call esi
test eax, eax
jne 0x40d7de
or dword [esp + 0x10], 4
mov eax, dword [esp + 0x10]
pop esi
pop ebp
cmp eax, 4
ja case.default.0x40d7e9
jmp dword [eax*4 + 0x40d884]
push edi
lea ecx, [esp + 0x18]
push str.Proxy__s_installed_nQuit_DxWnd_or_stop_hook_before_running_the_program
push ecx
call fcn.0045a121
add esp, 0xc
jmp case.default.0x40d7e9
push edi
push edi
lea edx, [esp + 0x1c]
push str.Proxy__s_install_failed_while_copying__s.dll_file_nCheck_files_on_game_folder
push edx
call fcn.0045a121
add esp, 0x10
jmp case.default.0x40d7e9
push edi
lea eax, [esp + 0x18]
push str.Proxy__s_install_failed_while_copying_dxwnd.dll_file_nCheck_files_on_game_folder
push eax
call fcn.0045a121
add esp, 0xc
jmp case.default.0x40d7e9
push edi
push edi
lea ecx, [esp + 0x1c]
push str.Proxy__s_install_failed_while_copying__s.dll_and_dxwnd.dll_files_nCheck_files_on_game_folder
push ecx
call fcn.0045a121
add esp, 0x10
jmp case.default.0x40d7e9
lea edx, [esp + 0x14]
push str.Proxy__s_install_failed_while_copying_disasm.dll_file_nCheck_files_on_game_folder
push edx
call fcn.0045a121
add esp, 8
push 0
push str.DxWnd_Proxy
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.00434078
pop edi
mov ecx, dword [esp + 0x328]
pop ebx
xor ecx, esp
call fcn.0045a1dd
add esp, 0x328
ret 4