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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55faa5
mov eax, dword fs:[0]
push eax
sub esp, 0xb34
mov eax, dword [0x5c84bc]
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 dword [ebp - 0x588], 0
mov dword [ebp - 0xad4], 0
mov dword [ebp - 0x578], 0
mov dword [ebp - 0x574], 0xf
mov byte [ebp - 0x588], 0
push 0x400
lea eax, [ebp - 0x510]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.005346b0
mov edx, dword [0x5cdc00]
sub esp, 0xc
mov eax, accept
mov ecx, esp
sub eax, edx
mov dword [ebp - 0xad4], ecx
cmp eax, 0xb
jb 0x40e345
cmp dword [0x5cdc04], 8
mov eax, 0x5cdbf0
push 0xb
cmovae eax, dword [0x5cdbf0]
push str._User32.dll
push edx
push eax
push ecx
push dword [ebp - 0xad4]
call fcn.00404970
lea ecx, [ebp - 0x588]
mov dword [ebp - 0xad8], 2
call fcn.00406ef0
push 0x100
lea eax, [ebp - 0x110]
push 0
push eax
call fcn.005346b0
add esp, 0x24
lea eax, [ebp - 0x110]
cmp dword [ebp - 0x574], 0x10
lea ecx, [ebp - 0x588]
lea edx, [ebp - 0x510]
cmovae ecx, dword [ebp - 0x588]
push eax
call fcn.004142a0
lea ecx, [ebp - 0x510]
add esp, 4
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d9b0
sub ecx, edx
jne 0x40da4e
mov ecx, dword [0x5cdc00]
mov eax, accept
sub eax, ecx
cmp eax, 0xb
jb 0x40e34a
cmp dword [0x5cdc04], 8
mov eax, 0x5cdbf0
push 0xb
cmovae eax, dword [0x5cdbf0]
push str._User32.dll
push ecx
push eax
push ecx
push dword [ebp - 0xad4]
lea ecx, [ebp - 0x528]
call fcn.00404970
cmp dword [ebp - 0x514], 8
lea eax, [ebp - 0x528]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmovae eax, dword [ebp - 0x528]
push eax
mov dword [ebp - 0xad8], 7
call esi
cmp eax, 0xffffffff
je 0x40da4e
cmp dword [ebp - 0x514], 8
lea eax, [ebp - 0x528]
cmovae eax, dword [ebp - 0x528]
push eax
call esi
test al, 0x10
je 0x40da4e
xor bl, bl
jmp 0x40da58
mov bl, 1
test byte [ebp - 0xad8], bl
je 0x40daa3
mov edx, dword [ebp - 0x514]
cmp edx, 8
jb 0x40da98
mov ecx, dword [ebp - 0x528]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40da8e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e34f
push edx
push ecx
call fcn.00532001
add esp, 8
test bl, bl
jne 0x40daa3
xor esi, esi
jmp 0x40e2f1
push 0x400
lea eax, [ebp - 0xa80]
mov dword [ebp - 0xacc], 0
push 0
mov dword [ebp - 0xab0], 0
mov dword [ebp - 0xa98], 0
push eax
mov dword [ebp - method.HttpGet.virtual_0], vtable.HttpGet.0
mov dword [ebp - 0xabc], 0
mov dword [ebp - 0xab8], 0xf
mov byte [ebp - 0xacc], 0
mov dword [ebp - 0xab4], 0
mov dword [ebp - 0xaa0], 0
mov dword [ebp - 0xa9c], 0xf
mov byte [ebp - 0xab0], 0
mov dword [ebp - 0xa88], 0
mov dword [ebp - 0xa84], 0xf
mov byte [ebp - 0xa98], 0
call fcn.005346b0
add esp, 0xc
call fcn.004144b0
mov dword [ebp - 0xab4], eax
push 0x5cdbd8
lea ecx, [ebp - 0x540]
mov byte [ebp - 4], 1
call fcn.00403210
push str._business_BusFile_listUser32
mov edx, eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x5b8]
call fcn.00412030
add esp, 4
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x52c]
cmp edx, 8
jb 0x40dbb8
mov ecx, dword [ebp - 0x540]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40dbae
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e354
push edx
push ecx
call fcn.00532001
add esp, 8
xor eax, eax
mov dword [ebp - 0x530], 0
push eax
lea ecx, [ebp - 0xaf8]
mov dword [ebp - 0x52c], 7
mov word [ebp - 0x540], ax
call fcn.0052ce30
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x540]
push 0
mov dword [ebp - 0x540], 0
push 0x5bbcb8
mov dword [ebp - 0x530], 0
mov dword [ebp - 0x52c], 0xf
mov byte [ebp - 0x540], 0
call fcn.00401530
push ecx
lea eax, [ebp - 0xaf8]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x5b8]
push eax
lea ecx, [ebp - 0xad0]
call fcn.00406180
test al, al
je 0x40e242
push str.result
push str.data
lea ecx, [ebp - 0xaf8]
call fcn.0052d740
mov ecx, eax
call fcn.0052d740
mov ecx, eax
call fcn.0052f4a0
test al, al
je 0x40e23b
push str.result
push str.data
lea ecx, [ebp - 0xaf8]
call fcn.0052d740
mov ecx, eax
call fcn.0052d740
push eax
lea ecx, [ebp - 0xb28]
call fcn.0052cbd0
push str.result
xor ebx, ebx
mov byte [ebp - 4], 7
push str.data
lea ecx, [ebp - 0xaf8]
mov dword [ebp - 0xad8], ebx
call fcn.0052d740
mov ecx, eax
call fcn.0052d740
mov ecx, eax
call fcn.0052fbc0
test eax, eax
je 0x40e230
nop dword [eax]
push ebx
lea ecx, [ebp - 0xb28]
call fcn.0052d430
push eax
lea ecx, [ebp - 0xb10]
call fcn.0052cbd0
push str.fileHash
lea ecx, [ebp - 0xb10]
mov byte [ebp - 4], 8
call fcn.0052d740
mov ecx, eax
call fcn.0052e360
mov edx, eax
mov dword [ebp - 0x528], 0
mov ecx, edx
mov dword [ebp - 0x518], 0
mov dword [ebp - 0x514], 0xf
mov byte [ebp - 0x528], 0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40dd30
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x528]
call fcn.00401530
push str.fileName
lea ecx, [ebp - 0xb10]
mov byte [ebp - 4], 9
call fcn.0052d740
mov ecx, eax
call fcn.0052e360
mov edx, eax
mov dword [ebp - 0x570], 0
mov ecx, edx
mov dword [ebp - 0x560], 0
mov dword [ebp - 0x55c], 0xf
mov byte [ebp - 0x570], 0
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40dd90
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x570]
call fcn.00401530
lea ecx, [ebp - 0x510]
mov byte [ebp - 4], 0xa
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ddb3
mov eax, dword [ebp - 0x528]
lea esi, [ebp - 0x510]
mov ebx, dword [ebp - 0x518]
sub ecx, edx
cmp dword [ebp - 0x514], 0x10
lea edx, [ebp - 0x528]
mov edi, ebx
mov dword [ebp - 0xad4], eax
cmovae edx, eax
cmp ecx, ebx
cmovb edi, ecx
sub edi, 4
jb 0x40de01
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x40de06
add edx, 4
add esi, 4
sub edi, 4
jae 0x40ddf0
cmp edi, 0xfffffffc
je 0x40de3a
mov al, byte [edx]
cmp al, byte [esi]
jne 0x40de33
cmp edi, 0xfffffffd
je 0x40de3a
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x40de33
cmp edi, 0xfffffffe
je 0x40de3a
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x40de33
cmp edi, 0xffffffff
je 0x40de3a
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x40de3a
sbb eax, eax
or eax, 1
jmp 0x40de3c
xor eax, eax
mov edx, dword [ebp - 0x570]
mov dword [ebp - 0xadc], edx
test eax, eax
jne 0x40de56
cmp ebx, ecx
jb 0x40de56
jbe 0x40e16f
cmp dword [ebp - 0x55c], 0x10
lea ecx, [ebp - 0x570]
mov edi, dword [ebp - 0x560]
mov ebx, 0xa
cmovae ecx, edx
mov esi, edi
cmp edi, 0xa
mov edx, str.User32.dll
cmova esi, ebx
sub esi, 4
jb 0x40de94
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40de99
add ecx, 4
add edx, 4
sub esi, 4
jae 0x40de83
cmp esi, 0xfffffffc
je 0x40decd
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x40dec6
cmp esi, 0xfffffffd
je 0x40decd
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x40dec6
cmp esi, 0xfffffffe
je 0x40decd
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x40dec6
cmp esi, 0xffffffff
je 0x40decd
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x40decd
sbb eax, eax
or eax, 1
jmp 0x40decf
xor eax, eax
test eax, eax
jne 0x40e169
cmp ebx, edi
jbe 0x40dee0
or eax, 0xffffffff
jmp 0x40dee4
sbb eax, eax
neg eax
test eax, eax
jne 0x40e169
mov ebx, dword [ebp - 0xad8]
lea ecx, [ebp - 0xb28]
push ebx
call fcn.0052d430
push eax
lea ecx, [ebp - 0xb40]
call fcn.0052cbd0
push str.filePath
lea ecx, [ebp - 0xb40]
mov byte [ebp - 4], 0xb
call fcn.0052d740
mov ecx, eax
call fcn.0052e360
mov edx, eax
mov dword [ebp - 0x558], 0
mov ecx, edx
mov dword [ebp - 0x548], 0
mov dword [ebp - 0x544], 0xf
mov byte [ebp - 0x558], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40df51
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x558]
call fcn.00401530
xor eax, eax
mov dword [ebp - 0x5a0], 0
mov dword [ebp - 0x590], 0
mov dword [ebp - 0x58c], 7
mov word [ebp - 0x5a0], ax
mov byte [ebp - 4], 0xd
mov eax, accept
mov ecx, dword [0x5cdc00]
sub eax, ecx
cmp eax, 0xb
jb 0x40e345
cmp dword [0x5cdc04], 8
mov eax, 0x5cdbf0
push 0xb
cmovae eax, dword [0x5cdbf0]
push str._User32.dll
push ecx
push eax
push ecx
push dword [ebp - 0xad4]
lea ecx, [ebp - 0x5e8]
call fcn.00404970
mov byte [ebp - 4], 0xe
lea edx, [ebp - 0x558]
cmp dword [ebp - 0x544], 0x10
lea ecx, [ebp - 0x5d0]
cmovae edx, dword [ebp - 0x558]
call fcn.00406810
lea ecx, [ebp - 0x5a0]
mov byte [ebp - 4], 0xf
push ecx
push ecx
lea ecx, [ebp - 0x5e8]
push ecx
push eax
lea ecx, [ebp - 0x680]
call fcn.00404c20
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x5bc]
cmp edx, 8
jb 0x40e05c
mov ecx, dword [ebp - 0x5d0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40e052
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e34f
push edx
push ecx
call fcn.00532001
add esp, 8
xor eax, eax
mov dword [ebp - 0x5c0], 0
mov dword [ebp - 0x5bc], 7
mov word [ebp - 0x5d0], ax
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x5d4]
cmp edx, 8
jb 0x40e0bd
mov ecx, dword [ebp - 0x5e8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40e0b3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e34f
push edx
push ecx
call fcn.00532001
add esp, 8
push ecx
lea ecx, [ebp - 0x680]
call fcn.004050e0
lea ecx, [ebp - 0x680]
call fcn.00404d80
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x58c]
cmp edx, 8
jb 0x40e118
mov ecx, dword [ebp - 0x5a0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40e10e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e34f
push edx
push ecx
call fcn.00532001
add esp, 8
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x544]
cmp edx, 0x10
jb 0x40e156
mov ecx, dword [ebp - 0x558]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e14c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e34f
push edx
push ecx
call fcn.00532001
add esp, 8
lea ecx, [ebp - 0xb40]
call fcn.0052d1c0
mov edx, dword [ebp - 0xadc]
jmp 0x40e175
mov edx, dword [ebp - 0xadc]
mov ebx, dword [ebp - 0xad8]
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x55c]
cmp eax, 0x10
jb 0x40e1af
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x40e1a5
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e34f
push ecx
push edx
call fcn.00532001
add esp, 8
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x514]
cmp eax, 0x10
jb 0x40e1ef
mov edx, dword [ebp - 0xad4]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x40e1e5
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e34f
push ecx
push edx
call fcn.00532001
add esp, 8
lea ecx, [ebp - 0xb10]
mov byte [ebp - 4], 7
call fcn.0052d1c0
push str.result
inc ebx
lea ecx, [ebp - 0xaf8]
push str.data
mov dword [ebp - 0xad8], ebx
call fcn.0052d740
mov ecx, eax
call fcn.0052d740
mov ecx, eax
call fcn.0052fbc0
cmp ebx, eax
jb 0x40dcd0
lea ecx, [ebp - 0xb28]
call fcn.0052d1c0
mov esi, 1
jmp 0x40e244
xor esi, esi
mov edx, dword [ebp - 0x52c]
cmp edx, 0x10
jb 0x40e27e
mov ecx, dword [ebp - 0x540]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e274
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e359
push edx
push ecx
call fcn.00532001
add esp, 8
lea ecx, [ebp - 0xaf8]
call fcn.0052d1c0
mov edx, dword [ebp - 0x5a4]
cmp edx, 8
jb 0x40e2c9
mov ecx, dword [ebp - 0x5b8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40e2bf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e359
push edx
push ecx
call fcn.00532001
add esp, 8
xor eax, eax
mov dword [ebp - 0x5a8], 0
lea ecx, [ebp - 0xad0]
mov dword [ebp - 0x5a4], 7
mov word [ebp - 0x5b8], ax
call fcn.00406090
mov edx, dword [ebp - 0x574]
cmp edx, 0x10
jb 0x40e327
mov ecx, dword [ebp - 0x588]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e31d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e35e
push edx
push ecx
call fcn.00532001
add esp, 8
mov eax, esi
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.00531ff3
mov esp, ebp
pop ebp
ret
call fcn.00401220
call fcn.00401220
call fcn.005375cf
call fcn.005375cf
call fcn.005375cf
call fcn.005375cf
int3