Function at 0x635d1d48
Capabilities:
Execute anti-debugging instructions
Generate random numbers via winapi
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xdc
mov dword [esp + 0x10], 0xf0000040
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
lea eax, [esp + 0xcc]
mov dword [esp], eax
call sub.ADVAPI32.DLL_CryptAcquireContextA
sub esp, 0x14
test eax, eax
je 0x635d1dd1
lea eax, [esp + 0xc8]
mov dword [esp + 8], eax
mov dword [esp + 4], 4
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call sub.ADVAPI32.DLL_CryptGenRandom
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call sub.ADVAPI32.DLL_CryptReleaseContext
sub esp, 8
test ebx, ebx
jne 0x635d1fa4
mov dword [esp + 4], 0
mov dword [esp], str._dev_urandom
call sub.msvcrt.dll__open
mov ebx, eax
cmp eax, 0xffffffff
je 0x635d1e1a
mov dword [esp + 8], 4
lea eax, [esp + 0xc8]
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll__read
mov esi, eax
mov dword [esp], ebx
call sub.msvcrt.dll__close
cmp esi, 4
je 0x635d1fa4
mov dword [esp + 4], 0
mov dword [esp], str._dev_random
call sub.msvcrt.dll__open
mov ebx, eax
cmp eax, 0xffffffff
je 0x635d1e63
mov dword [esp + 8], 4
lea eax, [esp + 0xc8]
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll__read
mov esi, eax
mov dword [esp], ebx
call sub.msvcrt.dll__close
cmp esi, 4
je 0x635d1fa4
mov eax, dword [0x635f1aa0]
mov edx, dword [0x635f1aa4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
cmp dword [sym.avutil_fb2k_52.dll_av_sha_size], 0x78
ja 0x635d2093
rdtsc
xor ecx, ecx
add ecx, eax
xor dword [0x635f1af4], ecx
rdtsc
mov ebx, edx
xor ecx, ecx
xor edx, edx
add eax, ecx
adc edx, ebx
xor dword [0x635f1b64], edx
mov edx, dword [esp + 0x2c]
xor ebx, ebx
or edx, dword [esp + 0x28]
jne 0x635d1fcd
call sub.msvcrt.dll_clock
cmp eax, ebx
je 0x635d207c
nop
mov esi, dword [0x635f1aa0]
mov edi, dword [0x635f1aa4]
add esi, 1
adc edi, 0
mov dword [0x635f1aa0], esi
mov dword [0x635f1aa4], edi
mov ebp, esi
and ebp, 0x1ff
mov edx, eax
sub edx, ebx
mov ebx, edx
xor edx, edx
cmp ebx, 0xc46031b9
setae dl
lea ecx, [edx*4]
add ecx, edx
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
lea ecx, [ecx + ecx*8]
lea ecx, [ecx + ecx*8]
lea ecx, [edx + ecx*4]
lea ecx, [edx + ecx*2]
lea ecx, [edx + ecx*8]
lea ecx, [edx + ecx*8]
lea edx, [edx + ecx*8]
mov ecx, edx
shl ecx, 4
sub edx, ecx
sub ebx, edx
add dword [ebp*4 + 0x635f1ac0], ebx
cmp edi, 0
jbe 0x635d2064
mov dword [esp + 4], 0xa0
lea ebx, [esp + 0x3c]
mov dword [esp], ebx
call sym.avutil_fb2k_52.dll_av_sha_init
mov dword [esp + 8], 0x800
mov dword [esp + 4], 0x635f1ac0
mov dword [esp], ebx
call sym.avutil_fb2k_52.dll_av_sha_update
lea eax, [esp + 0xb4]
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym.avutil_fb2k_52.dll_av_sha_final
mov eax, dword [esp + 0xb4]
rol ax, 8
rol eax, 0x10
rol ax, 8
mov edx, dword [esp + 0xc4]
rol dx, 8
rol edx, 0x10
rol dx, 8
add eax, edx
add esp, 0xdc
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xc8]
add esp, 0xdc
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [0x635f1aa0]
and edx, 0x1ff
inc dword [edx*4 + 0x635f1ac0]
mov ebx, eax
call sub.msvcrt.dll_clock
cmp eax, ebx
je 0x635d1fb8
mov esi, dword [0x635f1aa0]
mov edi, dword [0x635f1aa4]
add esi, 1
adc edi, 0
mov dword [0x635f1aa0], esi
mov dword [0x635f1aa4], edi
mov ebp, esi
and ebp, 0x1ff
mov edx, eax
sub edx, ebx
mov ebx, edx
xor edx, edx
cmp ebx, 0xc46031b9
setae dl
lea ecx, [edx*4]
add ecx, edx
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
lea ecx, [ecx + ecx*8]
lea ecx, [ecx + ecx*8]
lea ecx, [edx + ecx*4]
lea ecx, [edx + ecx*2]
lea ecx, [edx + ecx*8]
lea ecx, [edx + ecx*8]
lea edx, [edx + ecx*8]
mov ecx, edx
shl ecx, 4
sub edx, ecx
sub ebx, edx
add dword [ebp*4 + 0x635f1ac0], ebx
sub esi, dword [esp + 0x28]
sbb edi, dword [esp + 0x2c]
cmp edi, 0
ja 0x635d1f34
cmp esi, 4
ja 0x635d1f34
mov ebx, eax
jmp 0x635d1fcd
cmp esi, 0x40
ja 0x635d1f34
mov ebx, eax
call sub.msvcrt.dll_clock
cmp eax, ebx
jne 0x635d1ec0
mov edx, dword [0x635f1aa0]
and edx, 0x1ff
inc dword [edx*4 + 0x635f1ac0]
mov ebx, eax
jmp 0x635d206f
mov dword [esp + 0x14], 0x47
mov dword [esp + 0x10], str.libavutil_random_seed.c
mov dword [esp + 0xc], str.sizeof_tmp____av_sha_size
mov dword [esp + 8], str.Assertion__s_failed_at__s:_d_n
mov dword [esp + 4], 0
mov dword [esp], 0
call sym.avutil_fb2k_52.dll_av_log
call sub.msvcrt.dll_abort