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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xd
push 0
push 0
dec ecx
jne 0x43d740
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405a28
xor eax, eax
push ebp
push 0x43dcb9
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1c], 0
jne 0x43d794
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.0043c708
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
add eax, 0x1c
call fcn.00405640
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x24]
mov eax, dword [ebp + 8]
push eax
lea edx, [ebp - 0xc]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
call fcn.0043cd84
pop ecx
test al, al
je 0x43dc74
xor ecx, ecx
mov edx, 0x43dcd4
mov eax, dword [ebp - 0xc]
call fcn.0043d0b0
test al, al
je 0x43dc6b
lea eax, [ebp - 0xd]
push eax
lea eax, [ebp - 0x1c]
call fcn.0042d1fc
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x18]
mov edx, 0x43dce0
call fcn.004058c0
mov edx, dword [ebp - 0x18]
mov ecx, 0x43dcf0
mov eax, dword [ebp - 0xc]
call fcn.0043d340
test al, al
jne 0x43d828
push 0
lea eax, [ebp - 0x24]
call fcn.0042d1fc
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x20]
mov edx, 0x43dcfc
call fcn.004058c0
mov edx, dword [ebp - 0x20]
mov ecx, 0x43dcf0
mov eax, dword [ebp - 0xc]
call fcn.0043d340
test al, al
je 0x43dc6b
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x24]
mov eax, dword [ebp + 8]
cmp dword [eax - 4], 0
jne 0x43d84c
mov eax, dword [ebp + 8]
add eax, 0xfffffffc
mov edx, dword [ebp - 4]
call fcn.00405640
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 0
jne 0x43d85e
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 0
je 0x43d8d4
cmp byte [ebp - 0xd], 0
je 0x43dc48
push 0
mov ecx, 0x43dd0c
mov edx, 0x43dd18
mov eax, dword [ebp - 0xc]
call fcn.0043d340
test al, al
je 0x43dc48
push 0
lea edx, [ebp - 0x28]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.00415b2c
mov edx, dword [ebp - 0x28]
mov ecx, 0x43dd0c
mov eax, dword [ebp - 0xc]
call fcn.0043d340
test al, al
je 0x43dc48
push 0
lea edx, [ebp - 0x2c]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
call fcn.00415b2c
mov edx, dword [ebp - 0x2c]
mov ecx, 0x43dd2c
mov eax, dword [ebp - 0xc]
call fcn.0043d340
test al, al
je 0x43dc48
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x24]
cmp dword [0x5bc3bc], 0
je 0x43d8fa
lea eax, [ebp - 8]
mov edx, dword [0x5bc3bc]
call fcn.00405640
jmp 0x43d90a
lea ecx, [ebp - 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
xor edx, edx
call fcn.0043aa40
push 0
lea eax, [ebp - 0x30]
mov ecx, dword [ebp - 8]
mov edx, 0x43dd38
call fcn.004058c0
mov edx, dword [ebp - 0x30]
mov ecx, 0x43dcf0
mov eax, dword [ebp - 0xc]
call fcn.0043d340
test al, al
je 0x43dc48
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x24]
mov byte [ebp - 0xe], 0
lea eax, [ebp - 4]
call fcn.0043a9fc
mov esi, eax
test esi, esi
jle 0x43d9a1
mov edi, 1
push 0
lea eax, [ebp - 0x3c]
push eax
mov cl, 0x2c
mov edx, edi
mov eax, dword [ebp - 4]
call fcn.00412b74
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x38]
xor edx, edx
call fcn.0043aa40
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x34]
mov edx, 0x43dd4c
call fcn.004058c0
mov edx, dword [ebp - 0x34]
mov ecx, 0x43dcf0
mov eax, dword [ebp - 0xc]
call fcn.0043d340
or al, byte [ebp - 0xe]
mov byte [ebp - 0xe], al
inc edi
dec esi
jne 0x43d958
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x24]
cmp byte [ebp - 0xe], 0
je 0x43dc48
mov eax, dword [ebp + 8]
cmp dword [eax + 0x34], 0
jne 0x43d9ce
mov eax, dword [ebp + 8]
cmp dword [eax + 0x30], 0
je 0x43dc32
push 0
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, 0x43dd60
mov edx, 0x43dd70
call fcn.00411914
cmp byte [0x5bc3b0], 0
je 0x43da2e
push 0x43dd80
lea eax, [ebp - 0x48]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x34]
call fcn.00405f70
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x44]
call fcn.00407bf8
mov eax, dword [ebp - 0x44]
lea edx, [ebp - 0x40]
call fcn.00415b2c
push dword [ebp - 0x40]
push 0x43dd94
lea eax, [ebp - 8]
mov edx, 3
call fcn.0040593c
jmp 0x43da5e
push 0x43dda0
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov cl, 0x3d
mov edx, 0x5bcbc4
call fcn.0043b94c
push dword [ebp - 0x4c]
push 0x43dd94
lea eax, [ebp - 8]
mov edx, 3
call fcn.0040593c
push 0
mov ecx, 0x43ddb8
mov edx, 0x43ddc4
mov eax, dword [ebp - 0xc]
call fcn.0043d340
test al, al
je 0x43dc48
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x24]
push 0x43ddd4
lea ecx, [ebp - 0x54]
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0043aa40
push dword [ebp - 0x54]
push 0x43dde4
push 0x43ddf0
lea ecx, [ebp - 0x58]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov dl, 1
call fcn.0043aa40
push dword [ebp - 0x58]
push 0x43dde4
push 0x43de00
push dword [ebp - 8]
push 0x43dde4
push 0x43de14
lea eax, [ebp - 0x5c]
call fcn.0043cef8
push dword [ebp - 0x5c]
push 0x43dde4
push 0x43de24
lea eax, [ebp - 0x60]
call fcn.0043d018
push dword [ebp - 0x60]
push 0x43dde4
lea eax, [ebp - 0x50]
mov edx, 0xf
call fcn.0040593c
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0xc]
call fcn.0043ca5c
mov ebx, eax
test bl, bl
je 0x43dc0d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x24]
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2c], 0
je 0x43dbe0
push 0x43de3c
mov eax, dword [ebp + 8]
push dword [eax + 0x30]
push 0x43dde4
lea eax, [ebp - 0x64]
mov edx, 3
call fcn.0040593c
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0xc]
call fcn.0043ca5c
mov ebx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x24]
test bl, bl
je 0x43dbcb
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
call fcn.00406e7c
mov esi, eax
test esi, esi
jl 0x43dbcb
inc esi
xor edi, edi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + edi*4]
call fcn.00405a38
push eax
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0xffffffff
je 0x43dbc7
push ebp
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + edi*4]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
mov ecx, dword [eax + edi*4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + edi*4]
mov eax, dword [ebp - 0xc]
call fcn.0043d3e8
pop ecx
test al, al
jne 0x43dbc7
xor ebx, ebx
jmp 0x43dbcb
inc edi
dec esi
jne 0x43db80
test bl, bl
je 0x43dc0d
mov edx, 0x43df50
mov eax, dword [ebp - 0xc]
call fcn.0043ca5c
mov ebx, eax
jmp 0x43dc0d
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
lea eax, [ebp - 0x68]
mov edx, 0x43dde4
call fcn.004058c0
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0xc]
call fcn.0043ca5c
mov ebx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x24]
push 0
mov ecx, 0x43dcf0
mov edx, 0x43df80
mov eax, dword [ebp - 0xc]
call fcn.0043d340
and bl, al
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x24]
jmp 0x43dc48
push 0
mov ecx, 0x43dcf0
mov edx, 0x43df8c
mov eax, dword [ebp - 0xc]
call fcn.0043d340
mov ebx, eax
push 0
mov ecx, 0x43df9c
mov edx, 0x43dfa8
mov eax, dword [ebp - 0xc]
call fcn.0043d340
and bl, al
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x24]
mov eax, dword [ebp - 0xc]
push eax
call sub.wsock32.dll_closesocket
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x43dcc0
lea eax, [ebp - 0x68]
mov edx, 8
call fcn.004055cc
lea eax, [ebp - 0x48]
call fcn.00405db0
lea eax, [ebp - 0x44]
call fcn.004055a8
lea eax, [ebp - 0x40]
mov edx, 0xc
call fcn.004055cc
lea eax, [ebp - 8]
mov edx, 2
call fcn.004055cc
ret