Function at 0x42666c
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffcfc
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x2f8], ecx
mov dword [ebp - 0x300], ecx
mov dword [ebp - 0x304], ecx
mov dword [ebp - 0x2fc], ecx
mov dword [ebp - 0x2e8], ecx
mov dword [ebp - 0x2f0], ecx
mov dword [ebp - 0x2f4], ecx
mov dword [ebp - 0x2ec], ecx
mov edi, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4270b4
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.0042bd58
mov esi, eax
test esi, esi
je 0x4266e9
mov dword [ebp - 0x44], esi
mov eax, dword [ebp - 0x44]
call fcn.00406ea8
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x40], eax
jmp 0x4266ee
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x104
jl 0x426712
mov eax, dword [0x458938]
mov dword [eax], 0x233f
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x427096
mov eax, dword [0x4586c0]
cmp byte [eax], 0
je 0x42673d
mov edx, 0x4270c8
mov ecx, 4
mov eax, esi
call fcn.004152ac
test eax, eax
jne 0x42673d
mov eax, 0x4270d4
call fcn.00422a4c
mov esi, eax
lea eax, [ebp - 0x2e2]
mov ecx, 0x104
xor edx, edx
call fcn.0041c44c
lea eax, [ebp - 0x2e2]
mov edx, esi
call fcn.0041c338
lea eax, [ebp - 0x2e2]
mov dx, 0x2f
call fcn.00424ed8
mov word [ebp - 0x1a], 0x5c
mov word [ebp - 0x18], 0x3a
mov word [ebp - 0x16], 0
lea edx, [ebp - 0x1a]
lea eax, [ebp - 0x2e2]
call fcn.0041c360
cmp eax, dword [ebp - 0x24]
setl byte [ebp - 0x2d]
mov word [ebp - 0x18], 0
cmp byte [ebp - 0x2d], 0
je 0x4267f3
lea eax, [ebp - 0x2e2]
mov dx, 0x5c
call fcn.0041c2e0
mov esi, eax
test esi, esi
jne 0x4267ee
xor eax, eax
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x2e2]
test eax, eax
je 0x4267eb
lea eax, [ebp - 0x2e2]
mov dword [ebp - 0x50], eax
jmp 0x4267e2
mov eax, dword [ebp - 0x50]
cmp word [eax], 0x3a
jne 0x4267de
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x4c], eax
jmp 0x4267eb
add dword [ebp - 0x50], 2
mov eax, dword [ebp - 0x50]
cmp word [eax], 0
jne 0x4267cd
mov esi, dword [ebp - 0x4c]
add esi, 2
jmp 0x4267f9
lea esi, [ebp - 0x2e2]
test esi, esi
je 0x42681d
mov edx, 0x4270e4
mov eax, esi
call fcn.004151d8
test eax, eax
je 0x42681d
mov edx, 0x4270e8
mov eax, esi
call fcn.004151d8
test eax, eax
jne 0x42685d
mov eax, dword [0x4586c0]
cmp byte [eax], 0
je 0x426848
push edi
call sub.kernel32.dll_GetFileAttributesW
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0xffffffff
je 0x426848
test byte [ebp - 0x3c], 0x10
je 0x426848
mov dword [ebp - 8], 5
jmp 0x427096
mov eax, dword [0x458938]
mov dword [eax], 0x2331
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x427096
mov eax, 0x410
call fcn.0041cae4
mov ebx, eax
test ebx, ebx
jne 0x426884
mov eax, dword [0x458938]
mov dword [eax], 8
mov dword [ebp - 8], 3
jmp 0x427096
lea edx, [ebp - 0x2e2]
mov eax, edi
call fcn.0041c338
lea eax, [ebp - 0x2e2]
test eax, eax
je 0x4268b7
lea eax, [ebp - 0x2e2]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
call fcn.00406ea8
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x54], eax
jmp 0x4268bc
xor eax, eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x60], esi
mov eax, dword [ebp - 0x60]
call fcn.00406ea8
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x54]
cdq
push edx
push eax
mov eax, dword [ebp - 0x64]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov word [edi + eax*2], 0
mov edx, 0x4270e4
mov eax, edi
call fcn.0041c34c
mov ecx, 0x208
mov edx, edi
mov eax, ebx
call fcn.004245b0
test eax, eax
je 0x426942
mov eax, dword [0x4586c0]
cmp byte [eax], 0
je 0x42692d
push edi
call sub.kernel32.dll_GetFileAttributesW
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0xffffffff
je 0x42692d
test byte [ebp - 0x3c], 0x10
je 0x42692d
mov dword [ebp - 8], 5
jmp 0x427096
mov eax, dword [0x458938]
mov dword [eax], 0x2331
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x427096
mov eax, ebx
call fcn.0041c45c
cmp word [eax], 0x5c
je 0x42695b
mov edx, 0x4270f0
mov eax, ebx
call fcn.0041c34c
mov edx, esi
mov eax, ebx
call fcn.0041c34c
test ebx, ebx
je 0x42697e
mov dword [ebp - 0x6c], ebx
mov eax, dword [ebp - 0x6c]
call fcn.00406ea8
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x68], eax
jmp 0x426983
xor eax, eax
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
inc eax
mov edx, eax
add edx, edx
mov eax, ebx
call fcn.0041cb90
mov ebx, eax
mov dx, 0x5c
mov eax, ebx
call fcn.0041c2e0
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov word [eax], 0
add dword [ebp - 0x10], 2
movzx eax, byte [ebp - 0x2d]
xor al, 1
test al, al
je 0x4269c5
mov eax, 0x4270f4
call fcn.00422a4c
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x4269df
mov dword [ebp - 0x78], ebx
mov eax, dword [ebp - 0x78]
call fcn.00406ea8
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x74], eax
jmp 0x4269e4
xor eax, eax
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x14], 0
je 0x426a0f
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
call fcn.00406ea8
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x80], eax
jmp 0x426a14
xor eax, eax
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x74]
add eax, 2
add eax, dword [ebp - 0x80]
add eax, 2
add eax, eax
call fcn.0041cae4
mov esi, eax
test esi, esi
jne 0x426a44
mov eax, dword [0x458938]
mov dword [eax], 8
mov dword [ebp - 8], 3
jmp 0x427096
mov edx, 0x427100
mov eax, esi
call fcn.0041c34c
mov edx, ebx
mov eax, esi
call fcn.0041c34c
mov edx, 0x427100
mov eax, esi
call fcn.0041c34c
movzx eax, byte [ebp - 0x2d]
xor al, 1
test al, al
je 0x426a85
mov edx, 0x427104
mov eax, esi
call fcn.0041c34c
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.0041c34c
mov eax, esi
call fcn.00427610
mov edx, 0x427104
mov ecx, 1
mov eax, esi
call fcn.0042516c
mov esi, eax
cmp dword [ebp - 0x10], 0
je 0x426acd
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x90]
call fcn.00406ea8
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x8c], eax
jmp 0x426ad5
xor eax, eax
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [0x4586c0]
cmp byte [eax], 0
je 0x426af8
mov eax, 0x427108
call fcn.00422a4c
mov dword [ebp - 0xc], eax
jmp 0x426b00
mov eax, 0x427118
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
call fcn.00427610
mov edx, 0x427104
mov ecx, 1
mov eax, dword [ebp - 0xc]
call fcn.0042516c
mov dword [ebp - 0xc], eax
test esi, esi
je 0x426b46
mov dword [ebp - 0x9c], esi
mov eax, dword [ebp - 0x9c]
call fcn.00406ea8
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x98], eax
jmp 0x426b4e
xor eax, eax
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x28], eax
mov eax, esi
call fcn.0042bd58
mov edx, eax
mov eax, esi
call fcn.0041c338
test esi, esi
je 0x426b90
mov dword [ebp - 0xa8], esi
mov eax, dword [ebp - 0xa8]
call fcn.00406ea8
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xa4], eax
jmp 0x426b98
xor eax, eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x38], eax
mov eax, esi
call fcn.0041c45c
cmp word [eax], 0x5c
je 0x426bba
mov byte [ebp - 0x2e], 1
inc dword [ebp - 0x28]
inc dword [ebp - 0x38]
jmp 0x426bbe
mov byte [ebp - 0x2e], 0
cmp word [esi], 0
je 0x426c0a
mov eax, dword [ebp - 0x38]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 0x24]
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
cmp edx, 0
jne 0x426be7
cmp eax, 0x104
jbe 0x426c0a
jmp 0x426be9
jle 0x426c0a
cmp byte [ebp - 0x2e], 0
je 0x426bfb
mov eax, dword [ebp - 0x28]
add eax, eax
add esi, eax
jmp 0x426b1d
mov eax, dword [ebp - 0x28]
add eax, eax
add esi, eax
add esi, 2
jmp 0x426b1d
cmp word [esi], 0
jne 0x426c4c
cmp byte [ebp - 0x2d], 0
je 0x426c37
mov eax, dword [0x458938]
cmp dword [eax], 0
je 0x426c2a
mov eax, dword [0x458938]
cmp dword [eax], 2
jne 0x426c42
mov eax, dword [0x458938]
mov dword [eax], 0x2331
jmp 0x426c42
mov eax, dword [0x458938]
mov dword [eax], 0x2331
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x427096
mov edx, esi
mov eax, edi
call fcn.0041c338
cmp byte [ebp - 0x2e], 0
je 0x426c64
mov eax, dword [ebp - 0x28]
add eax, eax
add esi, eax
jmp 0x426c6e
mov eax, dword [ebp - 0x28]
add eax, eax
add esi, eax
add esi, 2
cmp byte [ebp - 0x2e], 0
je 0x426c7e
lea edx, [ebp - 0x1a]
mov eax, edi
call fcn.0041c34c
mov edx, dword [ebp - 0x10]
mov eax, edi
call fcn.0041c34c
mov eax, edi
call fcn.0042bd58
mov edx, eax
mov eax, edi
call fcn.0041c338
test edi, edi
je 0x426cc1
mov dword [ebp - 0xb4], edi
mov eax, dword [ebp - 0xb4]
call fcn.00406ea8
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xb0], eax
jmp 0x426cc9
xor eax, eax
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x2c], eax
lea eax, [edi + 2]
cmp word [eax], 0x3a
jne 0x426ceb
movzx eax, word [edi]
call fcn.0042bc54
test al, al
je 0x426b1d
mov dx, 0x2e
mov eax, dword [ebp - 0x10]
call fcn.0041c2e0
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x426dfc
mov eax, dword [ebp - 0x34]
cmp word [eax + 2], 0
je 0x426dfc
mov dl, 1
mov eax, edi
call fcn.00424ddc
test al, al
jne 0x426d37
cmp byte [ebp - 0x2d], 0
je 0x426de4
mov eax, dword [0x458938]
cmp dword [eax], 5
jne 0x426de4
lea eax, [ebp - 0x2ec]
call fcn.0041c1f4
mov eax, dword [ebp - 0x2ec]
lea edx, [ebp - 0x2e8]
call fcn.00414fc8
mov eax, dword [ebp - 0x2e8]
call fcn.00407508
push eax
lea eax, [ebp - 0x2f4]
mov edx, edi
call fcn.00407570
mov eax, dword [ebp - 0x2f4]
lea edx, [ebp - 0x2f0]
call fcn.00414fc8
mov eax, dword [ebp - 0x2f0]
call fcn.00407508
pop edx
call fcn.00415204
test eax, eax
jne 0x426d9e
mov dword [ebp - 8], 2
jmp 0x427096
mov edx, 0x427140
mov eax, dword [ebp - 0x34]
call fcn.00415204
test eax, eax
jne 0x426dbb
mov dword [ebp - 8], 2
jmp 0x427096
mov edx, 0x42714c
mov eax, dword [ebp - 0x34]
call fcn.00415204
test eax, eax
jne 0x426dd8
mov dword [ebp - 8], 2
jmp 0x427096
mov dword [ebp - 8], 1
jmp 0x427096
mov eax, dword [0x458938]
cmp dword [eax], 2
je 0x426dfc
mov eax, dword [0x458938]
cmp dword [eax], 0
jne 0x426b1d
xor eax, eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0x10], 0
je 0x426e42
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc0], eax
jmp 0x426e36
mov eax, dword [ebp - 0xc0]
cmp word [eax], 0x2a
jne 0x426e2f
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xbc], eax
jmp 0x426e42
add dword [ebp - 0xc0], 2
mov eax, dword [ebp - 0xc0]
cmp word [eax], 0
jne 0x426e15
cmp dword [ebp - 0xbc], 0
je 0x426e54
mov byte [ebp - 0xc9], 1
jmp 0x426ea8
xor eax, eax
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0x10], 0
je 0x426e9a
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc8], eax
jmp 0x426e8e
mov eax, dword [ebp - 0xc8]
cmp word [eax], 0x3f
jne 0x426e87
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xc4], eax
jmp 0x426e9a
add dword [ebp - 0xc8], 2
mov eax, dword [ebp - 0xc8]
cmp word [eax], 0
jne 0x426e6d
cmp dword [ebp - 0xc4], 0
setne byte [ebp - 0xc9]
cmp byte [ebp - 0xc9], 0
je 0x426ec6
mov eax, dword [0x458938]
mov dword [eax], 0x2331
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x427096
mov ebx, dword [ebp - 0xc]
push 0
mov ecx, 0x427158
mov edx, dword [ebp - 0x2c]
mov eax, edi
call fcn.00427160
test eax, eax
je 0x427039
jmp 0x42702f
test ebx, ebx
je 0x426f10
mov dword [ebp - 0xd4], ebx
mov eax, dword [ebp - 0xd4]
call fcn.00406ea8
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xd0], eax
jmp 0x426f18
xor eax, eax
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x24]
cdq
push edx
push eax
mov eax, dword [ebp - 0x38]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 0xd0]
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
cmp edx, 0
jne 0x426f52
cmp eax, 0x104
ja 0x427026
jmp 0x426f58
jg 0x427026
push 1
mov ecx, ebx
mov edx, dword [ebp - 0x2c]
mov eax, edi
call fcn.00427160
test eax, eax
je 0x42700d
mov edx, 0x42714c
mov eax, ebx
call fcn.00415204
test eax, eax
je 0x426f8e
mov edx, 0x427140
mov eax, ebx
call fcn.00415204
test eax, eax
jne 0x426f9a
mov dword [ebp - 8], 2
jmp 0x427096
lea eax, [ebp - 0x2fc]
call fcn.0041c1f4
mov eax, dword [ebp - 0x2fc]
lea edx, [ebp - 0x2f8]
call fcn.00414fc8
mov eax, dword [ebp - 0x2f8]
call fcn.00407508
push eax
lea eax, [ebp - 0x304]
mov edx, edi
call fcn.00407570
mov eax, dword [ebp - 0x304]
lea edx, [ebp - 0x300]
call fcn.00414fc8
mov eax, dword [ebp - 0x300]
call fcn.00407508
pop edx
call fcn.00415204
test eax, eax
jne 0x427001
mov dword [ebp - 8], 2
jmp 0x427096
mov dword [ebp - 8], 1
jmp 0x427096
mov eax, dword [0x458938]
cmp dword [eax], 2
je 0x427026
mov eax, dword [0x458938]
cmp dword [eax], 0
jne 0x427039
jmp 0x427026
add ebx, 2
cmp word [ebx], 0
jne 0x427023
add ebx, 2
cmp word [ebx], 0
jne 0x426ee7
mov eax, dword [0x458938]
cmp dword [eax], 0
je 0x427051
mov eax, dword [0x458938]
cmp dword [eax], 2
jne 0x426b1d
push 1
xor ecx, ecx
mov edx, dword [ebp - 0x2c]
mov eax, edi
call fcn.00427160
test eax, eax
je 0x426b1d
lea eax, [ebp - 0x20]
push eax
push edi
call sub.kernel32.dll_GetBinaryTypeW
test eax, eax
je 0x426b1d
cmp dword [ebp - 0x20], 4
jne 0x426b1d
mov dword [ebp - 8], 1
jmp 0x427096
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4270bb
lea eax, [ebp - 0x304]
mov edx, 8
call fcn.00406a1c
ret