Function at 0x4be280
Capabilities:
Check if file exists

Disassembly:
push ebp
lea ebp, [esp - 0x58]
sub esp, 0x58
push 0xffffffffffffffff
push 0x589c6e
mov eax, dword fs:[0]
push eax
sub esp, 0x90
mov eax, dword [0x5cca0c]
xor eax, ebp
mov dword [ebp + 0x54], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
mov dword [ebp - 0x14], esi
mov dword [ebp + 0x10], ebx
cmp dword [ebp + 0x78], 0x10
mov dword [ebp - 4], ebx
jb 0x4be314
mov eax, dword [ebp + 0x64]
cmp eax, ebx
mov dword [ebp + 0x14], eax
je 0x4be31f
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
add edi, 1
cmp edi, 0x3fffffff
jg 0x4be31f
lea eax, [edi + edi]
call fcn.00553150
mov esi, esp
cmp esi, ebx
je 0x4be31c
mov eax, dword [ebp + 0x14]
push edi
push esi
push 0xffffffffffffffff
push eax
push ebx
push 0x3a8
mov word [esi], bx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
neg eax
sbb eax, eax
and eax, esi
mov esi, dword [ebp - 0x14]
jmp 0x4be321
lea eax, [ebp + 0x64]
mov dword [ebp + 0x14], eax
jmp 0x4be2d0
mov esi, dword [ebp - 0x14]
xor eax, eax
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4be349
cmp dword [ebp + 0x78], 0x10
fldz
fst qword [esi]
mov dword [esi + 0x18], ebx
fstp qword [esi + 8]
jb 0x4bf16e
mov ecx, dword [ebp + 0x64]
push ecx
jmp 0x4bf166
lea ecx, [ebp - 0x60]
call fcn.004b2860
push connect
push 3
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x14], esp
push 0xffffffffffffffff
push ebx
lea edx, [ebp + 0x60]
mov edi, 0xf
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push edx
mov byte [ebp - 4], 1
mov byte [ecx + 4], bl
call fcn.0040a080
lea ecx, [ebp - 0x60]
call fcn.004b30d0
cmp eax, ebx
jne 0x4be3ae
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], bl
call fcn.004b2ee0
cmp dword [ebp + 0x78], 0x10
jb 0x4bf16e
mov eax, dword [ebp + 0x64]
push eax
jmp 0x4bf166
push 0xffffffffffffffff
push ebx
lea ecx, [ebp + 0x60]
push ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0x89bc
call fcn.0040a080
lea ecx, [ebp - 0x60]
call fcn.004b2ad0
add eax, 1
push eax
call fcn.00551843
add esp, 4
lea ecx, [ebp - 0x60]
mov esi, eax
call fcn.004b2ad0
add eax, 1
push eax
push ebx
push esi
call fcn.00552500
add esp, 0xc
lea edx, [ebp - 0x80]
push edx
lea ecx, [ebp - 0x60]
call fcn.004b2ad0
push eax
push esi
lea ecx, [ebp - 0x60]
call fcn.004b28f0
lea ecx, [ebp - 0x60]
call fcn.004b2a30
mov eax, esi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x4c], ebx
mov byte [ebp + 0x3c], bl
lea ecx, [eax + 1]
jmp 0x4be420
mov dl, byte [eax]
add eax, 1
cmp dl, bl
jne 0x4be420
sub eax, ecx
push eax
push esi
lea ecx, [ebp + 0x38]
call fcn.0040c1c0
lea eax, [ebp + 0x38]
push eax
lea ecx, [ebp + 0x1c]
push ecx
mov byte [ebp - 4], 2
call fcn.004c0ab0
push esi
mov byte [ebp - 4], 3
call fcn.0055221b
add esp, 0xc
lea ecx, [ebp - 0x20]
call fcn.0042df20
mov dword [ebp - 0x1c], eax
mov byte [eax + 0x35], 1
mov eax, dword [ebp - 0x1c]
mov dword [eax + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 8], eax
mov dword [ebp - 0x18], ebx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x14], esp
push 0xffffffffffffffff
push ebx
lea edx, [ebp + 0x1c]
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push edx
mov byte [ebp - 4], 4
mov byte [ecx + 4], bl
call fcn.0040a080
lea ecx, [ebp - 0x20]
call fcn.004b6400
sub esp, 0x1c
mov dword [ebp + 0x14], esp
mov esi, esp
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x14], esp
push 1
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x596c00
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push 3
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x59a884
mov byte [ebp - 4], 5
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x18], esp
push 4
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.main
mov byte [ebp - 4], 6
mov byte [ecx + 4], bl
call fcn.0040c1c0
push esi
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.004b4420
call fcn.004be090
mov eax, dword [ebp - 0x14]
mov dword [ebp + 0x14], esp
fstp qword [eax]
mov esi, esp
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x14], esp
push 1
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x596c00
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push 4
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.mver
mov byte [ebp - 4], 7
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x18], esp
push 4
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.main
mov byte [ebp - 4], 8
mov byte [ecx + 4], bl
call fcn.0040c1c0
push esi
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.004b4420
call fcn.004be090
mov ecx, dword [ebp - 0x14]
mov dword [ebp + 0x14], esp
fstp qword [ecx + 8]
mov esi, esp
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x14], esp
push 1
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x596c00
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push 0xc
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.restart_mver
mov byte [ebp - 4], 9
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x18], esp
push 4
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.main
mov byte [ebp - 4], 0xa
mov byte [ecx + 4], bl
call fcn.0040c1c0
push esi
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.004b4420
call fcn.004be090
mov esi, dword [ebp - 0x14]
mov ecx, esp
fstp qword [esi + 0x10]
mov dword [ebp + 0x14], esp
push 3
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x59a860
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push 0xa
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.displayver
mov byte [ebp - 4], 0xb
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x18], esp
push 4
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.main
mov byte [ebp - 4], 0xc
mov byte [ecx + 4], bl
call fcn.0040c1c0
lea edx, [ebp - 0x3c]
push edx
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.004b4420
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esi + 0x89a0]
mov byte [ebp - 4], 0xd
call fcn.0040a080
cmp dword [ebp - 0x24], 0x10
mov byte [ebp - 4], 4
jb 0x4be6aa
mov eax, dword [ebp - 0x38]
push eax
call fcn.0055215c
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x14], esp
push 1
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x596c00
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push 0xa
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.complength
mov byte [ebp - 4], 0xe
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x18], esp
push 4
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.main
mov byte [ebp - 4], 0xf
mov byte [ecx + 4], bl
call fcn.0040c1c0
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.004b4420
cmp dword [eax + 0x18], 0x10
jb 0x4be724
mov eax, dword [eax + 4]
jmp 0x4be727
add eax, 4
push eax
call fcn.00554a20
add esp, 4
cmp dword [ebp - 0x24], 0x10
mov dword [esi + 0x1c], eax
jb 0x4be745
mov edx, dword [ebp - 0x38]
push edx
call fcn.0055215c
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x14], esp
push 1
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x598a60
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push 6
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.mcount
mov byte [ebp - 4], 0x10
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x18], esp
push 4
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.main
mov byte [ebp - 4], 0x11
mov byte [ecx + 4], bl
call fcn.0040c1c0
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.004b4420
cmp dword [eax + 0x18], 0x10
jb 0x4be7bf
mov eax, dword [eax + 4]
jmp 0x4be7c2
add eax, 4
push eax
call fcn.00554a20
add esp, 4
cmp dword [ebp - 0x24], 0x10
mov dword [esi + 0x18], eax
jb 0x4be7e0
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.0055215c
add esp, 4
cmp dword [esi + 0x18], ebx
mov dword [ebp + 0xc], ebx
jle 0x4bf10d
mov edx, dword [ebp - 0x14]
add edx, 0x4c
mov dword [ebp + 0x18], edx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0x14], esp
push 1
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x596c00
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp], esp
push 2
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x59a83c
mov byte [ebp - 4], 0x12
mov byte [ecx + 4], bl
call fcn.0040c1c0
mov ecx, dword [ebp + 0xc]
lea esi, [ebp - 0x3c]
mov byte [ebp - 4], 0x13
call fcn.004be160
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push eax
push 0x59a838
push ecx
mov byte [ebp - 4], 0x14
call fcn.00492ed0
add esp, 0xc
lea edx, [ebp - 0x58]
push edx
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x15
call fcn.004b4420
cmp dword [eax + 0x18], 0x10
jb 0x4be878
mov eax, dword [eax + 4]
jmp 0x4be87b
add eax, 4
push eax
call fcn.00554a20
mov ecx, dword [ebp + 0x18]
mov esi, 0x10
add esp, 4
cmp dword [ebp - 0x40], esi
mov dword [ecx - 0x2c], eax
jb 0x4be8a0
mov edx, dword [ebp - 0x54]
push edx
call fcn.0055215c
add esp, 4
cmp dword [ebp - 0x24], esi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], ebx
mov byte [ebp - 0x54], bl
mov byte [ebp - 4], 4
jb 0x4be8be
mov eax, dword [ebp - 0x38]
push eax
call fcn.0055215c
add esp, 4
sub esp, 0x1c
mov eax, esp
mov dword [ebp + 8], esp
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push 1
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x596c00
mov byte [ecx + 4], bl
mov dword [ebp + 0x14], eax
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp], esp
push 3
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x59a884
mov byte [ebp - 4], 0x16
mov byte [ecx + 4], bl
call fcn.0040c1c0
mov ecx, dword [ebp + 0xc]
lea esi, [ebp - 0x3c]
mov byte [ebp - 4], 0x17
call fcn.004be160
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
push 0x59a838
push ecx
mov byte [ebp - 4], 0x18
call fcn.00492ed0
add esp, 0xc
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x19
call fcn.004b4420
call fcn.004be090
mov edx, dword [ebp + 0x18]
add esp, 0x1c
fstp qword [edx - 0x24]
cmp dword [ebp - 0x24], 0x10
mov byte [ebp - 4], 4
jb 0x4be965
mov eax, dword [ebp - 0x38]
push eax
call fcn.0055215c
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push 1
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x596c00
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push 4
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.type
mov byte [ebp - 4], 0x1a
mov byte [ecx + 4], bl
call fcn.0040c1c0
mov ecx, dword [ebp + 0xc]
lea esi, [ebp - 0x3c]
mov byte [ebp - 4], 0x1b
call fcn.004be160
sub esp, 0x1c
mov ecx, esp
mov dword [ebp], esp
push eax
push 0x59a838
push ecx
mov byte [ebp - 4], 0x1c
call fcn.00492ed0
add esp, 0xc
lea edx, [ebp - 0x58]
push edx
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x1d
call fcn.004b4420
cmp dword [eax + 0x18], 0x10
jb 0x4be9e8
mov eax, dword [eax + 4]
jmp 0x4be9eb
add eax, 4
push eax
call fcn.00554a20
mov ecx, dword [ebp + 0x18]
mov esi, 0x10
add esp, 4
cmp dword [ebp - 0x40], esi
mov dword [ecx - 0x28], eax
jb 0x4bea10
mov edx, dword [ebp - 0x54]
push edx
call fcn.0055215c
add esp, 4
cmp dword [ebp - 0x24], esi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], ebx
mov byte [ebp - 0x54], bl
mov byte [ebp - 4], 4
jb 0x4bea2e
mov eax, dword [ebp - 0x38]
push eax
call fcn.0055215c
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push ebx
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x59648b
mov byte [ecx + 4], bl
call fcn.0040c1c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push 5
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.fname
mov byte [ebp - 4], 0x1e
mov byte [ecx + 4], bl
call fcn.0040c1c0
mov ecx, dword [ebp + 0xc]
lea esi, [ebp - 0x3c]
mov byte [ebp - 4], 0x1f
call fcn.004be160
sub esp, 0x1c
mov ecx, esp
mov dword [ebp], esp
push eax
push 0x59a838
push ecx
mov byte [ebp - 4], 0x20
call fcn.00492ed0
add esp, 0xc
lea edx, [ebp - 0x58]
push edx
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x21
call fcn.004b4420
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push ebx
add ecx, 0xffffffe4
push eax
mov byte [ebp - 4], 0x22
call fcn.0040a080
cmp dword [ebp - 0x40], 0x10
jb 0x4beaca
mov eax, dword [ebp - 0x54]
push eax
call fcn.0055215c
add esp, 4
cmp dword [ebp - 0x24], 0x10
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], ebx
mov byte [ebp - 0x54], bl
mov byte [ebp - 4], 4
jb 0x4beae9
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.0055215c
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x59648b
call fcn.0040dcb0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push str.name
mov byte [ebp - 4], 0x23
call fcn.0040dcb0
mov ecx, dword [ebp + 0xc]
lea esi, [ebp - 0x3c]
mov byte [ebp - 4], 0x24
call fcn.004be160
sub esp, 0x1c
mov edx, esp
mov dword [ebp], esp
push eax
push 0x59a838
push edx
mov byte [ebp - 4], 0x25
call fcn.00492ed0
add esp, 0xc
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x26
call fcn.004b4420
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push ebx
push eax
mov byte [ebp - 4], 0x27
call fcn.0040a080
cmp dword [ebp - 0x40], 0x10
jb 0x4beb6d
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.0055215c
add esp, 4
cmp dword [ebp - 0x24], 0x10
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], ebx
mov byte [ebp - 0x54], bl
mov byte [ebp - 4], 4
jb 0x4beb8c
mov edx, dword [ebp - 0x38]
push edx
call fcn.0055215c
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x59648b
call fcn.0040dcb0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push 0x597c68
mov byte [ebp - 4], 0x28
call fcn.0040dcb0
mov ecx, dword [ebp + 0xc]
lea esi, [ebp - 0x3c]
mov byte [ebp - 4], 0x29
call fcn.004be160
sub esp, 0x1c
mov ecx, esp
mov dword [ebp], esp
push eax
push 0x59a838
push ecx
mov byte [ebp - 4], 0x2a
call fcn.00492ed0
add esp, 0xc
lea edx, [ebp - 0x58]
push edx
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x2b
call fcn.004b4420
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push ebx
push eax
add ecx, 0x1c
mov byte [ebp - 4], 0x2c
call fcn.0040a080
cmp dword [ebp - 0x40], 0x10
jb 0x4bec13
mov eax, dword [ebp - 0x54]
push eax
call fcn.0055215c
add esp, 4
cmp dword [ebp - 0x24], 0x10
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], ebx
mov byte [ebp - 0x54], bl
mov byte [ebp - 4], 4
jb 0x4bec32
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.0055215c
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x59648b
call fcn.0040dcb0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push str.path
mov byte [ebp - 4], 0x2d
call fcn.0040dcb0
mov ecx, dword [ebp + 0xc]
lea esi, [ebp - 0x3c]
mov byte [ebp - 4], 0x2e
call fcn.004be160
sub esp, 0x1c
mov edx, esp
mov dword [ebp], esp
push eax
push 0x59a838
push edx
mov byte [ebp - 4], 0x2f
call fcn.00492ed0
add esp, 0xc
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x30
call fcn.004b4420
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push ebx
add ecx, 0x38
push eax
mov byte [ebp - 4], 0x31
call fcn.0040a080
cmp dword [ebp - 0x40], 0x10
jb 0x4becb9
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.0055215c
add esp, 4
cmp dword [ebp - 0x24], 0x10
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], ebx
mov byte [ebp - 0x54], bl
mov byte [ebp - 4], 4
jb 0x4becd8
mov edx, dword [ebp - 0x38]
push edx
call fcn.0055215c
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x596c00
call fcn.0040dcb0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push str.length
mov byte [ebp - 4], 0x32
call fcn.0040dcb0
mov ecx, dword [ebp + 0xc]
lea esi, [ebp - 0x3c]
mov byte [ebp - 4], 0x33
call fcn.004be160
sub esp, 0x1c
mov ecx, esp
mov dword [ebp], esp
push eax
push 0x59a838
push ecx
mov byte [ebp - 4], 0x34
call fcn.00492ed0
add esp, 0xc
lea edx, [ebp - 0x58]
push edx
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x35
call fcn.004b4420
cmp dword [eax + 0x18], 0x10
jb 0x4bed45
mov eax, dword [eax + 4]
jmp 0x4bed48
add eax, 4
push eax
call fcn.00554a20
mov ecx, dword [ebp + 0x18]
mov esi, 0x10
add esp, 4
cmp dword [ebp - 0x40], esi
mov dword [ecx + 0x54], eax
jb 0x4bed6d
mov edx, dword [ebp - 0x54]
push edx
call fcn.0055215c
add esp, 4
cmp dword [ebp - 0x24], esi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], ebx
mov byte [ebp - 0x54], bl
mov byte [ebp - 4], 4
jb 0x4bed8b
mov eax, dword [ebp - 0x38]
push eax
call fcn.0055215c
add esp, 4
sub esp, 0x1c
mov eax, esp
mov dword [ebp - 0x10], esp
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x596c00
mov dword [ebp + 0x14], eax
call fcn.0040dcb0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push str.restart_ver
mov byte [ebp - 4], 0x36
call fcn.0040dcb0
mov ecx, dword [ebp + 0xc]
lea esi, [ebp - 0x3c]
mov byte [ebp - 4], 0x37
call fcn.004be160
sub esp, 0x1c
mov ecx, esp
mov dword [ebp], esp
push eax
push 0x59a838
push ecx
mov byte [ebp - 4], 0x38
call fcn.00492ed0
add esp, 0xc
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x39
call fcn.004b4420
call fcn.004be090
mov edx, dword [ebp + 0x18]
add esp, 0x1c
fstp qword [edx + 0x5c]
cmp dword [ebp - 0x24], 0x10
mov byte [ebp - 4], 4
jb 0x4bee1c
mov eax, dword [ebp - 0x38]
push eax
call fcn.0055215c
add esp, 4
lea ecx, [ebp - 0x7c]
push ecx
call fcn.004b33f0
or dword [ebp + 0x10], 1
push 0x597698
push eax
lea edx, [ebp - 0x3c]
push edx
mov byte [ebp - 4], 0x3a
call fcn.0040cf70
mov esi, dword [ebp + 0x18]
or dword [ebp + 0x10], 2
lea ecx, [esi + 0x38]
push ecx
push eax
lea eax, [ebp - 0x9c]
push eax
mov dword [ebp - 4], 0x3b
call fcn.0040cec0
or dword [ebp + 0x10], 4
lea ecx, [esi - 0x1c]
push ecx
push eax
lea ecx, [ebp - 0x58]
push ecx
mov dword [ebp - 4], 0x3c
call fcn.0040cec0
or dword [ebp + 0x10], 8
add esp, 0x28
cmp dword [eax + 0x18], 0x10
jb 0x4bee86
mov eax, dword [eax + 4]
jmp 0x4bee89
add eax, 4
cmp eax, ebx
mov dword [ebp + 0x14], eax
jne 0x4bee94
xor eax, eax
jmp 0x4beec9
mov edx, dword [ebp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
add esi, 1
cmp esi, 0x3fffffff
jle 0x4beeaf
xor eax, eax
jmp 0x4beec9
lea eax, [esi + esi]
call fcn.00553150
mov ecx, dword [ebp + 0x14]
mov eax, esp
push 0x3a8
push esi
push ecx
push eax
call fcn.00401140
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4beee6
cmp dword [ebp + 0x7c], ebx
je 0x4beee6
mov edx, dword [ebp + 0x18]
cmp dword [edx - 0x28], 2
mov byte [ebp + 7], 1
jne 0x4beee9
mov byte [ebp + 7], bl
test byte [ebp + 0x10], 8
mov esi, 0x10
je 0x4bef12
and dword [ebp + 0x10], 0xfffffff7
cmp dword [ebp - 0x40], esi
jb 0x4bef09
mov eax, dword [ebp - 0x54]
push eax
call fcn.0055215c
add esp, 4
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], ebx
mov byte [ebp - 0x54], bl
test byte [ebp + 0x10], 4
je 0x4bef45
and dword [ebp + 0x10], 0xfffffffb
cmp dword [ebp - 0x84], esi
jb 0x4bef33
mov ecx, dword [ebp - 0x98]
push ecx
call fcn.0055215c
add esp, 4
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x88], ebx
mov byte [ebp - 0x98], bl
test byte [ebp + 0x10], 2
je 0x4bef69
and dword [ebp + 0x10], 0xfffffffd
cmp dword [ebp - 0x24], esi
jb 0x4bef60
mov edx, dword [ebp - 0x38]
push edx
call fcn.0055215c
add esp, 4
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], ebx
mov byte [ebp - 0x38], bl
test byte [ebp + 0x10], 1
mov dword [ebp - 4], 4
je 0x4bef8b
and dword [ebp + 0x10], 0xfffffffe
cmp dword [ebp - 0x64], esi
jb 0x4bef8b
mov eax, dword [ebp - 0x78]
push eax
call fcn.0055215c
add esp, 4
cmp byte [ebp + 7], bl
je 0x4bef98
fldz
mov ecx, dword [ebp + 0x18]
fstp qword [ecx - 0x24]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x596c00
call fcn.0040dcb0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push str.isSpeciaUpdate
mov byte [ebp - 4], 0x3d
call fcn.0040dcb0
mov ecx, dword [ebp + 0xc]
lea esi, [ebp - 0x7c]
mov byte [ebp - 4], 0x3e
call fcn.004be160
sub esp, 0x1c
mov edx, esp
mov dword [ebp], esp
push eax
push 0x59a838
push edx
mov byte [ebp - 4], 0x3f
call fcn.00492ed0
add esp, 0xc
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x40
call fcn.004b4420
cmp dword [eax + 0x18], 0x10
jb 0x4bf005
mov eax, dword [eax + 4]
jmp 0x4bf008
add eax, 4
push eax
call fcn.00554a20
mov ecx, dword [ebp + 0x18]
mov esi, 0x10
add esp, 4
cmp dword [ebp - 0x24], esi
mov dword [ecx + 0x58], eax
jb 0x4bf02d
mov edx, dword [ebp - 0x38]
push edx
call fcn.0055215c
add esp, 4
cmp dword [ebp - 0x64], esi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], ebx
mov byte [ebp - 0x38], bl
mov byte [ebp - 4], 4
jb 0x4bf04b
mov eax, dword [ebp - 0x78]
push eax
call fcn.0055215c
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x59648b
call fcn.0040dcb0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push 0x59a7f0
mov byte [ebp - 4], 0x41
call fcn.0040dcb0
mov ecx, dword [ebp + 0xc]
lea esi, [ebp - 0x7c]
mov byte [ebp - 4], 0x42
call fcn.004be160
sub esp, 0x1c
mov ecx, esp
mov dword [ebp], esp
push eax
push 0x59a838
push ecx
mov byte [ebp - 4], 0x43
call fcn.00492ed0
add esp, 0xc
lea edx, [ebp - 0x3c]
push edx
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x44
call fcn.004b4420
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push ebx
push eax
add ecx, 0x64
mov byte [ebp - 4], 0x45
call fcn.0040a080
cmp dword [ebp - 0x24], 0x10
jb 0x4bf0d2
mov eax, dword [ebp - 0x38]
push eax
call fcn.0055215c
add esp, 4
cmp dword [ebp - 0x64], 0x10
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], ebx
mov byte [ebp - 0x38], bl
mov byte [ebp - 4], 4
jb 0x4bf0f1
mov ecx, dword [ebp - 0x78]
push ecx
call fcn.0055215c
add esp, 4
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x14]
add dword [ebp + 0x18], 0xb0
add eax, 1
cmp eax, dword [edx + 0x18]
mov dword [ebp + 0xc], eax
jl 0x4be7f5
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 3
call fcn.00431080
mov esi, 0x10
cmp dword [ebp + 0x34], esi
jb 0x4bf12f
mov eax, dword [ebp + 0x20]
push eax
call fcn.0055215c
add esp, 4
cmp dword [ebp + 0x50], esi
mov dword [ebp + 0x34], edi
mov dword [ebp + 0x30], ebx
mov byte [ebp + 0x20], bl
jb 0x4bf149
mov ecx, dword [ebp + 0x3c]
push ecx
call fcn.0055215c
add esp, 4
lea ecx, [ebp - 0x60]
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x4c], ebx
mov byte [ebp + 0x3c], bl
mov byte [ebp - 4], bl
call fcn.004b2ee0
cmp dword [ebp + 0x78], esi
jb 0x4bf16e
mov edx, dword [ebp + 0x64]
push edx
call fcn.0055215c
add esp, 4
lea esp, [ebp - 0xac]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x54]
xor ecx, ebp
call fcn.00552d63
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20