Function at 0x40a094
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0xfdc]
mov eax, 0x105c
call fcn.0040f950
mov eax, dword [0x427d40]
xor eax, ebp
mov dword [ebp + 0xfd8], eax
mov eax, dword [ebp + 0xfec]
or dword [ebp - 0x7c], 0xffffffff
push ebx
mov ebx, dword [ebp + 0xff0]
push esi
mov esi, dword [ebp + 0xfe4]
push edi
mov edi, dword [ebp + 0xff8]
push 0x20
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x48]
push 0
push eax
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x80], edi
call fcn.0040b2f0
push 0x20
lea eax, [ebp - 0x68]
push 0
push eax
call fcn.0040b2f0
add esp, 0x18
test ebx, ebx
je 0x40a2f5
test edi, edi
je 0x40a2f5
mov ebx, dword [ebp + 0xff4]
and dword [edi], 0
test ebx, ebx
jne 0x40a122
push str.ERROR:_There_must_be_at_least_one_signature._n
jmp 0x40a2fa
xor edi, edi
test ebx, ebx
je 0x40a14b
lea eax, [ebp - 0x48]
mov dword [ebp - 0x6c], eax
push dword [ebp - 0x6c]
push dword [ebp + 0xfe8]
call fcn.00409f65
pop ecx
pop ecx
test eax, eax
jne 0x40a167
add dword [ebp - 0x6c], 4
inc edi
cmp edi, ebx
jb 0x40a12e
xor eax, eax
push eax
push eax
push eax
push esi
call fcn.0040fdce
add esp, 0x10
test eax, eax
je 0x40a171
push str.ERROR:_Could_not_seek_to_start_of_the_file_n
jmp 0x40a2fa
push str.ERROR:_Could_not_initialize_signature_handle._n
jmp 0x40a2fa
push str.signature_block
push ebx
lea eax, [ebp - 0x48]
push eax
push 0x14
lea eax, [ebp - 0x28]
push eax
push esi
call fcn.00409fc2
add esp, 0x18
test eax, eax
jne 0x40a30a
and dword [ebp - 0x6c], eax
test ebx, ebx
je 0x40a209
lea edi, [ebp - 0x68]
push str.signature_algorithm_ID
push ebx
lea eax, [ebp - 0x48]
push eax
push 4
lea eax, [ebp - 0x28]
push eax
push esi
call fcn.00409fc2
add esp, 0x18
test eax, eax
jne 0x40a30a
push str.signature_length
push ebx
lea eax, [ebp - 0x48]
push eax
push 4
push edi
push esi
call fcn.00409fc2
add esp, 0x18
test eax, eax
jne 0x40a30a
push dword [edi]
call dword [sym.imp.WSOCK32.dll_ntohl]
mov dword [edi], eax
cmp eax, 0x800
ja 0x40a23a
push 1
push 0
push eax
push esi
call fcn.0040fdce
add esp, 0x10
test eax, eax
jne 0x40a244
inc dword [ebp - 0x6c]
add edi, 4
cmp dword [ebp - 0x6c], ebx
jb 0x40a19c
push esi
call fcn.0040ff90
pop ecx
test eax, eax
je 0x40a251
and dword [ebp - 0x6c], 0
test ebx, ebx
je 0x40a2e8
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x74]
lea edi, [ebp - 0x68]
sub eax, esi
lea ebx, [ebp - 0x48]
sub edi, esi
mov dword [ebp - 0x74], eax
sub ebx, esi
jmp 0x40a2ba
push str.ERROR:_Embedded_signature_length_is_too_large._n
jmp 0x40a2fa
push str.ERROR:_Could_not_seek_past_signature._n
jmp 0x40a2fa
mov esi, dword [ebp - 0x78]
push esi
push 0x1000
lea eax, [ebp - 0x28]
push 1
push eax
call fcn.0040d333
push esi
mov dword [ebp - 0x6c], eax
call fcn.0040ffb8
add esp, 0x14
test eax, eax
jne 0x40a2a9
xor esi, esi
test ebx, ebx
je 0x40a297
lea edi, [ebp - 0x48]
push dword [ebp - 0x6c]
lea eax, [ebp - 0x28]
push eax
push edi
call fcn.00409f95
add esp, 0xc
test eax, eax
jne 0x40a2b0
inc esi
add edi, 4
cmp esi, ebx
jb 0x40a27b
push dword [ebp - 0x78]
call fcn.0040ff90
pop ecx
test eax, eax
je 0x40a24e
jmp 0x40a214
push str.ERROR:_Error_reading_data_block._n
jmp 0x40a2fa
push str.ERROR:_Error_updating_verify_context_with_data_block._n
jmp 0x40a2fa
mov eax, dword [ebp - 0x74]
push dword [edi + esi]
add eax, esi
push dword [esi]
push eax
lea eax, [ebx + esi]
push eax
call fcn.00409e12
add esp, 0x10
test eax, eax
jne 0x40a2ee
mov eax, dword [ebp - 0x80]
inc dword [eax]
inc dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
add esi, 4
cmp eax, dword [ebp + 0xff4]
jb 0x40a2b7
and dword [ebp - 0x7c], 0
jmp 0x40a30a
push str.ERROR:_Error_verifying_signature._n
jmp 0x40a2fa
push str.ERROR:_Invalid_parameter_specified._n
call fcn.0040e9f4
add eax, 0x40
push eax
call fcn.0040e8e8
pop ecx
pop ecx
mov ecx, dword [ebp + 0xfd8]
mov eax, dword [ebp - 0x7c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040b2d4
add ebp, 0xfdc
leave
ret