Function at 0x10016390
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101a9c4b
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xc0
mov eax, dword [0x10223008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp dword [edi + 0x5c], 8
lea ecx, [edi + 0x48]
mov dword [edi + 0x58], 0
jb 0x100163e6
mov ecx, dword [edi + 0x48]
xor eax, eax
mov word [ecx], ax
lea ecx, [edi + 0x30]
cmp dword [edi + 0x44], 8
mov dword [edi + 0x40], eax
jb 0x100163fa
mov ecx, dword [edi + 0x30]
xor eax, eax
xorps xmm0, xmm0
mov word [ecx], ax
mov dword [edi + 0x180], 0xfffffff
mov dword [edi + 0x188], eax
mov dword [edi + 0x18c], eax
cmp byte [ebx + 8], al
je 0x10016560
cmp dword [edi + 0x14], 8
mov ecx, edi
movlpd qword [ebp - 0x28], xmm0
jb 0x10016430
mov ecx, dword [edi]
lea eax, [ebp - 0x28]
xor edx, edx
push eax
push 0
push 0
call fcn.1003be80
mov ecx, edx
mov esi, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jg 0x10016460
jl 0x10016450
test esi, esi
jae 0x10016460
xorps xmm0, xmm0
movlpd qword [ebp - 0x68], xmm0
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x68]
jmp 0x10016464
mov eax, esi
mov edx, ecx
mov dword [edi + 0x188], eax
mov eax, esi
or eax, ecx
mov dword [edi + 0x18c], edx
jne 0x10016485
mov dword [edi + 0x180], 0xa
jmp 0x10016a4c
test ecx, ecx
jg 0x10016551
jl 0x10016551
cmp esi, 0x1400000
ja 0x10016551
test ecx, ecx
jl 0x10016551
jg 0x100164b1
test esi, esi
jb 0x10016551
push 0x10229110
push esi
call fcn.1018dc86
add esp, 8
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x100164d5
mov dword [edi + 0x180], 0xb
jmp 0x10016a4c
push esi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x18]
add esp, 0xc
cmp dword [edi + 0x14], 8
mov ecx, edi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], eax
jb 0x100164f4
mov ecx, dword [edi]
lea edx, [ebp - 0x28]
push edx
mov edx, dword [ebp - 0x64]
push eax
push esi
call fcn.1003be80
mov ecx, eax
cmp esi, dword [ebp - 0x28]
jne 0x10016537
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x24]
jne 0x10016537
cmp esi, ecx
jne 0x1001651d
cmp eax, edx
je 0x1001670a
push dword [ebp - 0x64]
call fcn.1018d97f
add esp, 4
mov dword [edi + 0x180], 0xc
jmp 0x10016a4c
push dword [ebp - 0x64]
call fcn.1018d97f
add esp, 4
mov dword [edi + 0x180], 9
jmp 0x10016a4c
mov dword [edi + 0x180], 6
jmp 0x10016a4c
lea ecx, [ebp - 0x50]
mov dword [edi + 0x184], eax
movups xmmword [ebp - 0x50], xmm0
call fcn.1002f690
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x1001658c
cmp dword [ebp - 0x44], 0
jne 0x1001658c
lea ecx, [ebp - 0x44]
push ecx
call eax
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x10016596
mov eax, dword [edi]
push 0
push 0x80
push 3
push 0
push 3
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x18], ecx
test eax, eax
je 0x100165cb
push dword [ebp - 0x44]
call eax
mov ecx, dword [ebp - 0x18]
cmp esi, 0xffffffff
jne 0x1001663a
cmp ecx, 2
jne 0x100165ea
mov dword [edi + 0x180], 1
mov dword [edi + 0x184], ecx
jmp 0x10016a3d
cmp ecx, 3
jne 0x10016604
mov dword [edi + 0x180], 2
mov dword [edi + 0x184], ecx
jmp 0x10016a3d
cmp ecx, 5
jne 0x1001661e
mov dword [edi + 0x180], 3
mov dword [edi + 0x184], ecx
jmp 0x10016a3d
xor eax, eax
mov dword [edi + 0x184], ecx
cmp ecx, 0x20
setne al
add eax, 4
mov dword [edi + 0x180], eax
jmp 0x10016a3d
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x18], eax
mov dword [edi + 0x188], eax
mov dword [edi + 0x18c], 0
test eax, eax
jne 0x10016670
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x180], 7
jmp 0x10016a3d
cmp eax, 0x1400000
jbe 0x1001668d
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x180], 6
jmp 0x10016a3d
push 0x10229110
push eax
call fcn.1018dc86
add esp, 8
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x100166b8
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x180], 0xb
jmp 0x10016a3d
push dword [ebp - 0x18]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x24]
push 0
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x64]
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x10016a15
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x24], eax
jne 0x10016a15
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x50]
call fcn.1002f850
push 5
mov ecx, 0x10229698
call fcn.100c3be0
mov esi, eax
test esi, esi
je 0x100167a6
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov dword [ebp - 4], 1
mov eax, edi
cmp dword [edi + 0x14], 8
jb 0x10016753
mov eax, dword [edi]
push eax
lea eax, [ebp - 0x40]
push 0x101eb5f0
push eax
call fcn.100c40c0
add esp, 0xc
lea eax, [ebp - 0x40]
mov ecx, 0x10229698
push 0xcb
push str.RC::RCCommonFileInfo::GetFileSignAndMd5
push str.d:jenkinsworkspacepc_2345mpcsafe_build_rhinoprotect_rtpsystem_src_sddefencelogic_srcdrivermonitor_rcdvrmondatacache.cpp
push eax
push 5
call fcn.100c3c20
cmp esi, 1
jbe 0x10016797
lea eax, [ebp - 0x40]
mov ecx, 0x10229698
push eax
call fcn.100c3f40
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.100049f0
xorps xmm0, xmm0
lea ecx, [ebp - 0x60]
movups xmmword [ebp - 0x60], xmm0
call fcn.1002f690
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x100167cf
cmp dword [ebp - 0x54], 0
jne 0x100167cf
lea ecx, [ebp - 0x54]
push ecx
call eax
push edi
lea ecx, [ebp - 0xd0]
call fcn.100cf6f0
mov esi, eax
mov byte [ebp - 4], 3
call fcn.100ce5d0
lea eax, [edi + 0x48]
push eax
push esi
lea eax, [ebp - 0x1c]
push eax
call fcn.100ce3a0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xd0]
call fcn.100cf770
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x1001680f
push dword [ebp - 0x54]
call eax
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x1001689c
cmp dword [edi + 0x58], 0
jne 0x1001689c
xor ecx, ecx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], cx
mov byte [ebp - 4], 4
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x40]
push 0x101eb790
push eax
call fcn.100a1430
add esp, 0x10
cmp dword [edi + 0x1a0], 0
je 0x10016876
push 1
push 0x101e3ff4
lea ecx, [edi + 0x190]
call fcn.100088d0
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
push dword [ebp - 0x30]
cmovae eax, dword [ebp - 0x40]
lea ecx, [edi + 0x190]
push eax
call fcn.100088d0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x40]
call fcn.100049f0
push dword [edi + 0x188]
mov edx, dword [ebp - 0x64]
lea ecx, [ebp - 0x40]
call fcn.100a9610
add esp, 4
mov byte [ebp - 4], 5
lea ecx, [edi + 0x30]
push eax
call fcn.100047b0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x40]
call fcn.100049f0
push dword [ebp - 0x64]
call fcn.1018d97f
add esp, 4
mov ecx, 0x10229698
push 5
call fcn.100c3be0
mov dword [ebp - 0x24], eax
test eax, eax
je 0x10016989
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov byte [ebp - 4], 6
lea edx, [edi + 0x30]
cmp dword [edi + 0x44], 8
jb 0x1001691d
mov edx, dword [edi + 0x30]
cmp dword [edi + 0x5c], 8
lea esi, [edi + 0x48]
mov ecx, esi
jb 0x1001692a
mov ecx, dword [esi]
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x10016934
mov eax, dword [edi]
push edx
push ecx
push eax
lea eax, [ebp - 0x40]
push 0x101eb768
push eax
call fcn.100c40c0
add esp, 0x14
lea eax, [ebp - 0x40]
mov ecx, 0x10229698
push 0xe1
push str.RC::RCCommonFileInfo::GetFileSignAndMd5
push str.d:jenkinsworkspacepc_2345mpcsafe_build_rhinoprotect_rtpsystem_src_sddefencelogic_srcdrivermonitor_rcdvrmondatacache.cpp
push eax
push 5
call fcn.100c3c20
cmp dword [ebp - 0x24], 1
jbe 0x1001697b
lea eax, [ebp - 0x40]
mov ecx, 0x10229698
push eax
call fcn.100c3f40
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x40]
call fcn.100049f0
jmp 0x1001698c
lea esi, [edi + 0x48]
mov ecx, edi
call fcn.100a3ad0
test edx, edx
jne 0x1001699b
test eax, eax
je 0x100169ab
cmp dword [edi + 0x188], eax
jne 0x100169d4
cmp dword [edi + 0x18c], edx
jne 0x100169d4
cmp dword [edi + 0x58], 0
jne 0x100169b7
cmp dword [edi + 0x40], 0
je 0x100169c1
mov dword [edi + 0x180], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x60]
call fcn.1002f850
mov al, 1
jmp 0x10016a4e
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x100169e3
mov esi, dword [esi]
xor eax, eax
mov word [esi], ax
lea eax, [edi + 0x30]
cmp dword [eax + 0x14], 8
mov dword [eax + 0x10], 0
jb 0x100169fa
mov eax, dword [eax]
xor ecx, ecx
mov word [eax], cx
mov dword [edi + 0x180], 0xc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x60]
jmp 0x10016a47
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov dword [edi + 0x184], eax
mov dword [edi + 0x180], 8
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x64]
call fcn.1018d97f
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x50]
call fcn.1002f850
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1018d5a4
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4