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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 4
push 0
push 0
dec ecx
jne 0x437328
push ecx
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404960
mov eax, dword [ebp - 8]
call fcn.004039c4
xor eax, eax
push ebp
push 0x437803
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1c], 0
jne 0x437383
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 8]
call fcn.00436318
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
add eax, 0x1c
call fcn.0040368c
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x24]
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0xc]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
call fcn.00436970
pop ecx
test al, al
je 0x4377d8
xor ecx, ecx
mov edx, 0x43781c
mov eax, dword [ebp - 0xc]
call fcn.00436ca4
test al, al
je 0x4377cf
lea eax, [ebp - 0xd]
push eax
lea eax, [ebp - 0x18]
call fcn.004281ec
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x14]
mov edx, 0x437828
call fcn.0040385c
mov edx, dword [ebp - 0x14]
mov ecx, 0x437838
mov eax, dword [ebp - 0xc]
call fcn.00436f38
test al, al
jne 0x43741a
push 0
lea eax, [ebp - 0x18]
call fcn.004281ec
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x14]
mov edx, 0x437844
call fcn.0040385c
mov edx, dword [ebp - 0x14]
mov ecx, 0x437838
mov eax, dword [ebp - 0xc]
call fcn.00436f38
test al, al
je 0x4377cf
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x24]
mov eax, dword [ebp + 8]
cmp dword [eax - 4], 0
jne 0x437439
mov eax, dword [ebp + 8]
add eax, 0xfffffffc
mov edx, dword [ebp - 8]
call fcn.0040368c
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 0
jne 0x43744b
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 0
je 0x4374c1
cmp byte [ebp - 0xd], 0
je 0x4377b1
push 0
mov ecx, 0x437854
mov edx, 0x437860
mov eax, dword [ebp - 0xc]
call fcn.00436f38
test al, al
je 0x4377b1
push 0
lea edx, [ebp - 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
call fcn.00415b10
mov edx, dword [ebp - 0x14]
mov ecx, 0x437854
mov eax, dword [ebp - 0xc]
call fcn.00436f38
test al, al
je 0x4377b1
push 0
lea edx, [ebp - 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
call fcn.00415b10
mov edx, dword [ebp - 0x14]
mov ecx, 0x437874
mov eax, dword [ebp - 0xc]
call fcn.00436f38
test al, al
je 0x4377b1
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x24]
push 0
lea ecx, [ebp - 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
xor edx, edx
call fcn.00434a04
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x14]
mov edx, 0x437880
call fcn.0040385c
mov edx, dword [ebp - 0x14]
mov ecx, 0x437838
mov eax, dword [ebp - 0xc]
call fcn.00436f38
test al, al
je 0x4377b1
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x24]
mov byte [ebp - 0xe], 0
lea eax, [ebp - 8]
call fcn.004349c0
mov esi, eax
test esi, esi
jle 0x43756b
mov edi, 1
push 0
lea eax, [ebp - 0x1c]
push eax
mov cl, 0x2c
mov edx, edi
mov eax, dword [ebp - 8]
call fcn.0040826c
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x18]
xor edx, edx
call fcn.00434a04
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x14]
mov edx, 0x437894
call fcn.0040385c
mov edx, dword [ebp - 0x14]
mov ecx, 0x437838
mov eax, dword [ebp - 0xc]
call fcn.00436f38
or al, byte [ebp - 0xe]
mov byte [ebp - 0xe], al
inc edi
dec esi
jne 0x437522
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x24]
cmp byte [ebp - 0xe], 0
je 0x4377b1
mov eax, dword [ebp + 8]
cmp dword [eax + 0x34], 0
jne 0x437593
mov eax, dword [ebp + 8]
cmp dword [eax + 0x30], 0
je 0x43779b
push 0
mov eax, dword [ebp + 8]
add eax, 0x30
mov ecx, 0x4378a8
mov edx, 0x4378b8
call fcn.0040717c
push 0x4378c8
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov cl, 0x3d
mov edx, 0x44f440
call fcn.00435580
push dword [ebp - 0x14]
push 0x4378e0
mov eax, dword [ebp + 8]
add eax, 0x34
mov edx, 3
call fcn.004038d0
push 0
mov ecx, 0x4378ec
mov edx, 0x4378f8
mov eax, dword [ebp - 0xc]
call fcn.00436f38
test al, al
je 0x4377b1
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x24]
push 0x437908
lea ecx, [ebp - 0x18]
mov dl, 1
mov eax, dword [ebp - 8]
call fcn.00434a04
push dword [ebp - 0x18]
push 0x437918
push 0x437924
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov dl, 1
call fcn.00434a04
push dword [ebp - 0x1c]
push 0x437918
push 0x437934
mov eax, dword [ebp + 8]
push dword [eax + 0x34]
push 0x437918
push 0x437948
lea eax, [ebp - 0x20]
call fcn.00436aec
push dword [ebp - 0x20]
push 0x437918
push 0x437958
lea eax, [ebp - 0x24]
call fcn.00436c0c
push dword [ebp - 0x24]
push 0x437918
lea eax, [ebp - 0x14]
mov edx, 0xf
call fcn.004038d0
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.0043667c
mov ebx, eax
test bl, bl
je 0x43777b
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x24]
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2c], 0
je 0x437753
push 0x437970
mov eax, dword [ebp + 8]
push dword [eax + 0x30]
push 0x437918
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.004038d0
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.0043667c
mov ebx, eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x24]
test bl, bl
je 0x43773e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
call fcn.00404254
mov esi, eax
test esi, esi
jl 0x43773e
inc esi
xor edi, edi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + edi*4]
call fcn.004039d4
push eax
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0xffffffff
je 0x43773a
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.00436fe0
pop ecx
test al, al
jne 0x43773a
xor ebx, ebx
jmp 0x43773e
inc edi
dec esi
jne 0x4376f3
test bl, bl
je 0x43777b
mov edx, 0x437a84
mov eax, dword [ebp - 0xc]
call fcn.0043667c
mov ebx, eax
jmp 0x43777b
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
lea eax, [ebp - 0x14]
mov edx, 0x437918
call fcn.0040385c
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.0043667c
mov ebx, eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x24]
push 0
mov ecx, 0x437838
mov edx, 0x437ab4
mov eax, dword [ebp - 0xc]
call fcn.00436f38
and bl, al
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x24]
jmp 0x4377b1
push 0
mov ecx, 0x437838
mov edx, 0x437ac0
mov eax, dword [ebp - 0xc]
call fcn.00436f38
mov ebx, eax
push 0
mov ecx, 0x437ad0
mov edx, 0x437adc
mov eax, dword [ebp - 0xc]
call fcn.00436f38
and bl, al
mov eax, dword [ebp - 4]
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 0x43780a
lea eax, [ebp - 0x24]
mov edx, 5
call fcn.00403618
lea eax, [ebp - 8]
call fcn.004035f4
lea eax, [ebp - 4]
call fcn.00404900
ret