Function at 0x408d10
Capabilities:
Copy file
Delete file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x437755
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x698
mov eax, dword [0x449704]
xor eax, dword [ebp + 4]
push ebx
push esi
mov dword [esp + 0x698], eax
mov eax, dword [ebp + 8]
xor esi, esi
cmp eax, esi
push edi
mov ebx, ecx
jne 0x4091fd
call fcn.00429c9c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x6ac], esi
call fcn.00429c9c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x6ac], 1
call fcn.00429c9c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, 0x43a0e3
mov byte [esp + 0x6ac], 2
lea edi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408db0
sub eax, edi
push eax
push 0x43a0e3
lea ecx, [esp + 0x20]
call fcn.00401fa0
mov eax, 0x43a0e3
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408dd0
sub eax, edx
push eax
push 0x43a0e3
lea ecx, [esp + 0x24]
call fcn.00401fa0
push str.198.50.251.116_patch_mainupdate_version.dat
lea ecx, [esp + 0x14]
call fcn.00402280
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x170]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea eax, [esp + 0x178]
push eax
call fcn.0041cbe0
add esp, 0xc
push 1
push str.tempversion.dat
lea ecx, [esp + 0x178]
push ecx
mov ecx, ebx
call fcn.00407520
test eax, eax
jne 0x408e45
push esi
push esi
push str.Cannot_Open_Version_File_
call fcn.004323c4
push str.198.50.251.116_patch_mainupdate_Tantra.dat
lea ecx, [esp + 0x14]
call fcn.00402280
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x170]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x10]
mov eax, dword [edi - 0xc]
push eax
lea edx, [esp + 0x174]
push edi
push edx
call fcn.0041cbe0
add esp, 0xc
push 1
push str.tempTantra.dat
lea eax, [esp + 0x178]
push eax
mov ecx, ebx
call fcn.00407520
test eax, eax
jne 0x408ea2
push esi
push esi
push str.Cannot_Open_Tantra.dat_File_
call fcn.004323c4
lea ecx, [esp + 0x28]
call fcn.0042fdf0
push esi
push esi
push str.version.dat
lea ecx, [esp + 0x34]
mov byte [esp + 0x6b8], 3
call fcn.0042fe06
test eax, eax
je 0x408fc0
call fcn.00429c9c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x20], eax
push 0x104
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x6b4], 4
call fcn.0042ffe2
push str._OLDVERSION_
lea ecx, [esp + 0x24]
push 0x43a584
push ecx
call fcn.00402240
mov esi, dword [esp + 0x2c]
lea edx, [esp + 0x74]
push esi
push edx
call fcn.0041cf20
add esp, 0x14
test eax, eax
push 0x104
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x2c]
push eax
je 0x408f6a
call fcn.0042ffe2
push 0x104
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esp + 0x30]
call fcn.0042ffe2
push 0x104
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x30]
call fcn.0042ffe2
push 0x104
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x30]
call fcn.0042ffe2
lea ecx, [esp + 0x68]
push 0x104
push ecx
lea ecx, [esp + 0x30]
call fcn.0042ffe2
lea edx, [esp + 0x68]
push edx
call fcn.0041c5c8
add esp, 4
lea ecx, [esp + 0x28]
mov dword [ebx + 0x204], eax
call fcn.00430154
lea eax, [esi - 0x10]
mov byte [esp + 0x6ac], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408fc0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [esp + 0x3c]
call fcn.0042fdf0
push 0
push 0
push str.Tantra.dat
lea ecx, [esp + 0x48]
mov byte [esp + 0x6b8], 5
mov dword [esp + 0x30], 0
call fcn.0042fe06
test eax, eax
je 0x409028
push 0x104
lea eax, [esp + 0x27c]
push eax
lea ecx, [esp + 0x44]
call fcn.0042ffe2
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x27c]
push str.version___f
push edx
call fcn.0041c992
add esp, 0xc
lea ecx, [esp + 0x3c]
call fcn.00430154
lea ecx, [esp + 0x54]
call fcn.0042fdf0
push 0
push 0
push str.tempTantra.dat
lea ecx, [esp + 0x60]
mov byte [esp + 0x6b8], 6
mov dword [esp + 0x20], 0
call fcn.0042fe06
test eax, eax
je 0x409090
push 0x104
lea eax, [esp + 0x27c]
push eax
lea ecx, [esp + 0x5c]
call fcn.0042ffe2
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x27c]
push str.version___f
push edx
call fcn.0041c992
add esp, 0xc
lea ecx, [esp + 0x54]
call fcn.00430154
fld dword [esp + 0x24]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x44
jnp 0x409146
push str.198.50.251.116_patch_Tantra.exe
lea ecx, [esp + 0x14]
call fcn.00402280
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x170]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x10]
mov eax, dword [edi - 0xc]
push eax
lea eax, [esp + 0x174]
push edi
push eax
call fcn.0041cbe0
add esp, 0xc
push 0xb80
push str.TempTantra.exe
lea ecx, [esp + 0x178]
push ecx
mov ecx, ebx
call fcn.00407520
test eax, eax
jne 0x409105
push eax
push eax
push str.Cannot_Open_TempTantra.exe_
call fcn.004323c4
jmp 0x409146
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
push str.Tantra.exe
call edi
mov esi, dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0
push str.Tantra.exe
push str.TempTantra.exe
call esi
push str.TempTantra.exe
call edi
push 0
push str.Tantra.dat
push str.tempTantra.dat
call esi
push str.tempTantra.dat
call edi
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x54]
mov dword [ebx + 0x1f4], 1
mov byte [esp + 0x6ac], 5
call fcn.00430190
lea ecx, [esp + 0x3c]
mov byte [esp + 0x6ac], 3
call fcn.00430190
lea ecx, [esp + 0x28]
mov byte [esp + 0x6ac], 2
call fcn.00430190
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x6ac], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4091a9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x6ac], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4091cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [edi - 0x10]
mov dword [esp + 0x6ac], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409cd1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
jmp 0x409cd1
cmp eax, 1
jne 0x4092ee
cmp dword [ebx + 0x200], esi
je 0x4092b2
call fcn.00429c9c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
push str.198.50.251.116_patch_mainupdate_version.dat
lea ecx, [esp + 0x1c]
mov dword [esp + 0x6b0], 7
call fcn.00402280
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x170]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x18]
mov eax, dword [edi - 0xc]
push eax
lea eax, [esp + 0x174]
push edi
push eax
call fcn.0041cbe0
add esp, 0xc
push 1
push str.tempversion.dat
lea ecx, [esp + 0x178]
push ecx
mov ecx, ebx
call fcn.00407520
test eax, eax
jne 0x40928d
push esi
push esi
push str.Cannot_Download_Version_File_
call fcn.004323c4
add edi, 0xfffffff0
mov dword [esp + 0x6ac], 0xffffffff
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x4092b2
mov ecx, dword [edi]
mov edx, dword [ecx]
push edi
call dword [edx + 4]
mov eax, dword [ebx + 0x1fc]
mov edx, dword [ebx + 0x208]
push esi
lea ecx, [ebx + 0x208]
push esi
push eax
call dword [edx + 0x20]
test eax, eax
jne 0x4092df
push esi
push esi
push str.Cannot_Open_version_File_
call fcn.004323c4
jmp 0x409cd1
mov dword [ebx + 0x1f4], 2
jmp 0x409cd1
cmp eax, 2
jne 0x4093d3
mov eax, dword [ebx + 0x208]
push 0x104
lea ecx, [esp + 0x6c]
lea edi, [ebx + 0x208]
push ecx
mov ecx, edi
call dword [eax + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
lea ecx, [esp + 0x170]
push ecx
lea edx, [esp + 0x27c]
push edx
lea eax, [esp + 0x280]
push eax
lea ecx, [esp + 0x74]
push str._s__s__s
push ecx
call fcn.0041c992
mov edx, dword [edi]
add esp, 0x14
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
lea ecx, [esp + 0x68]
push ecx
call fcn.0041c5c8
mov ecx, dword [ebx + 0x200]
add esp, 4
cmp ecx, esi
je 0x409382
mov eax, dword [ebx + 0x204]
mov dword [ebx + 0x80c], esi
inc eax
mov ecx, dword [ebx + 0x204]
cmp ecx, eax
jge 0x409398
mov dword [ebx + 0x1f4], 5
jmp 0x4093b4
jne 0x4093a6
mov dword [ebx + 0x1f4], 6
jmp 0x4093b4
cmp ecx, eax
jle 0x4093b4
mov dword [ebx + 0x1f4], 4
lea edx, [esp + 0x170]
push edx
lea ecx, [ebx + 0x238]
call fcn.00402280
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x4c]
jmp 0x409cd1
cmp eax, 5
jne 0x409627
call fcn.00429c9c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x6ac], 8
call fcn.00429c9c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x6ac], 9
call fcn.00429c9c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
push 0x43a0e3
lea ecx, [esp + 0x18]
mov byte [esp + 0x6b0], 0xa
call fcn.00402280
push 0x43a0e3
lea ecx, [esp + 0x20]
call fcn.00402280
push str.198.50.251.116_patch_mainupdate_UpdateList.dat
lea ecx, [esp + 0x14]
call fcn.00402280
mov esi, dword [esp + 0x10]
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x170]
rep stosd dword es:[edi], eax
mov eax, dword [esi - 0xc]
push eax
lea eax, [esp + 0x174]
push esi
push eax
call fcn.0041cbe0
add esp, 0xc
push 0x1f4
push str.temp.dat
lea ecx, [esp + 0x178]
push ecx
mov ecx, ebx
call fcn.00407520
test eax, eax
jne 0x4094ac
push eax
push eax
push str.Cannot_Open_Notifymsg_File_
call fcn.004323c4
mov eax, dword [ebx + 0x1f8]
mov edx, dword [ebx + 0x21c]
push 0
lea edi, [ebx + 0x21c]
push 0
push eax
mov ecx, edi
call dword [edx + 0x20]
test eax, eax
jne 0x4094f3
push eax
push eax
push str.Cannot_Open_Update_List_File_
call fcn.004323c4
lea ecx, [esp + 0x1c]
call fcn.00401e70
lea ecx, [esp + 0x14]
call fcn.00401e70
lea ecx, [esp + 0x10]
jmp 0x409ccc
mov eax, dword [edi]
push 0x104
lea ecx, [esp + 0x6c]
push ecx
mov ecx, edi
call dword [eax + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
lea ecx, [esp + 0x278]
push ecx
lea edx, [esp + 0x384]
push edx
lea eax, [esp + 0x70]
push str._s__s
push eax
call fcn.0041c992
lea ecx, [esp + 0x288]
push ecx
call fcn.0041c5c8
add esp, 0x14
test eax, eax
jle 0x4095b8
mov dword [esp + 0x18], eax
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
dec dword [esp + 0x18]
jne 0x4095a1
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov dword [ebx + 0x1f4], 3
mov byte [esp + 0x6ac], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4095f9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x6ac], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40961f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esi - 0x10]
jmp 0x4091d2
cmp eax, 6
jne 0x4097da
lea ecx, [esp + 0x10]
call fcn.00401e50
lea ecx, [esp + 0x1c]
mov dword [esp + 0x6ac], 0xb
call fcn.00401e50
lea ecx, [esp + 0x14]
call fcn.00401e50
push 0x43a0e3
lea ecx, [esp + 0x20]
mov byte [esp + 0x6b0], 0xd
call fcn.00402280
push 0x43a0e3
lea ecx, [esp + 0x18]
call fcn.00402280
push str.198.50.251.116_patch_mainupdate_UpdateList.dat
lea ecx, [esp + 0x14]
call fcn.00402280
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x170]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea edx, [esp + 0x178]
push edx
call fcn.0041cbe0
add esp, 0xc
push 0x1f4
push str.temp.dat
lea eax, [esp + 0x178]
push eax
mov ecx, ebx
call fcn.00407520
test eax, eax
jne 0x4096da
push esi
push esi
push str.Cannot_Open_Notifymsg_File_
call fcn.004323c4
mov eax, dword [ebx + 0x1f8]
mov edx, dword [ebx + 0x21c]
push esi
lea edi, [ebx + 0x21c]
push esi
push eax
mov ecx, edi
call dword [edx + 0x20]
test eax, eax
jne 0x409709
push esi
push esi
push str.Cannot_Open_Update_List_File_
call fcn.004323c4
jmp 0x4097bf
mov eax, dword [edi]
push 0x104
lea ecx, [esp + 0x6c]
push ecx
mov ecx, edi
call dword [eax + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
mov edx, dword [edi]
push 0x104
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call dword [edx + 0x5c]
lea ecx, [esp + 0x278]
push ecx
lea edx, [esp + 0x384]
push edx
lea eax, [esp + 0x70]
push str._s__s
push eax
call fcn.0041c992
lea ecx, [esp + 0x288]
push ecx
call fcn.0041c5c8
add esp, 0x14
mov dword [ebx + 0x80c], eax
mov dword [ebx + 0x1f4], 3
lea ecx, [esp + 0x14]
call fcn.00401e70
lea ecx, [esp + 0x1c]
call fcn.00401e70
lea ecx, [esp + 0x10]
jmp 0x409ccc
cmp eax, 3
jne 0x409b9f
lea ecx, [esp + 0x3c]
call fcn.00414bc5
mov eax, dword [ebx + 0x80c]
cmp eax, esi
mov dword [esp + 0x6ac], 0xe
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], esi
je 0x40982f
cmp dword [ebx + 0x810], eax
jne 0x40982f
mov edx, dword [ebx + 0x21c]
lea ecx, [ebx + 0x21c]
call dword [edx + 0x4c]
mov dword [ebx + 0x1f4], 4
jmp 0x409a04
mov eax, dword [ebx + 0x21c]
push 0x104
lea ecx, [esp + 0x594]
lea edi, [ebx + 0x21c]
push ecx
mov ecx, edi
call dword [eax + 0x5c]
test eax, eax
je 0x409b89
inc dword [ebx + 0x810]
lea edx, [esp + 0x380]
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x284]
push edx
lea eax, [esp + 0x5a0]
push str._s__u__u__s
push eax
call fcn.0041c992
add esp, 0x18
push 0x104
lea ecx, [esp + 0x27c]
push 0x5c
push ecx
call fcn.0041ce60
add esp, 8
inc eax
push eax
lea edx, [esp + 0x70]
push edx
call fcn.0041cbe0
mov eax, dword [str.Check_Files..]
mov ecx, dword [0x43a3e0]
mov edx, dword [0x43a3e4]
mov dword [esp + 0x17c], eax
mov ax, word [0x43a3e8]
mov dword [esp + 0x180], ecx
mov cl, byte [0x43a3ea]
mov word [esp + 0x188], ax
lea eax, [esp + 0x74]
mov dword [esp + 0x184], edx
add esp, 0xc
mov byte [esp + 0x17e], cl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4098f8
sub eax, edx
cmp eax, 0x1e
jbe 0x40991f
lea edx, [esp + eax + 0x4a]
push 0x1e
push edx
lea eax, [esp + 0x178]
push eax
call fcn.0041cd10
add esp, 0xc
jmp 0x40994e
lea eax, [esp + 0x68]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x409925
lea edi, [esp + 0x170]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x409936
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x170]
push ecx
lea ecx, [ebx + 0x74]
call fcn.0042e49d
push 0
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x44]
call fcn.00414c58
test eax, eax
je 0x409a2e
lea ecx, [esp + 0x3c]
call fcn.00414aa6
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x40]
call fcn.00414ea6
push eax
lea ecx, [esp + 0x18]
push ecx
mov byte [esp + 0x6b4], 0xf
call fcn.00402670
add esp, 8
lea ecx, [esp + 0x18]
mov byte [esp + 0x6ac], 0x11
call fcn.00401e70
push 0
lea ecx, [esp + 0x18]
call fcn.00401eb0
lea edx, [esp + 0x488]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x4099c6
lea edx, [esp + 0x488]
push edx
lea eax, [esp + 0x384]
push eax
call fcn.00427b7e
add esp, 8
test eax, eax
jne 0x409a1d
lea ecx, [esp + 0x3c]
call fcn.00414ae0
cmp dword [esp + 0x1c], eax
jne 0x409a1d
lea ecx, [esp + 0x14]
call fcn.00401e70
lea ecx, [esp + 0x3c]
mov dword [esp + 0x6ac], 0xffffffff
call fcn.00414be9
jmp 0x409cd1
lea ecx, [esp + 0x14]
mov byte [esp + 0x6ac], 0xe
call fcn.00401e70
mov edi, dword [ebx + 0x68c]
mov ecx, dword [esp + 0x24]
add edi, ecx
push 0x10
mov dword [ebx + 0x68c], edi
call fcn.00429b05
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x6ac], 0x12
je 0x409a65
mov ecx, eax
call fcn.00406df0
mov edi, eax
jmp 0x409a67
xor edi, edi
lea ecx, [esp + 0x10]
mov dword [esp + 0x18], edi
call fcn.00401e50
lea edx, [ebx + 0x250]
push edx
lea ecx, [esp + 0x14]
mov byte [esp + 0x6b0], 0x13
call fcn.00402190
push str.main_
lea ecx, [esp + 0x14]
call fcn.00406f70
lea eax, [esp + 0x278]
push eax
push 0
lea ecx, [esp + 0x18]
call fcn.00401eb0
push eax
push str._s_s
push edi
call fcn.00402240
add esp, 0x10
push 0x43a3c0
push 0x43a104
mov ecx, edi
call fcn.004062c0
lea ecx, [esp + 0x68]
push ecx
lea ecx, [edi + 4]
call fcn.00402280
mov edx, dword [esp + 0x1c]
mov dword [edi + 8], edx
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x18]
push ecx
lea ecx, [ebx + 0x668]
mov dword [edi + 0xc], eax
call fcn.00408ca0
mov edi, dword [esp + 0x18]
add edi, 4
push 0x5c
mov ecx, edi
call fcn.00405d60
test eax, eax
jl 0x409b80
push eax
lea edx, [esp + 0x24]
push edx
mov ecx, edi
call fcn.004064b0
lea eax, [esp + 0x20]
push eax
mov ecx, ebx
mov byte [esp + 0x6b0], 0x14
call fcn.004071d0
test eax, eax
jne 0x409b77
lea ecx, [esp + 0x14]
call fcn.00401e50
push 0
lea ecx, [esp + 0x24]
mov byte [esp + 0x6b0], 0x15
call fcn.00401eb0
push eax
lea ecx, [esp + 0x18]
push str.Cannot_Create_Folder___s__
push ecx
call fcn.00402240
mov edx, dword [esp + 0x20]
add esp, 0xc
push 0
push 0
push edx
call fcn.004323c4
lea ecx, [esp + 0x14]
call fcn.00401e70
lea ecx, [esp + 0x20]
call fcn.00401e70
lea ecx, [esp + 0x10]
jmp 0x4099ff
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x4c]
mov dword [ebx + 0x1f4], 4
jmp 0x409a04
cmp eax, 4
jne 0x409cd1
lea ecx, [esp + 0x20]
call fcn.00401e50
lea ecx, [ebx + 0x668]
mov dword [esp + 0x6ac], 0x16
call fcn.00405d90
test al, al
jne 0x409c20
cmp dword [ebx + 0x68c], esi
je 0x409c20
push 1
push 0x3e9
mov ecx, ebx
call fcn.0042e39a
mov ecx, eax
call fcn.0042e517
push 1
push 0x3f2
mov ecx, ebx
call fcn.0042e39a
mov ecx, eax
call fcn.0042e517
push esi
lea ecx, [ebx + 0x694]
call fcn.00405a30
push esi
lea ecx, [ebx + 0x728]
call fcn.00405a30
push ebx
call fcn.00408c90
jmp 0x409cbe
push str.Start_Game
lea ecx, [esp + 0x24]
call fcn.00402280
push 0
lea ecx, [esp + 0x24]
call fcn.00401eb0
push eax
lea ecx, [ebx + 0x74]
call fcn.0042e49d
push 0x64
lea ecx, [ebx + 0x694]
call fcn.00405a30
push 0x64
lea ecx, [ebx + 0x728]
call fcn.00405a30
push 0
push str.version.dat
lea edi, [ebx + 0x1fc]
push 0
mov ecx, edi
mov dword [ebx + 0x1f0], 1
call fcn.00401eb0
mov esi, dword [sym.imp.KERNEL32.dll_CopyFileA]
push eax
call esi
push 0
mov ecx, edi
call fcn.00401eb0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0
push str.UpdateList.dat
lea edi, [ebx + 0x1f8]
push 0
mov ecx, edi
call fcn.00401eb0
push eax
call esi
push 0
mov ecx, edi
call fcn.00401eb0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [ebx + 0x1f4], 0xffffffff
lea ecx, [esp + 0x20]
call fcn.00401e70
mov ecx, dword [esp + 0x6a4]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x69c]
xor ecx, dword [ebp + 4]
call fcn.0041b931
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4