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

Disassembly:
push 0xffffffffffffffff
push 0x41aa01
mov eax, dword fs:[0]
push eax
sub esp, 0x2b8
mov eax, dword [0x422060]
xor eax, esp
mov dword [esp + 0x2b0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x422060]
xor eax, esp
push eax
lea eax, [esp + 0x2cc]
mov dword fs:[0], eax
mov eax, dword [esp + 0x2e0]
mov ebp, dword [esp + 0x2dc]
xor ebx, ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2e4]
mov esi, ecx
mov dword [eax], ebx
mov dword [eax + 4], ebx
cmp dword [esi + 0x18], 8
mov dword [esp + 0x24], ebp
mov dword [esp + 0x38], eax
jb 0x405750
mov eax, dword [esi + 4]
jmp 0x405753
lea eax, [esi + 4]
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push eax
call edi
cmp eax, 0xffffffff
je 0x405765
test al, 0x10
je 0x40576f
mov eax, 1
jmp 0x405d2b
cmp dword [ebp + 0x18], 8
lea eax, [ebp + 4]
mov dword [esp + 0x18], eax
jb 0x40577e
mov eax, dword [eax]
push eax
call edi
cmp eax, 0xffffffff
je 0x40578a
test al, 0x10
jne 0x4057a5
cmp dword [ebp + 0x18], 8
jb 0x405798
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
jmp 0x40579c
mov eax, dword [esp + 0x18]
push eax
call fcn.00403df0
add esp, 4
mov ecx, dword [esp + 0x28]
push 0xffffffffffffffff
push ebx
mov eax, ebp
call fcn.00401ba0
mov dword [esp + 0x90], 0xf
mov dword [esp + 0x8c], ebx
mov byte [esp + 0x7c], bl
push ebx
lea edx, [esp + 0x7c]
push edx
push esi
mov dword [esp + 0x2e0], ebx
call fcn.00406aa0
add esp, 0xc
cmp dword [esi + 0x18], 8
lea edi, [esi + 4]
jb 0x4057ec
mov eax, dword [edi]
jmp 0x4057ee
mov eax, edi
push eax
push 0x41d5f8
push 0xc8
push 0x41d630
call fcn.004035b0
add esp, 0x10
cmp dword [esi + 0x18], 8
jb 0x405810
mov eax, dword [edi]
jmp 0x405812
mov eax, edi
push eax
call fcn.0040ae90
mov esi, eax
mov eax, dword [esp + 0x1c]
add esp, 4
cmp dword [ebp + 0x18], 8
mov dword [esp + 0x20], esi
jb 0x40582d
mov eax, dword [eax]
cmp esi, ebx
mov ebp, 0x80000
jne 0x405842
mov dword [0x423fb4], 0x10000
jmp 0x40585c
cmp dword [esi], 1
je 0x40584f
mov dword [0x423fb4], ebp
jmp 0x40585c
mov edi, dword [esi + 4]
call fcn.0040a370
mov dword [0x423fb4], eax
push esi
push 0x41d648
push 0xc8
push 0x41d630
mov dword [esp + 0x2c], ebx
call fcn.004035b0
xor eax, eax
add esp, 0x10
cmp esi, ebx
mov dword [esp + 0x94], eax
mov word [esp + 0x98], bx
mov dword [esp + 0x2c0], ebx
jne 0x4058a3
mov dword [0x423fb4], 0x10000
jmp 0x40592c
cmp dword [esi], 1
je 0x4058b0
mov dword [0x423fb4], ebp
jmp 0x40592c
mov esi, dword [esi + 4]
mov edi, dword [esi]
or ebp, 0xffffffff
cmp dword [edi + 4], ebp
jg 0x4058c4
mov ecx, 0x10000
jmp 0x405926
cmp dword [esi + 4], ebp
je 0x4058ce
call fcn.0040a220
mov ecx, dword [esi]
mov dword [esi + 4], ebp
mov eax, dword [ecx + 4]
mov dword [esp + 0x94], eax
mov word [esp + 0x98], bx
mov dword [esp + 0x2a0], ebx
mov dword [esp + 0x2a4], ebx
mov dword [esp + 0x2a8], ebx
mov dword [esp + 0x2ac], ebx
mov dword [esp + 0x2b0], ebx
mov dword [esp + 0x2b4], ebx
mov dword [esp + 0x2b8], ebx
mov dword [esp + 0x2bc], ebx
mov dword [esp + 0x2c0], ebx
xor ecx, ecx
mov dword [0x423fb4], ecx
push eax
push 0x41d66c
mov esi, eax
push 0xc8
push 0x41d630
mov dword [esp + 0x4c], esi
call fcn.004035b0
add esp, 0x10
xor ebp, ebp
cmp esi, ebx
jle 0x405c15
jmp 0x405960
mov esi, dword [esp + 0x20]
cmp esi, ebx
mov dword [esp + 0x94], ebx
mov word [esp + 0x98], bx
mov dword [esp + 0x2c0], ebx
jne 0x40598a
mov dword [0x423fb4], 0x10000
jmp 0x4059b5
cmp dword [esi], 1
je 0x40599b
mov dword [0x423fb4], 0x80000
jmp 0x4059b5
mov ecx, dword [esi + 4]
lea edx, [esp + 0x94]
push edx
push ebp
call fcn.0040a3f0
cmp eax, ebx
mov dword [0x423fb4], eax
je 0x4059d5
push ebp
push 0x41d698
push 0xc8
push 0x41d630
call fcn.004035b0
add esp, 0x10
mov dword [esp + 0x1c], 1
test byte [esp + 0x2a0], 0x10
je 0x405a97
mov eax, dword [esp + 0x24]
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x48]
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], ebx
mov word [esp + 0x4c], bx
call fcn.00401ba0
lea eax, [esp + 0x98]
mov byte [esp + 0x2d4], 1
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x405a16
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x48]
call fcn.00401c60
lea edi, [esp + 0x40]
call fcn.004048d0
mov eax, dword [esp + 0x44]
mov esi, 8
cmp dword [esp + 0x58], esi
jae 0x405a53
lea eax, [esp + 0x44]
push eax
call fcn.00403df0
add esp, 4
lea ecx, [esp + 0x98]
push ecx
push ebp
push 0x41d6e8
push 0xc8
push 0x41d630
call fcn.004035b0
add esp, 0x14
mov byte [esp + 0x2d4], bl
cmp dword [esp + 0x58], esi
jb 0x405c08
mov edx, dword [esp + 0x44]
push edx
jmp 0x405c00
cmp esi, ebx
jne 0x405aa8
mov esi, 0x10000
mov dword [0x423fb4], esi
jmp 0x405ada
cmp dword [esi], 1
je 0x405aba
mov esi, 0x80000
mov dword [0x423fb4], esi
jmp 0x405ada
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
push ebp
push eax
lea ecx, [esp + 0xa0]
call fcn.0040ab50
cmp eax, ebx
mov dword [0x423fb4], eax
mov esi, eax
je 0x405b26
push esi
lea ecx, [esp + 0x9c]
push ecx
push ebp
push 0x41d760
push 0xc8
push 0x41d630
call fcn.004035b0
add esp, 0x18
cmp esi, 0x6000000
jne 0x405c2c
push 0x41d7e0
push 0xc8
push 0x41d630
call fcn.004035b0
add esp, 0xc
mov dword [esp + 0x1c], 2
lea eax, [esp + 0x98]
mov dword [esp + 0x74], 7
mov dword [esp + 0x70], ebx
mov word [esp + 0x60], bx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x405b41
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x9c]
push edx
lea esi, [esp + 0x64]
call fcn.00405150
mov edi, esi
mov byte [esp + 0x2d4], 2
call fcn.004048d0
mov eax, esi
mov esi, dword [esp + 0x28]
push eax
add esi, 0x1c
call fcn.00405d60
mov edx, dword [esp + 0x24]
mov ecx, edi
push ecx
push edx
lea edi, [esp + 0x48]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
call fcn.00402270
mov eax, dword [esp + 0x4c]
add esp, 8
cmp dword [esp + 0x58], 8
jae 0x405bab
lea eax, [esp + 0x44]
lea esi, [esp + 0x2c]
call fcn.00404770
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
add dword [eax], ecx
mov edx, dword [esp + 0x30]
mov esi, 8
adc dword [eax + 4], edx
cmp dword [esp + 0x58], esi
jb 0x405bdd
mov eax, dword [esp + 0x44]
push eax
call fcn.0040b5a3
add esp, 4
mov byte [esp + 0x2d4], bl
cmp dword [esp + 0x74], esi
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], ebx
mov word [esp + 0x44], bx
jb 0x405c08
mov ecx, dword [esp + 0x60]
push ecx
call fcn.0040b5a3
add esp, 4
add ebp, 1
cmp ebp, dword [esp + 0x3c]
jl 0x405960
mov eax, dword [esp + 0x20]
cmp eax, ebx
jne 0x405c43
mov dword [0x423fb4], 0x10000
jmp 0x405cf5
cmp dword [esp + 0x2c0], ebx
je 0x405b26
mov dword [esp + 0x1c], 1
jmp 0x405c08
cmp dword [eax], 1
je 0x405c57
mov dword [0x423fb4], 0x80000
jmp 0x405cf5
mov esi, dword [eax + 4]
cmp dword [esi + 4], 0xffffffff
je 0x405c67
mov edi, dword [esi]
call fcn.0040a220
mov edi, dword [esi]
cmp edi, ebx
mov dword [esi + 4], 0xffffffff
je 0x405ca5
cmp dword [edi + 0x7c], ebx
je 0x405c7e
call fcn.0040a220
mov ebp, dword [edi]
cmp ebp, ebx
je 0x405c9c
cmp byte [ebp + 0x18], bl
je 0x405c93
mov edx, dword [ebp + 4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebp
call fcn.0040b5a3
add esp, 4
push edi
call fcn.0040cc4d
add esp, 4
mov dword [esi], ebx
mov eax, dword [esi + 0x23c]
cmp eax, ebx
mov dword [0x423fb4], ebx
je 0x405cc0
push eax
call fcn.0040b9bc
add esp, 4
mov eax, dword [esi + 0x240]
cmp eax, ebx
mov dword [esi + 0x23c], ebx
je 0x405cd9
push eax
call fcn.0040b9bc
add esp, 4
push esi
mov dword [esi + 0x240], ebx
call fcn.0040b5a3
mov eax, dword [esp + 0x24]
add esp, 4
push eax
call fcn.0040b5a3
add esp, 4
mov esi, dword [esp + 0x1c]
cmp esi, ebx
je 0x405d12
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x18], 8
mov edx, dword [esp + 0x18]
jb 0x405d0d
mov edx, dword [edx]
call fcn.00403f20
cmp dword [esp + 0x90], 0x10
jb 0x405d29
mov eax, dword [esp + 0x7c]
push eax
call fcn.0040b5a3
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x2cc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2b0]
xor ecx, esp
call fcn.0040b949
add esp, 0x2c4
ret