Function at 0x4104b0
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x26c
mov eax, dword [0x43a004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x268], esi
mov dword [ebp - 0x264], ebx
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x4104ee
call fcn.00404e50
mov ebx, eax
mov dword [ebp - 0x264], ebx
test ebx, ebx
je 0x410505
mov ecx, dword [esi + 0x18]
call fcn.00404e50
mov esi, eax
test esi, esi
jne 0x41051b
push ebx
call fcn.0041f3e5
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041d22b
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x268]
mov al, byte [ecx + 0x11]
test al, al
jne 0x410555
push 0xa
lea eax, [ebp - 0x260]
push eax
push esi
call fcn.00420062
mov ecx, dword [ebp - 0x260]
add esp, 0xc
cmp word [ecx], 0
jne 0x41058d
mov ecx, 2
cmp ecx, eax
sbb ebx, ebx
inc ebx
jmp case.default.0x410744
cmp al, 1
jne 0x41056b
mov ecx, esi
call fcn.00403ce0
neg eax
sbb ebx, ebx
neg ebx
jmp case.default.0x410744
cmp al, 2
jne 0x4105c3
push 0xa
lea eax, [ebp - 0x260]
push eax
push esi
call fcn.00420036
mov ecx, dword [ebp - 0x260]
add esp, 0xc
cmp word [ecx], 0
je 0x4105b3
mov ecx, esi
call fcn.0040d680
push esi
call fcn.0041f3e5
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041d22b
mov esp, ebp
pop ebp
ret
xor ebx, ebx
cmp dword [0x43bbd4], eax
setge bl
jmp case.default.0x410744
cmp al, 3
jne 0x4106a4
movzx eax, word [esi]
mov edi, esi
mov ecx, esi
test ax, ax
je 0x4105fa
mov edx, eax
nop dword [eax]
cmp dx, 0x22
je 0x4105ec
mov word [ecx], dx
add ecx, 2
movzx eax, word [edi + 2]
add edi, 2
mov edx, eax
test ax, ax
jne 0x4105e0
xor eax, eax
mov word [ecx], ax
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410604
sub ecx, edx
sar ecx, 1
movzx eax, word [esi + ecx*2 - 2]
lea edi, [esi + ecx*2]
mov ecx, eax
mov dword [ebp - 0x25c], ecx
cmp eax, 0x5c
jne 0x41062e
xor eax, eax
mov word [edi - 2], ax
lea eax, [ebp - 0x258]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x410650
mov ebx, dword [ebp - 0x258]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x410659
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x41067c
xor ebx, ebx
cmp word [ebp - 0x25c], 0x5c
jne case.default.0x410744
mov eax, 0x5c
mov word [edi - 2], ax
jmp case.default.0x410744
cmp word [ebp - 0x25c], 0x5c
jne 0x41069a
shr ebx, 4
mov eax, 0x5c
and ebx, 1
mov word [edi - 2], ax
jmp case.default.0x410744
mov ebx, 1
jmp case.default.0x410744
test byte [ecx + 0x10], 2
mov edi, 0x42277f
mov ecx, fcn.0041f4c2
cmovne edi, ecx
cmp al, 4
jne 0x4106ca
push esi
push ebx
call edi
add esp, 8
neg eax
sbb ebx, ebx
inc ebx
jmp case.default.0x410744
push 0
lea eax, [ebp - 0x25c]
push eax
push ebx
call fcn.00420036
mov ecx, dword [ebp - 0x25c]
add esp, 0xc
mov ebx, eax
mov dword [ebp - 0x26c], ebx
cmp word [ecx], 0
jne 0x410724
push 0
lea eax, [ebp - 0x25c]
push eax
push esi
call fcn.00420036
mov ecx, dword [ebp - 0x25c]
add esp, 0xc
cmp word [ecx], 0
jne 0x410724
cmp ebx, eax
jge 0x410717
or ebx, 0xffffffff
jmp 0x410732
xor ebx, ebx
cmp dword [ebp - 0x26c], eax
setg bl
jmp 0x410732
push esi
push dword [ebp - 0x264]
call edi
add esp, 8
mov ebx, eax
mov eax, dword [ebp - 0x268]
movzx ecx, byte [eax + 0x11]
add ecx, 0xfffffffb
cmp ecx, 5
ja case.default.0x410744
jmp dword [ecx*4 + 0x4107d8]
xor eax, eax
test ebx, ebx
sete al
mov ebx, eax
jmp case.default.0x410744
xor eax, eax
test ebx, ebx
setne al
mov ebx, eax
jmp case.default.0x410744
xor eax, eax
test ebx, ebx
setle al
mov ebx, eax
jmp case.default.0x410744
xor eax, eax
test ebx, ebx
setg al
mov ebx, eax
jmp case.default.0x410744
not ebx
shr ebx, 0x1f
push dword [ebp - 0x264]
call fcn.0041f3e5
add esp, 4
push esi
call fcn.0041f3e5
mov eax, dword [ebp - 0x268]
add esp, 4
mov ecx, dword [eax]
movzx eax, byte [eax + 0x10]
and eax, 1
cmp eax, ebx
je 0x4107bc
call fcn.00403b90
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041d22b
mov esp, ebp
pop ebp
ret
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x4107a6
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041d22b
mov esp, ebp
pop ebp
ret