Function at 0x454fd0
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51520d
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
mov eax, dword [0x55f2b4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x50], edi
mov esi, 0x490
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x78], esi
xor eax, eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x80], eax
xor al, al
mov byte [ebp - 0x49], al
mov byte [ebp - 0x51], al
mov byte [ebp - 0x4a], al
mov byte [ebp - 0x52], al
xor eax, eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x74], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
movzx eax, ax
mov dword [ebp - 0x70], 0
test edi, edi
jne 0x455054
lea esi, [edi + 0x57]
jmp 0x4557b8
mov ecx, 0x105
cmp ax, cx
je 0x455133
push str.GetSystemFirmwareTable
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x4557b3
push 0
push 0
push 0
push 0x52534d42
mov ecx, esi
call dword [0x51a4a0]
call esi
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x4557b3
xor ecx, ecx
add eax, 0x400
setb cl
neg ecx
or ecx, eax
push ecx
call fcn.004f0180
add esp, 4
mov ecx, eax
mov dword [ebp - 0x68], ecx
test ecx, ecx
jne 0x4550cb
lea esi, [eax + 8]
jmp 0x4557b8
mov eax, dword [ebp - 0x1c]
add eax, 0x400
push eax
push 0
push ecx
call fcn.004e8d40
add esp, 0xc
push dword [ebp - 0x1c]
push dword [ebp - 0x68]
push 0
push 0x52534d42
mov ecx, esi
call dword [0x51a4a0]
call esi
test eax, eax
je 0x4557b3
mov edx, dword [ebp - 0x68]
mov al, byte [edx + 1]
mov byte [ebp - 0x49], al
mov cl, byte [edx + 2]
mov byte [ebp - 0x4a], cl
cmp al, 2
jae 0x45511b
mov esi, 0x718
jmp 0x4557b8
lea eax, [edx + 8]
mov dword [ebp - 0x58], eax
mov ecx, dword [edx + 4]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x64], 0
jmp 0x4553b9
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x48], 0x2e002c
mov dword [ebp - 0x44], str.DevicePhysicalMemory
mov dword [ebp - 4], 0
push str.NtOpenSection
push 0x545074
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x45535d
mov dword [ebp - 0x34], 0x18
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], 0x40
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
lea ecx, [ebp - 0x34]
push ecx
push 4
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, eax
call dword [0x51a4a0]
call dword [ebp - 0x18]
test eax, eax
js 0x45535d
push 0x10000
push 0xf0000
push 0
push 4
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ecx, eax
mov dword [ebp - 0x70], ecx
test ecx, ecx
je 0x45535d
mov esi, ecx
mov dword [ebp - 0x84], esi
mov eax, esi
sub eax, ecx
cmp eax, 0x10000
jae 0x4551fb
cmp dword [esi], 0x5f4d535f
je 0x455201
add esi, 0x10
jmp 0x4551dd
je 0x455358
mov al, byte [esi + 5]
cmp al, 0x1f
ja 0x455358
cmp al, 0x1e
je 0x455218
cmp al, 0x1f
jne 0x455358
movzx eax, al
sub eax, ecx
add eax, esi
cmp eax, 0x10000
ja 0x455358
movzx eax, word [esi + 0x16]
mov dword [ebp - 0x18], eax
test ax, ax
je 0x455358
mov eax, 0x494d445f
cmp eax, dword [esi + 0x10]
jne 0x455358
mov eax, 0x5f
cmp al, byte [esi + 0x14]
jne 0x455358
mov al, byte [esi + 6]
mov byte [ebp - 0x49], al
mov byte [ebp - 0x51], al
mov dl, byte [esi + 7]
mov byte [ebp - 0x4a], dl
mov byte [ebp - 0x52], dl
cmp al, 2
jb 0x455358
mov esi, dword [esi + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov ecx, esi
and ecx, 0xfff
mov dword [ebp - 0x88], ecx
mov edx, dword [ebp - 0x18]
movzx eax, dx
add eax, 0xfff
add eax, ecx
and eax, 0xfffff000
push eax
sub esi, ecx
push esi
push 0
push 4
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov esi, eax
mov dword [ebp - 0x70], esi
test esi, esi
je 0x455358
xor ecx, ecx
mov edx, dword [ebp - 0x18]
movzx eax, dx
add eax, 0x400
setb cl
neg ecx
or ecx, eax
push ecx
call fcn.004f0180
add esp, 4
mov edx, eax
mov dword [ebp - 0x74], edx
test edx, edx
jne 0x4552f5
mov esi, 8
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 4], 0xffffffff
jmp 0x45539d
mov ecx, dword [ebp - 0x18]
movzx eax, cx
add eax, 0x400
push eax
push 0
push edx
call fcn.004e8d40
mov ecx, dword [ebp - 0x18]
movzx eax, cx
push eax
mov eax, dword [ebp - 0x88]
add eax, esi
push eax
push dword [ebp - 0x74]
call fcn.004e8240
add esp, 0x18
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x7c], eax
mov ecx, dword [ebp - 0x18]
movzx eax, cx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x80], eax
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov dword [ebp - 0x70], 0
xor esi, esi
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 4], 0xffffffff
jmp 0x45539d
mov esi, 0x490
mov dword [ebp - 4], 0xffffffff
jmp 0x45539d
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4553ab
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
jne 0x45579e
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x5c]
push 1
lea edx, [ebp - 0x6c]
push edx
push 0
mov edx, ecx
mov ecx, eax
call fcn.00454ef0
add esp, 0xc
test eax, eax
jne 0x45549f
mov dword [ebp - 0x1c], eax
call fcn.004566d0
mov dword [ebp - 0x50], eax
test eax, eax
je 0x4557f2
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x51a4a0]
mov ecx, dword [ebp - 0x50]
call esi
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 3
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x6c]
mov dl, byte [ecx + 8]
call fcn.00454e60
add esp, 4
mov esi, dword [ebp - 0x1c]
test eax, eax
jne 0x455474
xorps xmm0, xmm0
movups xmmword [ebp - 0x40], xmm0
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x30]
push eax
push str._d__d__d
push esi
call fcn.00456830
add esp, 0x14
cmp eax, 3
jne 0x455474
dec dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
cmp eax, 0x76c
jl 0x455462
sub eax, 0x76c
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x40]
push eax
call fcn.004f5f2c
add esp, 4
mov dword [edi + 0x58], eax
mov dword [edi + 0x5c], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi - 0x10]
or eax, 0xffffffff
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x45549f
mov edi, dword [ecx]
mov eax, dword [edi]
mov esi, dword [eax + 4]
push ecx
mov ecx, esi
call dword [0x51a4a0]
mov ecx, edi
call esi
push 1
lea eax, [ebp - 0x50]
push eax
push 1
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
call fcn.00454ef0
add esp, 0xc
mov edi, dword [ebp - 0x60]
test eax, eax
jne 0x4554e6
lea eax, [edi + 4]
push eax
mov esi, dword [ebp - 0x50]
mov dl, byte [esi + 7]
mov ecx, esi
call fcn.00454e60
add esp, 4
cmp byte [ebp - 0x49], 2
ja 0x4554de
jne 0x4554e6
cmp byte [ebp - 0x4a], 1
jb 0x4554e6
movups xmm0, xmmword [esi + 8]
movups xmmword [edi + 8], xmm0
push 1
lea eax, [ebp - 0x50]
push eax
push 2
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
call fcn.00454ef0
add esp, 0xc
test eax, eax
jne 0x455522
lea eax, [edi + 0x18]
push eax
mov esi, dword [ebp - 0x50]
mov dl, byte [esi + 7]
mov ecx, esi
call fcn.00454e60
lea eax, [edi + 0x1c]
push eax
mov dl, byte [esi + 8]
mov ecx, esi
call fcn.00454e60
add esp, 8
push 1
lea eax, [ebp - 0x50]
push eax
push 3
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
call fcn.00454ef0
add esp, 0xc
test eax, eax
jne 0x45555e
lea eax, [edi + 0x20]
push eax
mov esi, dword [ebp - 0x50]
mov dl, byte [esi + 7]
mov ecx, esi
call fcn.00454e60
lea eax, [edi + 0x24]
push eax
mov dl, byte [esi + 8]
mov ecx, esi
call fcn.00454e60
add esp, 8
push 1
lea eax, [ebp - 0x50]
push eax
push 4
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
call fcn.00454ef0
add esp, 0xc
test eax, eax
jne 0x4555b4
mov esi, dword [ebp - 0x50]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], ecx
cmp byte [ebp - 0x49], 2
ja 0x455595
jne 0x4555b4
cmp byte [ebp - 0x4a], 3
jb 0x4555b4
lea eax, [edi + 0x30]
push eax
mov dl, byte [esi + 0x20]
mov ecx, esi
call fcn.00454e60
lea eax, [edi + 0x34]
push eax
mov dl, byte [esi + 0x21]
mov ecx, esi
call fcn.00454e60
add esp, 8
mov byte [ebp - 0x1c], 1
nop dword [eax + eax]
mov dword [ebp - 0x18], 0
call fcn.004566d0
mov dword [ebp - 0x50], eax
test eax, eax
je 0x4557f2
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x51a4a0]
mov ecx, dword [ebp - 0x50]
call esi
add eax, 0x10
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 6
push dword [ebp - 0x1c]
lea eax, [ebp - 0x6c]
push eax
push 0x11
mov edx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
mov ecx, esi
call fcn.00454ef0
add esp, 0xc
test eax, eax
jne 0x4556c8
cmp byte [ebp - 0x49], 2
ja 0x455625
jne 0x45568b
cmp byte [ebp - 0x4a], 3
jb 0x45568b
lea eax, [ebp - 0x18]
push eax
mov esi, dword [ebp - 0x6c]
mov dl, byte [esi + 0x1a]
mov ecx, esi
call fcn.00454e60
add esp, 4
test eax, eax
jne 0x455649
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x38]
call fcn.00455c50
lea eax, [ebp - 0x18]
push eax
mov dl, byte [esi + 0x18]
mov ecx, esi
call fcn.00454e60
add esp, 4
test eax, eax
jne 0x45566a
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x3c]
call fcn.00455c50
lea eax, [ebp - 0x18]
push eax
mov dl, byte [esi + 0x19]
mov ecx, esi
call fcn.00454e60
add esp, 4
test eax, eax
jne 0x45568b
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x40]
call fcn.00455c50
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4556b9
mov edi, dword [ecx]
mov eax, dword [edi]
push ecx
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x51a4a0]
mov ecx, edi
call esi
add byte [ebp - 0x1c], 1
mov edi, dword [ebp - 0x60]
jne 0x4555c0
jmp 0x4556f6
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4556f9
mov edi, dword [ecx]
mov eax, dword [edi]
push ecx
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x51a4a0]
mov ecx, edi
call esi
mov esi, dword [ebp - 0x58]
mov al, byte [ebp - 0x49]
cmp al, 2
ja 0x45570d
jne 0x455744
mov al, byte [ebp - 0x4a]
cmp al, 1
jb 0x4557ae
push 1
lea eax, [ebp - 0x50]
push eax
push 0x16
mov edx, dword [ebp - 0x5c]
mov ecx, esi
call fcn.00454ef0
add esp, 0xc
mov edi, dword [ebp - 0x60]
test eax, eax
jne 0x45573b
lea eax, [edi + 0x44]
push eax
mov ecx, dword [ebp - 0x50]
mov dl, byte [ecx + 7]
call fcn.00454e60
add esp, 4
mov al, byte [ebp - 0x49]
cmp al, 2
ja 0x455752
jmp 0x455747
mov edi, dword [ebp - 0x60]
cmp al, 2
jne 0x45579b
mov al, byte [ebp - 0x4a]
cmp al, 3
jb 0x45579b
push 1
lea eax, [ebp - 0x50]
push eax
push 0x27
mov edx, dword [ebp - 0x5c]
mov ecx, esi
call fcn.00454ef0
add esp, 0xc
test eax, eax
jne 0x45579b
lea eax, [edi + 0x48]
push eax
mov esi, dword [ebp - 0x50]
mov dl, byte [esi + 0xa]
mov ecx, esi
call fcn.00454e60
lea eax, [edi + 0x4c]
push eax
mov dl, byte [esi + 8]
mov ecx, esi
call fcn.00454e60
lea eax, [edi + 0x50]
push eax
mov dl, byte [esi + 9]
mov ecx, esi
call fcn.00454e60
add esp, 0xc
mov esi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x4557b8
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
jmp 0x4557b8
mov edi, dword [ebp - 0x60]
jmp 0x45574e
mov esi, 0x490
push 0
call fcn.004ebfb0
push dword [ebp - 0x68]
call fcn.004ebfb0
push dword [ebp - 0x74]
call fcn.004ebfb0
add esp, 0xc
mov dword [edi], esi
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004d0675
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00456410
int3