Function at 0x473f10
Capabilities:
Get file size
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c5808
mov eax, dword fs:[0]
push eax
sub esp, 0xa0
mov eax, dword [0x67c3c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov dword [ebp - 0x90], esi
mov dword [ebp - 4], 0
call fcn.004782b0
add eax, 0x28
cmp dword [esi + 0x14], 7
mov dword [ebp - 0x6c], eax
mov eax, esi
jbe 0x473f62
mov eax, dword [esi]
push 0xfde9
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00544550
add esp, 0xc
cmp dword [esi + 0x14], 7
mov eax, esi
jbe 0x473f7e
mov eax, dword [esi]
xor edi, edi
mov dword [ebp - 0x7c], 0
push edi
push 0x80
push 3
push edi
push 1
push 0x80000000
xor esi, esi
mov dword [ebp - 0x70], edi
push eax
mov dword [ebp - 0x74], esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x78], ecx
cmp ecx, 0xffffffff
je 0x474019
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x74], esi
cmp esi, 0x800000
ja 0x474019
push eax
push esi
push eax
push 2
push eax
push dword [ebp - 0x78]
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [ebp - 0x7c], eax
test eax, eax
jne 0x473fed
push dword [ebp - 0x78]
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
xor eax, eax
jmp 0x474019
push esi
push 0
push 0
push 4
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edi, eax
mov dword [ebp - 0x70], edi
test edi, edi
jne 0x474019
push dword [ebp - 0x78]
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
push dword [ebp - 0x7c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
mov byte [ebp - 4], 2
test eax, eax
je 0x47427b
lea eax, [ebp - 0x68]
push eax
push esi
push edi
call fcn.0046e310
add esp, 0xc
mov dword [ebp - 0x88], 9
xor edi, edi
mov dword [ebp - 0x80], edi
mov edi, 0x66a048
nop word [eax + eax]
lea eax, [edi - 0x20]
xor ecx, ecx
mov dword [ebp - 0x84], eax
lea edx, [edi + 0x2c]
nop
mov eax, dword [ebp + ecx*4 - 0x38]
cmp eax, dword [edx]
jne 0x474078
inc ecx
add edx, 4
cmp ecx, 4
jl 0x474060
mov esi, 1
jmp 0x4740c3
xor ecx, ecx
lea edx, [edi + 4]
nop dword [eax]
mov eax, dword [ebp + ecx*4 - 0x60]
cmp eax, dword [edx]
jne 0x474095
inc ecx
add edx, 4
cmp ecx, 0xa
jl 0x474080
mov cl, 1
jmp 0x474097
xor cl, cl
mov eax, dword [ebp - 0x68]
cmp eax, dword [edi - 4]
jne 0x4740be
mov eax, dword [ebp - 0x64]
cmp eax, dword [edi]
jne 0x4740be
xor eax, eax
test cl, cl
sete al
lea eax, [eax*8 + 2]
mov dword [ebp - 0x8c], eax
mov esi, eax
jmp 0x4740c3
mov esi, 9
mov eax, dword [edi - 0x14]
test eax, eax
je 0x4740e7
cmp eax, 1
je 0x4740e7
push dword [edi - 0x20]
push dword [ebp - 0x90]
call fcn.0046bfb0
test al, al
je 0x4740e7
lea eax, [edi - 0x20]
mov dword [ebp - 0x80], eax
cmp esi, 2
je 0x474158
cmp esi, 0xa
jne 0x474121
push dword [ebp - 0x74]
push dword [ebp - 0x70]
call fcn.0046c320
add esp, 8
test eax, eax
jne 0x474126
lea eax, [edi - 0x20]
push eax
lea eax, [ebp - 0x28]
push eax
sub esp, 0x18
lea eax, [ebp + 0xc]
mov ecx, esp
push eax
call fcn.00460620
push esi
call fcn.00473970
jmp 0x474126
cmp esi, 9
jne 0x47413a
add edi, 0x5c
cmp edi, 0x66aa58
jl 0x474050
mov edi, dword [ebp - 0x80]
jmp 0x474168
push dword [ebp - 0x84]
lea eax, [ebp - 0x28]
push eax
sub esp, 0x18
lea eax, [ebp + 0xc]
mov ecx, esp
push eax
call fcn.00460620
push esi
jmp 0x474276
mov edi, dword [ebp - 0x84]
mov dword [ebp - 0x88], 2
mov esi, 0x669d88
nop dword [eax]
xor eax, eax
lea edx, [esi + 8]
nop word [eax + eax]
mov ecx, dword [ebp + eax*4 - 0x38]
cmp ecx, dword [edx]
jne 0x47424a
inc eax
add edx, 4
cmp eax, 4
jl 0x474180
mov edx, dword [esi]
xorps xmm0, xmm0
mov ecx, edx
mov dword [ebp - 0x9c], 0
movups xmmword [ebp - 0xac], xmm0
mov dword [ebp - 0x98], 0
lea edi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4741c0
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0xac]
call fcn.004427c0
mov ecx, dword [ebp - 0x6c]
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 3
push eax
call fcn.0046ae70
mov esi, dword [esi + 4]
mov eax, dword [eax]
add eax, 0x20
push eax
lea eax, [ebp - 0x28]
push eax
sub esp, 0x18
lea eax, [ebp + 0xc]
mov ecx, esp
push eax
call fcn.00460620
push esi
call fcn.00473970
mov ecx, dword [ebp - 0x98]
cmp ecx, 0xf
jbe 0x47427b
mov edx, dword [ebp - 0xac]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x474312
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x47434a
jmp 0x474312
add esi, 0x18
cmp esi, 0x66a028
jne 0x474170
test edi, edi
je 0x47427b
push edi
lea eax, [ebp - 0x28]
push eax
sub esp, 0x18
lea eax, [ebp + 0xc]
mov ecx, esp
push eax
call fcn.00460620
push dword [ebp - 0x88]
call fcn.00473970
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x474289
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, dword [ebp - 0x7c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x474299
push eax
call esi
mov eax, dword [ebp - 0x78]
cmp eax, 0xffffffff
je 0x4742a4
push eax
call esi
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x4742d8
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4742ce
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x47434f
push ecx
push edx
call fcn.0059a744
add esp, 8
mov ecx, dword [ebp + 0x20]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
cmp ecx, 0xf
jbe 0x47432b
mov edx, dword [ebp + 0xc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x474321
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x47434f
jmp 0x474321
push ecx
push edx
call fcn.0059a744
add esp, 8
jmp 0x47427b
push ecx
push edx
call fcn.0059a744
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0059a5ad
mov esp, ebp
pop ebp
ret 0x1c
call fcn.005ad975
call fcn.005ad975
int3