Function at 0x404ac0
Capabilities:
Delete file
Identify system language via api

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4a1cf7
push eax
mov dword fs:[0], esp
sub esp, 0x67c
push ebx
push ebp
push esi
push edi
call fcn.00407d70
test eax, eax
jne 0x404bad
push 0x40
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 5
mov ebx, 0xf
xor esi, esi
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], esi
push 0x4a89c4
mov byte [ecx + 4], 0
call fcn.00401920
lea ecx, [esp + 0x50]
call fcn.00409d30
mov edi, 0x10
cmp dword [eax + 0x18], edi
mov dword [esp + 0x698], esi
jb 0x404b33
mov eax, dword [eax + 4]
jmp 0x404b36
add eax, 4
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push edi
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], esi
push 0x4a9d70
mov byte [ecx + 4], 0
call fcn.00401920
lea ecx, [esp + 0x38]
call fcn.00409d30
cmp dword [eax + 0x18], edi
jb 0x404b68
mov eax, dword [eax + 4]
jmp 0x404b6b
add eax, 4
push eax
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [esp + 0x2c], edi
jb 0x404b86
mov eax, dword [esp + 0x18]
push eax
call fcn.00409f10
add esp, 4
cmp dword [esp + 0x48], edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], esi
mov byte [esp + 0x18], 0
jb 0x404ba6
mov ecx, dword [esp + 0x34]
push ecx
call fcn.00409f10
add esp, 4
xor eax, eax
jmp 0x4052a6
push 0x104
push 0x4e2140
mov edx, 0x4a9d5c
mov ecx, str.WoW.exe
call fcn.00407ea0
mov esi, 0xf
xor ebx, ebx
test eax, eax
lea edi, [esi + 1]
lea ebp, [esi - 0xe]
jne 0x404ce9
push 0x41
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 5
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push 0x4a89c4
mov byte [ecx + 4], bl
call fcn.00401920
lea ecx, [esp + 0x50]
call fcn.00409d30
cmp dword [eax + 0x18], edi
mov dword [esp + 0x698], ebp
jb 0x404c15
mov eax, dword [eax + 4]
jmp 0x404c18
add eax, 4
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 9
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push 0x4a8a84
mov byte [ecx + 4], 0
call fcn.00401920
lea ecx, [esp + 0x38]
call fcn.00409d30
cmp dword [eax + 0x18], edi
jb 0x404c4b
mov eax, dword [eax + 4]
jmp 0x404c4e
add eax, 4
mov edx, dword [0x4e2138]
push eax
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 2
sete bl
cmp dword [esp + 0x2c], edi
jb 0x404c75
mov eax, dword [esp + 0x18]
push eax
call fcn.00409f10
add esp, 4
cmp dword [esp + 0x48], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], 0
mov byte [esp + 0x18], 0
mov dword [esp + 0x694], 0xffffffff
jb 0x404ca4
mov ecx, dword [esp + 0x34]
push ecx
call fcn.00409f10
add esp, 4
test bl, bl
je 0x404cc8
mov edx, dword [0x4e2138]
push 0xffffffffffffffff
push edx
call dword [sym.imp.USER32.dll_EndDialog]
mov dword [0x4e2350], 0
xor eax, eax
jmp 0x4052a6
push 0x104
mov ecx, 0x656e5553
call fcn.00408090
mov edx, eax
mov ecx, 0x4e2140
call fcn.00444b20
mov dword [0x4e2870], ebp
call fcn.00404840
test eax, eax
mov dword [0x4e2244], eax
mov esi, 0x7a68434e
jne 0x404d9e
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
cmp ax, 0x407
jne 0x404d1e
mov dword [0x4e2244], 0x64654445
jmp 0x404d9e
cmp ax, 0x809
jne 0x404d30
mov dword [0x4e2244], 0x656e4742
jmp 0x404d9e
cmp ax, 0xc0a
jne 0x404d42
mov dword [0x4e2244], 0x65734553
jmp 0x404d9e
cmp ax, 0x40c
jne 0x404d54
mov dword [0x4e2244], 0x66724652
jmp 0x404d9e
cmp ax, 0x419
jne 0x404d66
mov dword [0x4e2244], 0x72755255
jmp 0x404d9e
cmp ax, 0x412
jne 0x404d78
mov dword [0x4e2244], 0x6b6f4b52
jmp 0x404d9e
cmp ax, 0x804
jne 0x404d86
mov dword [0x4e2244], esi
jmp 0x404d9e
sub ax, 0x404
neg ax
sbb eax, eax
and eax, 0xeb0600fc
add eax, 0x7a685457
mov dword [0x4e2244], eax
mov ecx, 0x656e5553
call fcn.00408090
mov ecx, 0x4e2140
lea ecx, [ecx]
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x404dd0
test dl, dl
je 0x404dcc
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x404dd0
add ecx, 2
add eax, 2
test dl, dl
jne 0x404db0
xor eax, eax
jmp 0x404dd5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404df9
cmp dword [0x4e2244], esi
jne 0x404df9
push 0x104
mov ecx, esi
call fcn.00408090
mov edx, eax
mov ecx, 0x4e2140
call fcn.00444b20
mov ecx, 0x656e5553
call fcn.00408090
mov ecx, 0x4e2140
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x404e28
test dl, dl
je 0x404e24
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x404e28
add ecx, 2
add eax, 2
test dl, dl
jne 0x404e08
xor eax, eax
jmp 0x404e2d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x404e58
cmp dword [0x4e2244], 0x7a685457
jne 0x404e58
push 0x104
mov ecx, 0x7a685457
call fcn.00408090
mov edx, eax
mov ecx, 0x4e2140
call fcn.00444b20
mov al, byte [0x4e2247]
mov cl, byte [0x4e2246]
mov byte [0x4e2248], al
mov eax, dword [0x4e2244]
mov byte [0x4e2249], cl
push 0x104
mov edx, 0x4e2248
mov ecx, 0x4e2878
mov byte [0x4e224a], ah
mov byte [0x4e224b], al
mov byte [0x4e224c], 0
call fcn.00444b20
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
push 0x4e2878
push 0x4e2878
lea edx, [esp + 0x190]
push str.Data_slocale__s.mpq
push edx
mov dword [0x4e286c], 0
call ebp
add esp, 0x10
push 0
push 0
push 0x4e2878
push 0x4e2140
mov edx, str.http:___s_repair_WoW._s_WoW._s.Other.PC._s.torrent
mov ecx, 0x4e2ee8
call fcn.00401190
test eax, eax
jne 0x405044
mov esi, 3
cmp dword [0x4e2120], esi
jne 0x404f93
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0x4e2878
call fcn.00401a20
lea ecx, [esp + 0x30]
call fcn.00409d30
cmp dword [eax + 0x18], edi
mov dword [esp + 0x694], 2
jb 0x404f2c
mov eax, dword [eax + 4]
jmp 0x404f2f
add eax, 4
push eax
push 0x4e2140
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x4a9d10
call fcn.00401a20
lea ecx, [esp + 0x54]
call fcn.00409d30
cmp dword [eax + 0x18], edi
jb 0x404f5b
mov eax, dword [eax + 4]
jmp 0x404f5e
add eax, 4
push eax
lea eax, [esp + 0x298]
push eax
call ebp
add esp, 0x10
lea ecx, [esp + 0x30]
call fcn.00427a00
lea ecx, [esp + 0x14]
mov dword [esp + 0x694], 0xffffffff
call fcn.00427a00
mov byte [esp + 0x68b], 0
jmp 0x404fea
push 0x400
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x4a9cfc
call fcn.00401a20
lea ecx, [esp + 0x50]
call fcn.00409d30
cmp dword [eax + 0x18], edi
mov dword [esp + 0x698], esi
jb 0x404fc5
mov eax, dword [eax + 4]
jmp 0x404fc8
add eax, 4
mov edx, eax
lea ecx, [esp + 0x290]
call fcn.00444b20
lea ecx, [esp + 0x30]
mov dword [esp + 0x694], 0xffffffff
call fcn.00427a00
push 0x40
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x4a89c4
call fcn.00401a20
lea ecx, [esp + 0x50]
call fcn.00409d30
cmp dword [eax + 0x18], edi
jb 0x405012
mov eax, dword [eax + 4]
jmp 0x405015
add eax, 4
push eax
lea ecx, [esp + 0x294]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [esp + 0x48], edi
jb 0x404ba6
mov edx, dword [esp + 0x34]
push edx
call fcn.00409f10
add esp, 4
xor eax, eax
jmp 0x4052a6
mov ecx, dword [0x4e2244]
call fcn.00408090
mov ecx, 0x4e2140
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x405074
test dl, dl
je 0x405070
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x405074
add ecx, 2
add eax, 2
test dl, dl
jne 0x405054
xor eax, eax
jmp 0x405079
sbb eax, eax
sbb eax, 0xffffffff
xor ebx, ebx
test eax, eax
jne 0x405141
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
push str.Datapatch.MPQ
mov dword [0x4e286c], ebx
call edi
push str.Datapatch_2.MPQ
call edi
push str.Datapatch_3.MPQ
call edi
push str.Datapatch_4.MPQ
call edi
mov esi, 0x4dd0c0
mov eax, dword [esi]
push eax
push eax
lea eax, [esp + 0x8c]
push str.Data_spatch__s.MPQ
push eax
call ebp
add esp, 0x10
lea ecx, [esp + 0x84]
push ecx
call edi
mov eax, dword [esi]
push eax
push eax
lea edx, [esp + 0x8c]
push str.Data_spatch__s_2.MPQ
push edx
call ebp
add esp, 0x10
lea eax, [esp + 0x84]
push eax
call edi
mov eax, dword [esi]
push eax
push eax
lea ecx, [esp + 0x8c]
push str.Data_spatch__s_3.MPQ
push ecx
call ebp
add esp, 0x10
lea edx, [esp + 0x84]
push edx
call edi
mov eax, dword [esi]
push eax
push eax
lea eax, [esp + 0x8c]
push str.Data_spatch__s_4.MPQ
push eax
call ebp
add esp, 0x10
lea ecx, [esp + 0x84]
push ecx
call edi
add esi, 4
cmp esi, 0x4dd0f0
jl 0x4050b0
jmp 0x40514b
mov dword [0x4e286c], 1
sub esp, 0x1c
mov ecx, esp
mov edi, 0xf
mov eax, 0x4e2248
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
mov dword [esp + 0x2c], esp
mov byte [ecx + 4], 0
lea esi, [eax + 1]
jmp 0x405170
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405170
sub eax, esi
push eax
push 0x4e2248
call fcn.00401920
lea ecx, [esp + 0x68]
call fcn.00409d30
mov esi, 0x10
cmp dword [eax + 0x18], esi
mov dword [esp + 0x694], 4
jb 0x4051a9
mov eax, dword [eax + 4]
jmp 0x4051ac
add eax, 4
push eax
push 0x4e2140
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0xa
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x4a8a78
mov byte [ecx + 4], 0
call fcn.00401920
lea ecx, [esp + 0x8c]
call fcn.00409d30
cmp dword [eax + 0x18], esi
jb 0x4051e7
mov eax, dword [eax + 4]
jmp 0x4051ea
add eax, 4
push eax
push 0x4e2354
call ebp
add esp, 0x10
cmp dword [esp + 0x80], esi
jb 0x40520b
mov edx, dword [esp + 0x6c]
push edx
call fcn.00409f10
add esp, 4
cmp dword [esp + 0x64], esi
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], 0
jb 0x40522e
mov eax, dword [esp + 0x50]
push eax
call fcn.00409f10
add esp, 4
mov ecx, dword [0x4e213c]
mov esi, dword [sym.imp.USER32.dll_DialogBoxParamA]
push ebx
push 0x402200
push ebx
push 0x7d
push ecx
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], 0
mov byte [0x4e2753], 0
call esi
cmp eax, 0xffffffff
je 0x404ba6
mov edx, dword [0x4e213c]
push ebx
push 0x4046f0
push ebx
push 0x65
push edx
call esi
cmp eax, 0xffffffff
jne 0x4052a1
cmp byte [0x4e2a88], 0
mov byte [0x4e2a89], 1
jne 0x40529d
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa
call esi
cmp byte [0x4e2a88], 0
je 0x405290
xor eax, eax
jmp 0x4052a6
mov eax, 1
mov ecx, dword [esp + 0x68c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x688
ret