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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd98
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x25c], ecx
mov dword [ebp - 0x264], ecx
mov dword [ebp - 0x268], ecx
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x24c], ecx
mov dword [ebp - 0x254], ecx
mov dword [ebp - 0x258], ecx
mov dword [ebp - 0x250], ecx
mov edi, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x425b53
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.0042d7f0
mov ebx, eax
mov eax, ebx
call fcn.00419fe4
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x104
jl 0x4253ef
mov eax, dword [0x433d18]
mov dword [eax], 0x233f
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x425b35
mov eax, dword [0x433adc]
cmp byte [eax], 0
je 0x42541a
mov edx, 0x425b64
mov ecx, 4
mov eax, ebx
call fcn.00414cb4
test eax, eax
jne 0x42541a
mov eax, 0x425b70
call fcn.0041bd98
mov ebx, eax
lea eax, [ebp - 0x246]
mov ecx, 0x104
xor edx, edx
call fcn.0041a0d8
lea eax, [ebp - 0x246]
mov edx, ebx
call fcn.00419ff4
lea eax, [ebp - 0x246]
mov dx, 0x2f
call fcn.0041e428
mov word [ebp - 0x1e], 0x5c
mov word [ebp - 0x1c], 0x3a
mov word [ebp - 0x1a], 0
lea edx, [ebp - 0x1e]
lea eax, [ebp - 0x246]
call fcn.0041a01c
cmp eax, dword [ebp - 0x28]
setl byte [ebp - 0x31]
mov word [ebp - 0x1c], 0
cmp byte [ebp - 0x31], 0
je 0x4254a6
lea eax, [ebp - 0x246]
mov dx, 0x5c
call fcn.00419f9c
mov ebx, eax
test ebx, ebx
jne 0x4254a1
lea eax, [ebp - 0x246]
mov dx, 0x3a
call fcn.00419f74
mov ebx, eax
add ebx, 2
jmp 0x4254ac
lea ebx, [ebp - 0x246]
test ebx, ebx
je 0x4254d0
mov edx, 0x425b80
mov eax, ebx
call fcn.00414be0
test eax, eax
je 0x4254d0
mov edx, 0x425b84
mov eax, ebx
call fcn.00414be0
test eax, eax
jne 0x42550a
mov eax, dword [0x433adc]
cmp byte [eax], 0
je 0x4254f5
push edi
call sub.kernel32.dll_GetFileAttributesW
cmp eax, 0xffffffff
je 0x4254f5
test al, 0x10
je 0x4254f5
mov dword [ebp - 8], 5
jmp 0x425b35
mov eax, dword [0x433d18]
mov dword [eax], 0x2331
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x425b35
mov eax, 0x410
call fcn.0042bf8c
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x425534
mov eax, dword [0x433d18]
mov dword [eax], 8
mov dword [ebp - 8], 3
jmp 0x425b35
lea edx, [ebp - 0x246]
mov eax, edi
call fcn.00419ff4
mov eax, ebx
call fcn.00406da0
mov esi, eax
lea eax, [ebp - 0x246]
call fcn.00419fe4
cdq
push edx
push eax
mov eax, esi
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov word [edi + eax*2], 0
mov edx, 0x425b80
mov eax, edi
call fcn.0041a008
mov ecx, 0x208
mov edx, edi
mov eax, dword [ebp - 0x14]
call fcn.0041db90
test eax, eax
je 0x4255c4
mov eax, dword [0x433adc]
cmp byte [eax], 0
je 0x4255af
push edi
call sub.kernel32.dll_GetFileAttributesW
cmp eax, 0xffffffff
je 0x4255af
test al, 0x10
je 0x4255af
mov dword [ebp - 8], 5
jmp 0x425b35
mov eax, dword [0x433d18]
mov dword [eax], 0x2331
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x425b35
mov eax, dword [ebp - 0x14]
call fcn.0041a0e8
cmp word [eax], 0x5c
je 0x4255df
mov edx, 0x425b8c
mov eax, dword [ebp - 0x14]
call fcn.0041a008
mov edx, ebx
mov eax, dword [ebp - 0x14]
call fcn.0041a008
mov eax, dword [ebp - 0x14]
call fcn.00419fe4
inc eax
mov edx, eax
add edx, edx
mov eax, dword [ebp - 0x14]
call fcn.0042c038
mov dword [ebp - 0x14], eax
mov dx, 0x5c
mov eax, dword [ebp - 0x14]
call fcn.00419f9c
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov word [eax], 0
add dword [ebp - 0x10], 2
movzx ebx, byte [ebp - 0x31]
xor bl, 1
test bl, bl
je 0x425634
mov eax, 0x425b90
call fcn.0041bd98
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
call fcn.00419fe4
mov esi, eax
add esi, 2
mov eax, dword [ebp - 0x18]
call fcn.00419fe4
add esi, eax
add esi, 2
mov eax, esi
add eax, eax
call fcn.0042bf8c
mov esi, eax
test esi, esi
jne 0x425674
mov eax, dword [0x433d18]
mov dword [eax], 8
mov dword [ebp - 8], 3
jmp 0x425b35
mov edx, 0x425b9c
mov eax, esi
call fcn.0041a008
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.0041a008
mov edx, 0x425b9c
mov eax, esi
call fcn.0041a008
test bl, bl
je 0x4256b0
mov edx, 0x425ba0
mov eax, esi
call fcn.0041a008
mov edx, dword [ebp - 0x18]
mov eax, esi
call fcn.0041a008
mov eax, esi
call fcn.004260ac
mov edx, 0x425ba0
mov ecx, 1
mov eax, esi
call fcn.0042c118
mov esi, eax
mov eax, dword [ebp - 0x10]
call fcn.00419fe4
inc eax
mov dword [ebp - 0x28], eax
mov eax, dword [0x433adc]
cmp byte [eax], 0
je 0x4256ef
mov eax, 0x425ba4
call fcn.0041bd98
mov dword [ebp - 0xc], eax
jmp 0x4256f7
mov eax, 0x425bb4
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
call fcn.004260ac
mov edx, 0x425ba0
mov ecx, 1
mov eax, dword [ebp - 0xc]
call fcn.0042c118
mov dword [ebp - 0xc], eax
mov eax, esi
call fcn.00419fe4
mov dword [ebp - 0x2c], eax
mov eax, esi
call fcn.0042d7f0
mov edx, eax
mov eax, esi
call fcn.00419ff4
mov eax, esi
call fcn.00419fe4
mov dword [ebp - 0x3c], eax
mov eax, esi
call fcn.0041a0e8
cmp word [eax], 0x5c
je 0x425751
mov byte [ebp - 0x32], 1
inc dword [ebp - 0x2c]
inc dword [ebp - 0x3c]
jmp 0x425755
mov byte [ebp - 0x32], 0
cmp word [esi], 0
je 0x42579e
mov eax, dword [ebp - 0x3c]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 0x28]
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
cmp edx, 0
jne 0x42577e
cmp eax, 0x104
jbe 0x42579e
jmp 0x425780
jle 0x42579e
cmp byte [ebp - 0x32], 0
je 0x42578f
mov eax, dword [ebp - 0x2c]
add eax, eax
add esi, eax
jmp 0x425714
mov eax, dword [ebp - 0x2c]
add eax, eax
add esi, eax
add esi, 2
jmp 0x425714
cmp word [esi], 0
jne 0x4257e0
cmp byte [ebp - 0x31], 0
je 0x4257cb
mov eax, dword [0x433d18]
cmp dword [eax], 0
je 0x4257be
mov eax, dword [0x433d18]
cmp dword [eax], 2
jne 0x4257d6
mov eax, dword [0x433d18]
mov dword [eax], 0x2331
jmp 0x4257d6
mov eax, dword [0x433d18]
mov dword [eax], 0x2331
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x425b35
mov edx, esi
mov eax, edi
call fcn.00419ff4
cmp byte [ebp - 0x32], 0
je 0x4257f8
mov eax, dword [ebp - 0x2c]
add eax, eax
add esi, eax
jmp 0x425802
mov eax, dword [ebp - 0x2c]
add eax, eax
add esi, eax
add esi, 2
cmp byte [ebp - 0x32], 0
je 0x425812
lea edx, [ebp - 0x1e]
mov eax, edi
call fcn.0041a008
mov edx, dword [ebp - 0x10]
mov eax, edi
call fcn.0041a008
mov eax, edi
call fcn.0042d7f0
mov edx, eax
mov eax, edi
call fcn.00419ff4
mov eax, edi
call fcn.00419fe4
mov dword [ebp - 0x30], eax
lea eax, [edi + 2]
cmp word [eax], 0x3a
jne 0x42584f
movzx eax, word [edi]
call fcn.0042d6ec
test al, al
je 0x425714
mov dx, 0x2e
mov eax, dword [ebp - 0x10]
call fcn.00419f9c
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x425960
mov eax, dword [ebp - 0x38]
cmp word [eax + 2], 0
je 0x425960
mov dl, 1
mov eax, edi
call fcn.0041e364
test al, al
jne 0x42589b
cmp byte [ebp - 0x31], 0
je 0x425948
mov eax, dword [0x433d18]
cmp dword [eax], 5
jne 0x425948
lea eax, [ebp - 0x250]
call fcn.00419eb0
mov eax, dword [ebp - 0x250]
lea edx, [ebp - 0x24c]
call fcn.00414a2c
mov eax, dword [ebp - 0x24c]
call fcn.00407044
push eax
lea eax, [ebp - 0x258]
mov edx, edi
call fcn.0040709c
mov eax, dword [ebp - 0x258]
lea edx, [ebp - 0x254]
call fcn.00414a2c
mov eax, dword [ebp - 0x254]
call fcn.00407044
pop edx
call fcn.00414c0c
test eax, eax
jne 0x425902
mov dword [ebp - 8], 2
jmp 0x425b35
mov edx, 0x425bdc
mov eax, dword [ebp - 0x38]
call fcn.00414c0c
test eax, eax
jne 0x42591f
mov dword [ebp - 8], 2
jmp 0x425b35
mov edx, 0x425be8
mov eax, dword [ebp - 0x38]
call fcn.00414c0c
test eax, eax
jne 0x42593c
mov dword [ebp - 8], 2
jmp 0x425b35
mov dword [ebp - 8], 1
jmp 0x425b35
mov eax, dword [0x433d18]
cmp dword [eax], 2
je 0x425960
mov eax, dword [0x433d18]
cmp dword [eax], 0
jne 0x425714
mov dx, 0x2a
mov eax, dword [ebp - 0x10]
call fcn.00419f74
test eax, eax
jne 0x425980
mov dx, 0x3f
mov eax, dword [ebp - 0x10]
call fcn.00419f74
test eax, eax
je 0x425995
mov eax, dword [0x433d18]
mov dword [eax], 0x2331
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x425b35
mov ebx, dword [ebp - 0xc]
push 0
mov ecx, 0x425bf4
mov edx, dword [ebp - 0x30]
mov eax, edi
call fcn.00425bfc
test eax, eax
je 0x425ad8
jmp 0x425ace
mov eax, ebx
call fcn.00419fe4
cdq
push edx
push eax
mov eax, dword [ebp - 0x28]
cdq
push edx
push eax
mov eax, dword [ebp - 0x3c]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
cmp edx, 0
jne 0x4259f1
cmp eax, 0x104
ja 0x425ac5
jmp 0x4259f7
jg 0x425ac5
push 1
mov ecx, ebx
mov edx, dword [ebp - 0x30]
mov eax, edi
call fcn.00425bfc
test eax, eax
je 0x425aac
mov edx, 0x425be8
mov eax, ebx
call fcn.00414c0c
test eax, eax
je 0x425a2d
mov edx, 0x425bdc
mov eax, ebx
call fcn.00414c0c
test eax, eax
jne 0x425a39
mov dword [ebp - 8], 2
jmp 0x425b35
lea eax, [ebp - 0x260]
call fcn.00419eb0
mov eax, dword [ebp - 0x260]
lea edx, [ebp - 0x25c]
call fcn.00414a2c
mov eax, dword [ebp - 0x25c]
call fcn.00407044
push eax
lea eax, [ebp - 0x268]
mov edx, edi
call fcn.0040709c
mov eax, dword [ebp - 0x268]
lea edx, [ebp - 0x264]
call fcn.00414a2c
mov eax, dword [ebp - 0x264]
call fcn.00407044
pop edx
call fcn.00414c0c
test eax, eax
jne 0x425aa0
mov dword [ebp - 8], 2
jmp 0x425b35
mov dword [ebp - 8], 1
jmp 0x425b35
mov eax, dword [0x433d18]
cmp dword [eax], 2
je 0x425ac5
mov eax, dword [0x433d18]
cmp dword [eax], 0
jne 0x425ad8
jmp 0x425ac5
add ebx, 2
cmp word [ebx], 0
jne 0x425ac2
add ebx, 2
cmp word [ebx], 0
jne 0x4259b6
mov eax, dword [0x433d18]
cmp dword [eax], 0
je 0x425af0
mov eax, dword [0x433d18]
cmp dword [eax], 2
jne 0x425714
push 1
xor ecx, ecx
mov edx, dword [ebp - 0x30]
mov eax, edi
call fcn.00425bfc
test eax, eax
je 0x425714
lea eax, [ebp - 0x24]
push eax
push edi
call sub.kernel32.dll_GetBinaryTypeW
test eax, eax
je 0x425714
cmp dword [ebp - 0x24], 4
jne 0x425714
mov dword [ebp - 8], 1
jmp 0x425b35
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x425b5a
lea eax, [ebp - 0x268]
mov edx, 8
call fcn.004069e4
ret