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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xccc
mov dword [ebp - 0xca0], eax
mov esi, ecx
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x20]
mov dword [ebp - 0xcc0], ecx
mov dword [ebp - 0xcbc], ebx
dec eax
cmp eax, 3
setbe byte [ebp - 0xcb5]
mov eax, dword [ebp - 0xca0]
and eax, 0xfffffffd
mov dword [ebp - 0xca8], eax
mov eax, dword [ebp - 0xca0]
sub eax, 2
mov dword [ebp - 0xcb4], eax
xor edx, 1
cmp dword [ebp - 0xca8], 1
sete bl
and ebx, edx
mov dword [esp + 4], 0x608513
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
cmp dword [ebp + 0x14], 0
jne 0x5906fc
movzx eax, bl
mov dword [ebp - 0xc9c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
xor ecx, ecx
mov dword [ebp - 0xca4], ecx
jmp 0x590c3a
mov dword [esp + 4], str._RepresentationID_
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_strstr
xor edx, edx
mov dword [ebp - 0xc9c], edx
test eax, eax
jne 0x59073e
mov dword [esp + 4], str._Bandwidth_
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_strstr
test eax, eax
sete al
movzx eax, al
and eax, ebx
mov dword [ebp - 0xc9c], eax
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov dword [ebp - 0xcc4], eax
xor eax, eax
mov dword [ebp - 0xca4], eax
xor ebx, ebx
mov edi, dword [ebp + 0x14]
add edi, ebx
mov al, byte [edi]
mov byte [ebp - 0xcac], al
cmp dword [ebp - 0xcb4], 1
jbe 0x59087d
mov dword [esp + 8], 0x12
mov dword [esp + 4], str._RepresentationID_
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll__strnicmp
test eax, eax
jne 0x59079e
add ebx, 0x12
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
jmp 0x590868
mov dword [esp + 8], 0xa
mov dword [esp + 4], str._Bandwidth
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll__strnicmp
test eax, eax
je 0x5907df
mov dword [esp + 8], 5
mov dword [esp + 4], str._Time
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll__strnicmp
test eax, eax
je 0x59088f
jmp 0x590953
mov dword [esp + 4], 0x6084af
lea eax, [ebp - 0xc90]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
add ebx, 0xa
mov edi, dword [ebp + 0x14]
add edi, ebx
cmp byte [edi], 0x25
jne 0x590844
mov dword [esp + 4], 0x24
mov dword [esp], edi
call sub.api_ms_win_crt_private_l1_1_0.dll_strchr
test eax, eax
je 0x590844
mov byte [eax], 0
mov dword [ebp - 0xc9c], eax
mov dword [esp + 4], edi
lea eax, [ebp - 0xc90]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add ebx, eax
mov edx, dword [ebp - 0xc9c]
mov byte [edx], 0x24
inc ebx
mov eax, dword [ebp + 0x24]
mov dword [esp + 8], eax
lea eax, [ebp - 0xc90]
mov dword [esp + 4], eax
lea edi, [ebp - 0xc7c]
mov dword [esp], edi
call fcn.005ae188
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
xor eax, eax
mov dword [ebp - 0xc9c], eax
jmp 0x590b7c
cmp dword [ebp - 0xca0], 2
jne 0x5907ba
jmp 0x590a20
mov dword [esp + 4], 0x6084af
lea eax, [ebp - 0xc90]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
add ebx, 5
mov edi, dword [ebp + 0x14]
add edi, ebx
cmp byte [edi], 0x25
jne 0x5908f4
mov dword [esp + 4], 0x24
mov dword [esp], edi
call sub.api_ms_win_crt_private_l1_1_0.dll_strchr
test eax, eax
je 0x5908f4
mov byte [eax], 0
mov dword [ebp - 0xcac], eax
mov dword [esp + 4], edi
lea eax, [ebp - 0xc90]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add ebx, eax
mov edx, dword [ebp - 0xcac]
mov byte [edx], 0x24
inc ebx
cmp dword [ebp - 0xca8], 1
je 0x590b7c
lea edi, [ebp - 0xc90]
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov byte [ebp + eax - 0xc91], 0
mov dword [esp + 4], 0x608545
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
mov eax, dword [ebp - 0xcc0]
mov edx, dword [ebp - 0xcbc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 4], edi
lea edi, [ebp - 0xc7c]
mov dword [esp], edi
call fcn.005ae188
jmp 0x590a05
mov dword [esp + 8], 7
mov dword [esp + 4], str._Number
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll__strnicmp
test eax, eax
jne 0x590a20
mov dword [esp + 4], 0x6084af
lea eax, [ebp - 0xc90]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
add ebx, 7
mov edi, dword [ebp + 0x14]
add edi, ebx
cmp byte [edi], 0x25
jne 0x5909d8
mov dword [esp + 4], 0x24
mov dword [esp], edi
call sub.api_ms_win_crt_private_l1_1_0.dll_strchr
test eax, eax
je 0x5909d8
mov byte [eax], 0
mov dword [ebp - 0xcac], eax
mov dword [esp + 4], edi
lea eax, [ebp - 0xc90]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add ebx, eax
mov edx, dword [ebp - 0xcac]
mov byte [edx], 0x24
inc ebx
cmp dword [ebp - 0xca8], 1
je 0x590b7c
mov eax, dword [ebp + 0x28]
mov dword [esp + 8], eax
lea eax, [ebp - 0xc90]
mov dword [esp + 4], eax
lea edi, [ebp - 0xc7c]
mov dword [esp], edi
call fcn.005ae188
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
mov dword [ebp - 0xca4], 1
jmp 0x590b7c
mov dword [esp + 8], 6
mov dword [esp + 4], str._Init
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll__strnicmp
lea ecx, [ebx + 1]
mov dword [ebp - 0xcb0], ecx
test eax, eax
jne 0x590aa6
mov eax, dword [ebp + 0x14]
lea edx, [eax + ebx + 6]
mov dword [esp + 4], 0x24
mov dword [esp], edx
mov dword [ebp - 0xcac], edx
call sub.api_ms_win_crt_private_l1_1_0.dll_strchr
mov ebx, eax
test eax, eax
mov edx, dword [ebp - 0xcac]
je 0x590a71
mov byte [eax], 0
cmp dword [ebp - 0xca8], 1
jne 0x590a8e
mov dword [esp + 4], edx
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
xor eax, eax
mov dword [ebp - 0xc9c], eax
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
test ebx, ebx
je 0x590b2a
mov byte [ebx], 0x24
jmp 0x590b2a
mov dword [esp + 8], 7
mov dword [esp + 4], str._Index
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll__strnicmp
test eax, eax
jne 0x590b39
mov dword [esp + 4], 0x24
mov eax, dword [ebp + 0x14]
lea eax, [eax + ebx + 7]
mov dword [esp], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_strchr
mov edx, eax
test eax, eax
je 0x590ae2
mov byte [eax], 0
cmp dword [ebp - 0xca0], 4
jne 0x590b12
mov dword [ebp - 0xcac], edx
mov eax, dword [ebp + 0x14]
lea eax, [eax + ebx + 6]
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
xor ecx, ecx
mov dword [ebp - 0xc9c], ecx
mov edx, dword [ebp - 0xcac]
mov dword [ebp - 0xcac], edx
mov dword [esp], edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov edx, dword [ebp - 0xcac]
test edx, edx
jne 0x590b34
mov ebx, dword [ebp - 0xcb0]
add ebx, eax
jmp 0x590b7c
mov byte [edx], 0x24
jmp 0x590b2a
cmp byte [ebp - 0xcac], 0x5c
jne 0x590b49
mov byte [ebp - 0xcac], 0x2f
movsx eax, byte [ebp - 0xcac]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x608561
lea ebx, [ebp - 0xc7c]
mov dword [esp], ebx
call fcn.005ae188
mov dword [esp + 4], ebx
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
mov ebx, dword [ebp - 0xcb0]
cmp dword [ebp - 0xcc4], ebx
jae 0x590759
mov eax, dword [ebp + 0x10]
call fcn.00427d66
sub eax, 3
cmp eax, 1
jbe 0x590c3a
mov eax, esi
call fcn.004285bc
mov ebx, eax
lea edx, [ebp - 0x818]
mov eax, esi
call fcn.004285fc
mov dword [esp + 4], ebx
lea eax, [ebp - 0xc18]
mov dword [esp], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
lea ebx, [ebp - 0x418]
mov edx, ebx
mov eax, dword [ebp + 0x10]
call fcn.004285fc
mov dword [esp], ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
cmp byte [ebp + eax - 0x418], 0x5c
je 0x590c01
mov word [ebp - 0xc92], 0x5c
lea eax, [ebp - 0xc92]
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
mov byte [esi], 0
lea eax, [ebp - 0x818]
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
lea eax, [ebp - 0x418]
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
lea eax, [ebp - 0xc18]
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
cmp dword [ebp - 0xca0], 2
jne 0x590c9e
cmp dword [ebp + 0x2c], 0
je 0x590c6e
mov dword [esp + 4], str._Time
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_strstr
test eax, eax
jne 0x590d59
mov dword [esp + 4], str._Time_
jmp 0x590c91
mov dword [esp + 4], str._Number
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_strstr
test eax, eax
jne 0x590d59
mov dword [esp + 4], str._Number_
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
jmp 0x590d59
cmp dword [ebp - 0xc9c], 0
je 0x590cb7
mov dword [esp + 4], str.init
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
movzx eax, byte [ebp - 0xcb5]
or eax, dword [ebp - 0xca4]
jne 0x590cef
mov eax, dword [ebp + 0x28]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x6084af
lea ebx, [ebp - 0xc7c]
mov dword [esp], ebx
call fcn.005ae188
mov dword [esp + 4], ebx
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
cmp dword [ebp + 0x18], 0
je 0x590d14
mov dword [esp + 4], 0x608579
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
mov eax, dword [ebp + 0x18]
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
cmp dword [ebp - 0xcb4], 1
jbe 0x590d67
mov dword [esp + 4], 0x2f
mov dword [esp], esi
call sub.api_ms_win_crt_private_l1_1_0.dll_strrchr
mov ebx, eax
test eax, eax
je 0x590d67
movzx edi, byte [eax]
mov byte [eax], 0
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push edx
cmp eax, 0xffffffff
je 0x590d4c
test al, 0x10
jne 0x590d53
mov eax, esi
call fcn.005a3f99
mov eax, edi
mov byte [ebx], al
jmp 0x590d67
cmp dword [ebp - 0xc9c], 0
je 0x590cef
jmp 0x590ca7
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret