Function at 0x420cd0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cb43b
mov eax, dword fs:[0]
push eax
mov eax, 0x2c24
call fcn.004a1410
mov eax, dword [0x4f6cdc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
push 0x3fe
mov dword [ebp - 0x2c30], ecx
xor ebx, ebx
lea ecx, [ebp - 0x40e]
xor eax, eax
push ebx
push ecx
mov dword [ebp - 0x2c18], esi
mov word [ebp - 0x410], ax
call fcn.0049eae0
add esp, 0xc
cmp esi, ebx
je 0x420f85
lea ecx, [ebp - 0x2c2c]
call fcn.00404470
mov eax, esi
mov dword [ebp - 4], ebx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x420d50
sub eax, edx
sar eax, 1
jne 0x420de9
push 0xa
lea eax, [ebp - 0x2c10]
push eax
lea ecx, [ebp - 0x410]
push ecx
lea ecx, [ebp - 0x2c2c]
call fcn.00403bc0
cmp eax, 1
jl 0x420f2f
lea ecx, [ebp - 0x410]
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x420d92
sub ecx, esi
sar ecx, 1
je 0x420f2f
mov edx, str.MERGE
lea ecx, [ebp - 0x410]
mov si, word [ecx]
cmp si, word [edx]
jne 0x420f26
test si, si
je 0x420ddc
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x420f26
add ecx, 4
add edx, 4
test si, si
jne 0x420db2
xor ecx, ecx
jmp 0x420f2b
mov esi, dword [ebp - 0x2c18]
movzx edx, word [esi + ebx*2]
push edx
call fcn.004a178d
mov ecx, dword [ebp - 0x2c28]
mov edx, dword [ebp - 0x2c2c]
movzx edi, ax
lea eax, [ebp - 0x2c14]
add esp, 4
mov dword [ebp - 0x2c14], edi
cmp eax, ecx
jae 0x420e8d
cmp edx, eax
ja 0x420e8d
mov esi, dword [ebp - 0x2c24]
mov edi, eax
sub edi, edx
sar edi, 1
cmp ecx, esi
jne 0x420e80
mov eax, ecx
sub eax, edx
sar eax, 1
cmp eax, 0x7ffffffe
ja 0x420f1c
sub esi, edx
inc eax
sar esi, 1
cmp eax, esi
jbe 0x420e80
mov ecx, esi
mov edx, ecx
shr edx, 1
mov esi, SysReAllocString
sub esi, edx
cmp esi, ecx
jae 0x420e60
xor ecx, ecx
jmp 0x420e62
add ecx, edx
cmp ecx, eax
jae 0x420e68
mov ecx, eax
push ecx
lea ecx, [ebp - 0x2c2c]
call fcn.00416f90
mov ecx, dword [ebp - 0x2c28]
mov edx, dword [ebp - 0x2c2c]
test ecx, ecx
je 0x420eed
mov dx, word [edx + edi*2]
mov word [ecx], dx
jmp 0x420ee7
mov esi, dword [ebp - 0x2c24]
cmp ecx, esi
jne 0x420ee0
mov eax, ecx
sub eax, edx
sar eax, 1
cmp eax, 0x7ffffffe
ja 0x420f1c
sub esi, edx
mov edx, esi
inc eax
sar edx, 1
cmp eax, edx
jbe 0x420ee0
mov ecx, edx
shr edx, 1
mov esi, SysReAllocString
sub esi, edx
cmp esi, ecx
jae 0x420ec6
xor ecx, ecx
jmp 0x420ec8
add ecx, edx
cmp ecx, eax
jae 0x420ece
mov ecx, eax
push ecx
lea ecx, [ebp - 0x2c2c]
call fcn.00416f90
mov ecx, dword [ebp - 0x2c28]
test ecx, ecx
je 0x420eed
mov word [ecx], di
mov ecx, dword [ebp - 0x2c28]
mov eax, dword [ebp - 0x2c18]
add ecx, 2
mov dword [ebp - 0x2c28], ecx
inc ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x420f00
sub eax, edx
sar eax, 1
cmp ebx, eax
jb 0x420de3
jmp 0x420d65
push str.vector_T__too_long
call fcn.004c82d5
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x420f39
test eax, eax
jns 0x420d65
jmp 0x420f73
lea edx, [ebp - 0x2c10]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x420f73
mov edx, dword [ebp - 0x2c30]
lea eax, [ebp - 0x2c10]
mov ecx, eax
sub edx, ecx
jmp 0x420f60
movzx ecx, word [eax]
mov word [edx + eax + 0x408], cx
add eax, 2
test cx, cx
jne 0x420f60
lea ecx, [ebp - 0x2c2c]
mov dword [ebp - 4], 0xffffffff
call fcn.00404480
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049f71b
mov esp, ebp
pop ebp
ret 4