Function at 0x4298a0
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x65c331
mov eax, dword fs:[0]
push eax
sub esp, 0x320
mov eax, dword [0x6af168]
xor eax, esp
mov dword [esp + 0x318], eax
push ebx
push esi
push edi
mov eax, dword [0x6af168]
xor eax, esp
push eax
lea eax, [esp + 0x330]
mov dword fs:[0], eax
xor edi, edi
mov ebx, ecx
mov dword [esp + 0x30], edi
call fcn.00571280
call fcn.004e60f0
test al, al
je 0x429aa3
push 0x140
lea eax, [esp + 0xe0]
push edi
push eax
call fcn.0062a710
add esp, 0xc
lea esi, [esp + 0x34]
call fcn.004e61a0
push str.userdata_.
push eax
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x344], edi
call fcn.0044cf70
mov edi, 0x10
add esp, 0xc
cmp dword [eax + 0x18], edi
jb 0x429942
mov eax, dword [eax + 4]
jmp 0x429945
add eax, 4
lea edx, [esp + 0xdc]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp dword [esp + 0x2c], edi
mov esi, eax
jb 0x429969
mov eax, dword [esp + 0x18]
push eax
call fcn.0062493b
add esp, 4
mov dword [esp + 0x338], 0xffffffff
cmp dword [esp + 0x4c], edi
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], 0
mov byte [esp + 0x18], 0
jb 0x42999c
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0062493b
add esp, 4
cmp esi, 0xffffffff
jne 0x429aa8
lea esi, [esp + 0x34]
call fcn.004e61a0
push eax
mov dword [esp + 0x33c], 1
call fcn.004e75f0
add esp, 4
mov dword [esp + 0x338], 0xffffffff
cmp dword [esp + 0x4c], edi
jb 0x4299e0
mov edx, dword [esp + 0x38]
push edx
call fcn.0062493b
add esp, 4
lea esi, [esp + 0x34]
call fcn.004e61a0
push eax
mov dword [esp + 0x33c], 2
call fcn.004e7150
add esp, 4
mov dword [esp + 0x338], 0xffffffff
cmp dword [esp + 0x4c], edi
jb 0x429a1b
mov eax, dword [esp + 0x38]
push eax
call fcn.0062493b
add esp, 4
lea esi, [esp + 0x34]
call fcn.004e61a0
push str.userdata
push eax
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x344], 3
call fcn.0044cf70
add esp, 0xc
cmp dword [eax + 0x18], edi
jb 0x429a4c
mov eax, dword [eax + 4]
jmp 0x429a4f
add eax, 4
push eax
push str.userdata
call dword [sym.imp.KERNEL32.dll_MoveFileA]
cmp dword [esp + 0x2c], edi
jb 0x429a6e
mov edx, dword [esp + 0x18]
push edx
call fcn.0062493b
add esp, 4
mov dword [esp + 0x338], 0xffffffff
cmp dword [esp + 0x4c], edi
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], 0
mov byte [esp + 0x18], 0
jb 0x429aa8
mov eax, dword [esp + 0x38]
push eax
call fcn.0062493b
add esp, 4
jmp 0x429aa8
mov edi, 0x10
call fcn.005723d0
push 4
push str.hwnd
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
call fcn.00402300
mov dword [esp + 0x338], 4
mov ecx, dword [ebx + 0x350]
push ecx
push ebx
lea ecx, [esp + 0x1c]
call fcn.00545570
mov dword [esp + 0x338], 0xffffffff
cmp dword [esp + 0x2c], edi
jb 0x429b0c
mov edx, dword [esp + 0x18]
push edx
call fcn.0062493b
add esp, 4
push 0x104
lea eax, [esp + 0x220]
push eax
push 0
mov byte [esp + 0x228], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x21c]
mov dword [esp + 0xd8], 0xf
mov dword [esp + 0xd4], 0
mov byte [esp + 0xc4], 0
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x429b51
sub eax, esi
push eax
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0xc8]
call fcn.00402300
push str.__replay__1_
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0xac]
push eax
mov dword [esp + 0x344], 5
call fcn.0044cf70
add esp, 0xc
push 0x672ad0
lea ecx, [esp + 0xc4]
push ecx
lea edx, [esp + 0x90]
push edx
mov byte [esp + 0x344], 6
call fcn.0044cf70
add esp, 0xc
mov esi, ebx
mov byte [esp + 0x338], 7
call fcn.0054e510
push 4
mov esi, 0xf
push str.Init
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
call fcn.00402300
mov byte [esp + 0x338], 8
mov ecx, dword [ebx + 0x634]
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
lea edx, [esp + 0x14]
push edx
call eax
test al, al
sete byte [esp + 0x13]
mov byte [esp + 0x338], 7
cmp dword [esp + 0x2c], edi
jb 0x429c2f
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0062493b
add esp, 4
cmp byte [esp + 0x13], 0
je 0x429c3f
push 1
mov ecx, ebx
call fcn.0054e5c0
mov ecx, dword [ebx + 0x634]
call fcn.0041ff10
test al, al
jne 0x429c57
push 1
mov ecx, ebx
call fcn.0054e5c0
push 4
push str.Load
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
call fcn.00402300
mov byte [esp + 0x338], 9
mov ecx, dword [ebx + 0x634]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x14]
push eax
call edx
test al, al
sete byte [esp + 0x13]
mov byte [esp + 0x338], 7
cmp dword [esp + 0x2c], edi
jb 0x429cb4
mov eax, dword [esp + 0x18]
push eax
call fcn.0062493b
add esp, 4
cmp byte [esp + 0x13], 0
je 0x429cc4
push 1
mov ecx, ebx
call fcn.0054e5c0
mov ecx, dword [ebx + 0x634]
call fcn.004215c0
test al, al
jne 0x429cdc
push 1
mov ecx, ebx
call fcn.0054e5c0
push ebx
mov edx, str.musicodetojoy.ogg
xor edi, edi
call fcn.0042aa50
push ebx
mov edx, str.musicopening.ogg
mov edi, 1
call fcn.0042aa50
push ebx
mov edx, str.musicMenu_Amb_2.ogg
mov edi, 2
call fcn.0042aa50
push ebx
mov edx, str.musicprogress.ogg
mov edi, 4
call fcn.0042aa50
push ebx
mov edx, str.musicmenu.ogg
mov edi, 3
call fcn.0042aa50
push ebx
mov edx, str.musiccredits.ogg
mov edi, 5
call fcn.0042aa50
mov byte [ebx + 0x80d], 1
mov eax, dword [0x6b8470]
xor edx, edx
mov ecx, ebx
call fcn.00542490
mov eax, dword [0x6b89ac]
lea edx, [edi - 4]
mov ecx, ebx
call fcn.00542490
mov eax, dword [0x6b8498]
lea edx, [edi - 3]
mov ecx, ebx
call fcn.00542490
mov eax, dword [0x6b85bc]
lea edx, [edi - 2]
mov ecx, ebx
call fcn.00542490
mov esi, dword [ebx + 0x8f8]
call fcn.00457150
mov ecx, dword [ebx + 0x8fc]
call fcn.00466190
mov ecx, dword [ebx + 0x904]
push ecx
call fcn.0047a2e0
mov edi, dword [ebx + 0x90c]
xor edx, edx
call fcn.0047d2b0
mov ecx, dword [ebx + 0x910]
xor edx, edx
call fcn.0047d780
mov ecx, dword [ebx + 0x914]
mov edx, str.LevelEditor_stats_cheat.dat
call fcn.0047d780
mov edx, dword [ebx + 0x918]
push edx
call fcn.0047fcf0
mov eax, dword [ebx + 0x90c]
push eax
call fcn.0047cd60
mov eax, 0xf
xor edi, edi
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], edi
mov byte [esp + 0x70], 0
mov byte [esp + 0x338], 0xa
cmp dword [ebx + 0x930], edi
jne 0x429e4d
push 7
push str.CurUser
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edi
mov byte [esp + 0x20], 0
call fcn.00402300
mov byte [esp + 0x338], 0xb
push ebx
lea esi, [esp + 0x70]
lea edx, [esp + 0x18]
mov dword [esp + 0x34], 1
call fcn.00545fa0
test al, al
mov byte [esp + 0x13], 1
jne 0x429e52
mov byte [esp + 0x13], 0
mov dword [esp + 0x338], 0xa
test byte [esp + 0x30], 1
mov esi, 0x10
je 0x429e7c
cmp dword [esp + 0x2c], esi
jb 0x429e7c
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0062493b
add esp, 4
cmp byte [esp + 0x13], 0
je 0x429e9a
mov edi, dword [ebx + 0x904]
lea ecx, [esp + 0x6c]
call fcn.0047a910
mov dword [ebx + 0x930], eax
xor edi, edi
cmp dword [ebx + 0x930], edi
jne 0x429eb8
mov esi, dword [ebx + 0x904]
call fcn.00479cb0
mov dword [ebx + 0x930], eax
mov esi, 0x10
mov eax, ebx
call fcn.00541360
test al, al
je 0x429f11
cmp dword [ebx + 0x930], edi
jne 0x429f11
push str.No_User_Profile
lea ecx, [esp + 0x54]
call fcn.00402130
mov byte [esp + 0x338], 0xc
mov edx, dword [ebx]
mov edx, dword [edx + 0x84]
lea eax, [esp + 0x50]
push eax
mov ecx, ebx
call edx
cmp dword [esp + 0x68], esi
jb 0x429f05
mov eax, dword [esp + 0x54]
push eax
call fcn.0062493b
add esp, 4
mov byte [ebx + 0x4fd], 1
jmp 0x42a037
mov ecx, dword [ebx + 0x910]
cmp dword [ecx + 0x2c], edi
jne 0x429f35
mov eax, dword [ebx + 0x930]
cmp eax, edi
je 0x429f35
push 0xffffffffffffffff
add eax, 4
push edi
add ecx, 0x18
push eax
call fcn.00401d10
mov esi, dword [0x6b85d4]
push 1
call fcn.00429610
add esp, 4
mov dword [ebx + 0x924], eax
mov esi, dword [0x6b84a8]
push 2
call fcn.00429610
add esp, 4
mov dword [ebx + 0x928], eax
mov esi, dword [0x6b8400]
push 3
call fcn.00429610
mov ecx, dword [ebx + 0x924]
mov dword [ebx + 0x92c], eax
mov eax, dword [ebx + 0xc0]
sub eax, dword [ecx + 0x38]
mov edx, dword [ecx]
mov edx, dword [edx + 0xa4]
add esp, 4
push edi
push eax
call edx
mov eax, dword [ebx + 0x92c]
push edi
push edi
push edi
push edi
push 0x4800
push eax
mov eax, dword [ebx + 0x924]
call fcn.0055c020
mov ecx, dword [ebx + 0x928]
mov eax, dword [ebx + 0x92c]
push edi
push edi
push edi
push edi
push 0x4800
push ecx
call fcn.0055c020
push 0x21
push str.SoftwarePopCapPeggleWoWRunPath
lea ecx, [esp + 0x58]
mov dword [esp + 0x70], 0xf
mov dword [esp + 0x6c], edi
mov byte [esp + 0x5c], 0
call fcn.00402300
lea edx, [ebx + 0x7d8]
push edx
lea ecx, [esp + 0x54]
mov byte [esp + 0x33c], 0xd
call fcn.00429690
mov esi, 0x10
add esp, 4
mov byte [esp + 0x338], 0xa
cmp dword [esp + 0x68], esi
jb 0x42a024
mov eax, dword [esp + 0x54]
push eax
call fcn.0062493b
add esp, 4
call fcn.004a0f40
mov eax, ebx
call fcn.0042bb10
mov ecx, ebx
call fcn.0042d630
cmp dword [esp + 0x84], esi
jb 0x42a04d
mov ecx, dword [esp + 0x70]
push ecx
call fcn.0062493b
add esp, 4
cmp dword [esp + 0xa0], esi
mov ebx, 0xf
mov byte [esp + 0x70], 0
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], ebx
jb 0x42a07e
mov edx, dword [esp + 0x8c]
push edx
call fcn.0062493b
add esp, 4
cmp dword [esp + 0xbc], esi
mov byte [esp + 0x8c], 0
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], ebx
jb 0x42a0ad
mov eax, dword [esp + 0xa8]
push eax
call fcn.0062493b
add esp, 4
cmp dword [esp + 0xd8], esi
mov byte [esp + 0xa8], 0
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ebx
jb 0x42a0dc
mov ecx, dword [esp + 0xc4]
push ecx
call fcn.0062493b
add esp, 4
mov ecx, dword [esp + 0x330]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x318]
xor ecx, esp
call fcn.00624940
mov esp, ebp
pop ebp
ret