Function at 0x48c74c
Capabilities:
Create directory
Delete file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x12
push 0
push 0
dec ecx
jne 0x48c754
push ecx
push ebx
push esi
push edi
mov eax, 0x48b9ec
call fcn.00406ff8
mov ebx, 0x48fa9c
mov esi, 0x48fab4
xor eax, eax
push ebp
push 0x48d3ea
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x48fd94]
mov eax, dword [eax]
call fcn.004607a4
mov eax, dword [0x48fd94]
mov eax, dword [eax]
call fcn.004607bc
mov eax, 0x48d404
call fcn.00409784
test al, al
jne 0x48c7b3
push 0
push 0x48d40c
call sub.kernel32.dll_CreateDirectoryA
lea edx, [ebp - 0x18]
xor eax, eax
call fcn.00403150
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.00409830
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.00404fe0
mov eax, dword [esi]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x48c7e3
sub eax, 4
mov eax, dword [eax]
mov edx, dword [esi]
cmp byte [edx + eax - 1], 0x5c
je 0x48c7f8
mov eax, esi
mov edx, 0x48d41c
call fcn.00405258
lea edx, [ebp - 0x24]
xor eax, eax
call fcn.00403150
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x20]
call fcn.0040993c
mov eax, dword [ebp - 0x20]
call fcn.0048a424
lea edx, [ebp - 0x28]
mov eax, 1
call fcn.00403150
mov eax, dword [ebp - 0x28]
mov edx, 0x48d428
call fcn.0040539c
jne 0x48c83b
call fcn.0048b5f0
call fcn.00404e78
lea edx, [ebp - 0x2c]
mov eax, 1
call fcn.00403150
mov eax, dword [ebp - 0x2c]
mov edx, 0x48d438
call fcn.0040539c
jne 0x48c861
call fcn.00488aa4
call fcn.00404e78
call fcn.00488a70
lea edx, [ebp - 0x30]
mov eax, 1
call fcn.00403150
mov eax, dword [ebp - 0x30]
mov edx, 0x48d450
call fcn.0040539c
jne 0x48c89a
push 0x40
push 0x48d45c
push 0x48d468
push 0
call sub.user32.dll_MessageBoxA_1
call fcn.00404e78
mov dword [ebx], 1
lea edx, [ebp - 0x34]
mov eax, dword [ebx]
call fcn.00403150
mov eax, dword [ebp - 0x34]
mov edx, 0x48d4fc
call fcn.0040539c
jne 0x48c8c4
mov byte [0x48fa8c], 1
inc dword [ebx]
jmp 0x48c8a0
lea edx, [ebp - 0x38]
mov eax, dword [ebx]
call fcn.00403150
mov eax, dword [ebp - 0x38]
mov edx, 0x48d50c
call fcn.0040539c
jne 0x48c8e8
mov byte [0x48fa90], 1
inc dword [ebx]
jmp 0x48c8a0
lea edx, [ebp - 0x3c]
mov eax, dword [ebx]
call fcn.00403150
mov eax, dword [ebp - 0x3c]
mov edx, 0x48d528
call fcn.0040539c
jne 0x48c90c
mov byte [0x48fa94], 1
inc dword [ebx]
jmp 0x48c8a0
lea edx, [ebp - 0x40]
mov eax, dword [ebx]
call fcn.00403150
mov eax, dword [ebp - 0x40]
mov edx, 0x48d540
call fcn.0040539c
jne 0x48c933
mov byte [0x48fa98], 1
inc dword [ebx]
jmp 0x48c8a0
lea edx, [ebp - 0x44]
mov eax, dword [ebx]
call fcn.00403150
mov eax, dword [ebp - 0x44]
mov edx, 0x48d558
call fcn.0040539c
jne 0x48c962
mov eax, dword [0x48fb04]
mov byte [eax], 1
mov byte [0x48fa98], 1
inc dword [ebx]
jmp 0x48c8a0
xor eax, eax
mov dword [0x493924], eax
xor ecx, ecx
push ebp
push 0x48d280
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov edx, 0x493920
mov eax, dword [ebx]
call fcn.00403150
mov edx, 0x49391c
mov eax, dword [ebx]
inc eax
call fcn.00403150
mov edx, 0x493910
mov eax, dword [ebx]
add eax, 2
call fcn.00403150
mov eax, 0x493900
call fcn.00404f8c
lea edx, [ebp - 0x48]
mov eax, dword [ebx]
add eax, 3
call fcn.00403150
cmp dword [ebp - 0x48], 0
je 0x48c9da
mov edx, 0x493910
mov eax, dword [ebx]
add eax, 3
call fcn.00403150
mov edx, 0x493900
mov eax, dword [ebx]
add eax, 2
call fcn.00403150
cmp byte [0x48fa98], 0
je 0x48ca02
cmp dword [0x493900], 0
jne 0x48ca02
mov ecx, 0x48d56c
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
cmp dword [0x493920], 0
jne 0x48ca21
mov ecx, 0x48d5c0
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
cmp dword [0x49391c], 0
jne 0x48ca40
mov ecx, 0x48d5fc
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
cmp dword [0x493910], 0
jne 0x48ca5f
mov ecx, 0x48d630
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
mov eax, dword [0x493920]
call fcn.00409760
test al, al
jne 0x48ca94
lea eax, [ebp - 0x4c]
mov ecx, dword [0x493920]
mov edx, 0x48d654
call fcn.0040529c
mov ecx, dword [ebp - 0x4c]
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
mov eax, dword [0x49391c]
call fcn.00409760
test al, al
jne 0x48cac9
lea eax, [ebp - 0x50]
mov ecx, dword [0x49391c]
mov edx, 0x48d654
call fcn.0040529c
mov ecx, dword [ebp - 0x50]
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
cmp dword [0x493900], 0
je 0x48cb07
mov eax, dword [0x493900]
call fcn.00409760
test al, al
jne 0x48cb07
lea eax, [ebp - 0x54]
mov ecx, dword [0x493900]
mov edx, 0x48d654
call fcn.0040529c
mov ecx, dword [ebp - 0x54]
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
cmp byte [0x48fa98], 0
jne 0x48cb45
mov eax, dword [0x493910]
call fcn.00409760
test al, al
jne 0x48cb45
lea eax, [ebp - 0x58]
mov ecx, dword [0x493910]
mov edx, 0x48d654
call fcn.0040529c
mov ecx, dword [ebp - 0x58]
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
lea eax, [ebp - 0x5c]
call fcn.004898b4
mov edx, dword [ebp - 0x5c]
mov eax, 0x493904
call fcn.00404fe0
lea eax, [ebp - 0x60]
call fcn.004898b4
mov edx, dword [ebp - 0x60]
mov eax, 0x493908
call fcn.00404fe0
lea eax, [ebp - 0x64]
call fcn.004898b4
mov edx, dword [ebp - 0x64]
mov eax, 0x49390c
call fcn.00404fe0
mov eax, dword [0x493910]
call fcn.0048ad10
inc dword [ebx]
call fcn.00463988
cmp byte [0x48fa98], 0
je 0x48cbba
lea edx, [ebp - 0x68]
mov eax, dword [0x493900]
call fcn.00409830
mov edx, dword [ebp - 0x68]
mov eax, 0x493918
call fcn.00404fe0
jmp 0x48cbd4
lea edx, [ebp - 0x6c]
mov eax, dword [0x493910]
call fcn.00409830
mov edx, dword [ebp - 0x6c]
mov eax, 0x493918
call fcn.00404fe0
mov edx, dword [0x493918]
mov eax, edx
test eax, eax
je 0x48cbe5
sub eax, 4
mov eax, dword [eax]
test eax, eax
jle 0x48cc10
mov eax, edx
test eax, eax
je 0x48cbf4
sub eax, 4
mov eax, dword [eax]
mov edx, dword [0x493918]
cmp byte [edx + eax - 1], 0x5c
je 0x48cc10
mov eax, 0x493918
mov edx, 0x48d41c
call fcn.00405258
call fcn.00483d70
mov eax, 0x48faa8
mov edx, dword [0x493918]
call fcn.00404fe0
mov eax, dword [0x493918]
call fcn.00483d78
call fcn.0048a46c
mov dl, 1
mov eax, dword [0x4684f8]
call fcn.00404110
mov edx, dword [0x48fe10]
mov dword [edx], eax
mov eax, fcn.004639b8
mov edx, dword [0x48fe10]
mov edx, dword [edx]
mov dword [edx + 4], eax
mov eax, fcn.00463a18
mov edx, dword [0x48fe10]
mov edx, dword [edx]
mov dword [edx + 8], eax
mov eax, 0x4639e0
mov edx, dword [0x48fe10]
mov edx, dword [edx]
mov dword [edx + 0xc], eax
mov eax, fcn.004639f4
mov edx, dword [0x48fe10]
mov edx, dword [edx]
mov dword [edx + 0x10], eax
mov eax, fcn.00463a40
mov edx, dword [0x48fe10]
mov edx, dword [edx]
mov dword [edx + 0x14], eax
mov eax, 0x493914
mov edx, 0x48d674
call fcn.00404fe0
push 1
call fcn.00463a18
push 0
call fcn.004639b8
push 0x48d694
call fcn.00463a40
lea eax, [ebp - 0x70]
mov ecx, 0x48d6b8
mov edx, dword [esi]
call fcn.0040529c
mov eax, dword [ebp - 0x70]
call fcn.00409760
test al, al
jne 0x48cd07
push 0x48d6cc
push dword [esi]
push 0x48d6b8
lea eax, [ebp - 0x74]
mov edx, 3
call fcn.00405310
mov ecx, dword [ebp - 0x74]
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
cmp byte [0x48fa98], 0
jne 0x48cd29
push 0
push 5
mov eax, dword [0x493910]
call fcn.00405450
push eax
call sub.binSFmpq.dll_MpqOpenArchiveForUpdate
mov dword [0x493924], eax
call fcn.004639f4
mov edx, 1
sub edx, eax
push edx
call fcn.004639b8
cmp dword [0x493900], 0
je 0x48cd67
mov edx, 0x48d6e4
mov eax, dword [0x493900]
call fcn.0048ac40
mov eax, 0x493900
mov edx, 0x48d6e4
call fcn.00404fe0
jmp 0x48cdfd
mov eax, 0x493900
mov edx, 0x48d6e4
call fcn.00404fe0
push 0x48d700
call fcn.00463a40
mov edx, 0x48d71c
mov eax, dword [0x493924]
call fcn.00489c50
test al, al
jne 0x48cda9
mov ecx, 0x48d730
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
mov eax, dword [0x493900]
call fcn.00405450
mov edi, eax
push edi
call sub.kernel32.dll_DeleteFileA
push 0
mov edx, edi
lea eax, [ebp - 0x78]
call fcn.00405184
mov ecx, dword [ebp - 0x78]
mov edx, 0x48d71c
mov eax, dword [0x493924]
call fcn.00489d44
mov eax, dword [0x493900]
call fcn.00409760
test al, al
jne 0x48cdfd
mov ecx, 0x48d758
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
mov dword [0x48faa0], 1
push 0x48d778
call fcn.00463a40
mov edx, 0x48d78c
mov eax, dword [0x493900]
call fcn.0048ac40
cmp byte [0x48fa90], 0
jne 0x48cfa8
movzx ecx, byte [0x48fa8c]
mov edx, dword [0x493914]
mov eax, 0x48d78c
call fcn.0046dca4
push 0x48d778
call fcn.00463a40
mov edx, 0x48d78c
mov eax, dword [0x493914]
call fcn.0048ac40
mov dword [0x48faa0], 2
mov eax, dword [0x48fb04]
cmp byte [eax], 0
jne 0x48cfa8
movzx ecx, byte [0x48fa8c]
mov edx, dword [0x493914]
mov eax, 0x48d78c
call fcn.00483c78
cmp byte [0x48fa8c], 0
jne 0x48cec7
cmp byte [0x48fa94], 0
jne 0x48cec7
push 0x48d778
call fcn.00463a40
mov edx, 0x48d78c
mov eax, dword [0x493914]
call fcn.0048ac40
mov edx, dword [0x493914]
mov eax, 0x48d78c
call fcn.00488388
mov dword [0x48faa0], 3
mov eax, dword [0x48fd38]
cmp dword [eax], 0
je 0x48cf8f
cmp byte [0x48fa98], 0
je 0x48cefe
mov ecx, 0x48d7ac
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
push 9
push 2
push 0x201
push 0x48d71c
mov eax, dword [0x493914]
call fcn.00405450
push eax
mov eax, dword [0x493924]
push eax
call sub.binSFmpq.dll_MpqAddFileToArchiveEx
push 0
mov eax, dword [0x493924]
push eax
call sub.binSFmpq.dll_MpqCloseUpdatedArchive
mov eax, dword [0x493910]
call fcn.0048b620
test al, al
je 0x48cf53
mov ecx, 0x48d7e4
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
push 0
push 5
mov eax, dword [0x493910]
call fcn.00405450
push eax
call sub.binSFmpq.dll_MpqOpenArchiveForUpdate
mov dword [0x493924], eax
push 0
lea eax, [ebp - 0x7c]
mov edx, 0x48d810
call fcn.00405184
mov ecx, dword [ebp - 0x7c]
mov edx, 0x48d71c
mov eax, dword [0x493924]
call fcn.00489d44
jmp 0x48cfa8
push 0x48d778
call fcn.00463a40
mov edx, 0x48d78c
mov eax, dword [0x493914]
call fcn.0048ac40
mov eax, dword [0x48fb04]
cmp byte [eax], 0
jne 0x48d0be
lea eax, [ebp - 0x80]
mov ecx, 0x48d830
mov edx, dword [esi]
call fcn.0040529c
mov eax, dword [ebp - 0x80]
call fcn.00409760
test al, al
jne 0x48d004
push 0x48d844
push dword [esi]
push 0x48d830
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00405310
mov ecx, dword [ebp - 0x84]
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
push 1
call fcn.00463a18
push 0
call fcn.004639b8
push 0x48d860
call fcn.00463a40
push 0
mov eax, dword [0x49390c]
push eax
push 0x48d87c
mov eax, dword [0x493908]
push eax
lea eax, [ebp - 0x88]
call fcn.00409a6c
mov eax, dword [ebp - 0x88]
push eax
push 0x48d894
push dword [0x493920]
push 0x48d8a0
push dword [0x49391c]
push 0x48d8ac
lea eax, [ebp - 0x8c]
mov edx, 5
call fcn.00405310
mov eax, dword [ebp - 0x8c]
push eax
lea eax, [ebp - 0x90]
mov ecx, 0x48d830
mov edx, dword [esi]
call fcn.0040529c
mov eax, dword [ebp - 0x90]
pop edx
pop ecx
call fcn.00489330
mov dword [ebx], eax
cmp dword [ebx], 0
je 0x48d0be
push 0x48d8d0
call fcn.00463a40
xor ecx, ecx
mov edx, 0x48d87c
mov eax, 0x48d78c
call fcn.0048aeb8
mov eax, 1
call fcn.00404f54
cmp byte [0x48fa98], 0
jne 0x48d120
mov edx, 0x48d8f0
mov eax, dword [0x493924]
call fcn.00489c50
test al, al
je 0x48d120
call fcn.004639f4
mov edx, 1
sub edx, eax
push edx
call fcn.004639b8
push 0x48d908
call fcn.00463a40
push 0x48d8f0
mov eax, dword [0x493924]
push eax
call sub.binSFmpq.dll_MpqDeleteFile
test al, al
jne 0x48d120
mov ecx, 0x48d92c
mov dl, 1
mov eax, dword [0x407fc4]
call fcn.0040cae0
call fcn.004049b4
cmp byte [0x48fa98], 0
jne 0x48d1dd
call fcn.004639f4
mov edx, 1
sub edx, eax
push edx
call fcn.004639b8
push 0x48d954
call fcn.00463a40
push 9
push 2
push 0x201
push 0x48d71c
mov eax, dword [0x493914]
call fcn.00405450
push eax
mov eax, dword [0x493924]
push eax
call sub.binSFmpq.dll_MpqAddFileToArchiveEx
push 0x48d974
call fcn.00463a40
mov eax, dword [0x493924]
push eax
call sub.binSFmpq.dll_MpqCompactArchive
push 0x48d998
call fcn.00463a40
push 0
mov eax, dword [0x493924]
push eax
call sub.binSFmpq.dll_MpqCloseUpdatedArchive
xor eax, eax
mov dword [0x493924], eax
push 0x48d9b8
call fcn.00463a40
cmp byte [0x48fa90], 0
jne 0x48d24c
mov eax, 0x493930
call fcn.00483e08
test al, al
je 0x48d24c
call fcn.0048b450
mov eax, 0x493900
call fcn.00404f8c
jmp 0x48cc98
call fcn.004639f4
mov edx, 1
sub edx, eax
push edx
call fcn.004639b8
push 0x48d9d8
push dword [0x493910]
push 0x48d9e8
lea eax, [ebp - 0x94]
mov edx, 3
call fcn.00405310
mov eax, dword [ebp - 0x94]
push eax
call fcn.00463a40
mov edx, dword [0x493910]
mov eax, dword [0x493914]
call fcn.0048ac40
mov eax, 0x493930
call fcn.00483e08
test al, al
je 0x48d24c
push 0x40
push 0x48d9f0
push 0x48d9fc
push 0
call sub.user32.dll_MessageBoxA_1
push 1
call fcn.00463a18
push 1
call fcn.004639b8
push 0x48da84
call fcn.00463a40
push 0xfa
call sub.kernel32.dll_Sleep_1
call fcn.004639a8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48d38f
cmp dword [0x493924], 0
je 0x48d3a5
push 0
mov eax, dword [0x493924]
push eax
call sub.binSFmpq.dll_MpqCloseUpdatedArchive
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x48d3f1
lea eax, [ebp - 0x94]
mov edx, 0xc
call fcn.00404fb0
lea eax, [ebp - 0x64]
mov edx, 3
call fcn.00404fb0
lea eax, [ebp - 0x58]
mov edx, 0xf
call fcn.00404fb0
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00404fb0
ret