Function at 0x552770
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x29c
mov eax, dword [0x7436c8]
test eax, eax
je 0x552a33
mov eax, dword [0x7436e0]
test eax, eax
je 0x5529a5
mov dword [esp + 4], 0x8000
mov dword [esp], eax
call sym._open
cmp eax, 0xffffffff
mov ebx, eax
je 0x552964
lea edi, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], edi
call dword [sym.imp.msvcrt.dll__fstat]
cmp eax, 0xffffffff
je 0x5529b2
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x50]
test eax, eax
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], edx
jne 0x5529b2
movzx eax, word [esp + 0x1a]
and ax, 0xf000
cmp ax, 0x8000
jne 0x552a00
test edx, edx
je 0x552a60
cmp edx, 0x258
mov esi, dword [sym.imp.msvcrt.dll__errno]
je 0x552872
mov dword [esp], str.warning:_invalid_size_of_random_seed_file___not_used_n
call dbg._gcry_gettext
mov dword [esp], eax
call dbg._gcry_log_info
mov dword [esp], ebx
call sym._close
xor eax, eax
jmp 0x5529a7
call esi
cmp dword [eax], 4
mov ebp, esi
jne 0x552ab0
mov dword [esp + 8], 0x258
mov dword [esp + 4], edi
mov dword [esp], ebx
call sym._read
cmp eax, 0xffffffff
je 0x552865
cmp eax, 0x258
jne 0x552aa1
mov dword [esp], ebx
lea ebx, [esp + 0x10]
call sym._close
mov dword [esp + 8], 0
mov dword [esp + 4], 0x258
mov dword [esp], edi
call sym._add_randomness
call sym._getpid
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], ebx
mov dword [esp + 0x10], eax
call sym._add_randomness
mov dword [esp], 0
call dword [sym.imp.msvcrt.dll_time]
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], ebx
mov dword [esp + 0x10], eax
call sym._add_randomness
call sym._clock
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], ebx
mov dword [esp + 0x10], eax
call sym._add_randomness
mov dword [esp], 0
call dbg._gcry_rndjent_get_version
test eax, eax
mov ecx, 1
je 0x552a90
mov edx, pe_nt_image_headers32
xor eax, eax
call dbg.read_random_source
mov dword [0x7436dc], 1
add esp, 0x29c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [sym.imp.msvcrt.dll__errno]
call ebx
cmp dword [eax], 2
je 0x552a7c
call ebx
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov ebx, dword [0x7436e0]
mov esi, eax
mov dword [esp], str.cant_open___s:__s_n
call dbg._gcry_gettext
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], ebx
call dbg._gcry_log_info
xor eax, eax
add esp, 0x29c
pop ebx
pop esi
pop edi
pop ebp
ret
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov esi, dword [0x7436e0]
mov edi, eax
mov dword [esp], str.cant_stat___s:__s_n
call dbg._gcry_gettext
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], esi
call dbg._gcry_log_info
mov dword [esp], ebx
call sym._close
add esp, 0x29c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [0x7436e0]
mov dword [esp], str.__s_is_not_a_regular_file___ignored_n
call dbg._gcry_gettext
mov dword [esp], eax
mov dword [esp + 4], esi
call dbg._gcry_log_info
mov dword [esp], ebx
call sym._close
add esp, 0x29c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], str.read_seed_file
mov dword [esp + 8], 0x2df
mov dword [esp + 4], str.random_csprng.c
mov dword [esp], str.pool_is_locked
call dbg._gcry_assert_failed
mov esi, esi
lea edi, [edi]
mov dword [esp], str.note:_random_seed_file_is_empty_n
call dbg._gcry_gettext
mov dword [esp], eax
call dbg._gcry_log_info
mov dword [esp], ebx
call sym._close
mov dword [0x7436dc], 1
jmp 0x5529a5
mov edx, 0x20
xor eax, eax
call dbg.read_random_source
jmp 0x55294a
mov ebp, dword [sym.imp.msvcrt.dll__errno]
mov esi, esi
lea edi, [edi]
call ebp
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov ebx, dword [0x7436e0]
mov esi, eax
mov dword [esp], str.cant_read___s:__s_n
call dbg._gcry_gettext
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], ebx
call dbg._gcry_log_fatal