Function at 0x4423c0
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x481a3d
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x4a4100]
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 - 0x50], edi
mov dword [ebp - 0x80], edi
mov eax, 0x490
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x70], eax
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x74], ecx
xor eax, eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x78], eax
xor al, al
mov byte [ebp - 0x49], al
mov byte [ebp - 0x5e], al
mov byte [ebp - 0x4a], al
mov byte [ebp - 0x5f], al
xor eax, eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x7c], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
movzx eax, ax
mov dword [ebp - 0x68], 0
test edi, edi
jne 0x44244b
mov ecx, 0x57
mov dword [ebp - 0x64], ecx
jmp 0x442d5c
mov ecx, 0x105
cmp ax, cx
je 0x442533
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 0x4427ec
push 0
push 0
push 0
push 0x52534d42
mov ecx, esi
call dword [0x483430]
call esi
mov edi, eax
test edi, edi
je 0x4427de
xor ecx, ecx
add eax, 0x400
setb cl
neg ecx
or ecx, eax
push ecx
call fcn.00461b84
add esp, 4
mov ecx, eax
mov dword [ebp - 0x6c], ecx
test ecx, ecx
jne 0x4424c9
mov ecx, 8
mov dword [ebp - 0x64], ecx
mov edi, dword [ebp - 0x50]
jmp 0x442d5c
lea eax, [edi + 0x400]
push eax
push 0
push ecx
call fcn.004557e0
add esp, 0xc
push edi
mov edi, dword [ebp - 0x6c]
push edi
push 0
push 0x52534d42
mov ecx, esi
call dword [0x483430]
call esi
test eax, eax
je 0x4427de
mov cl, byte [edi + 1]
mov byte [ebp - 0x49], cl
mov dl, byte [edi + 2]
mov byte [ebp - 0x4a], dl
cmp cl, 2
jae 0x44251a
mov ecx, 0x718
mov dword [ebp - 0x64], ecx
mov edi, dword [ebp - 0x50]
jmp 0x442d5c
lea esi, [edi + 8]
mov dword [ebp - 0x54], esi
mov eax, dword [edi + 4]
mov dword [ebp - 0x58], eax
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov edi, dword [ebp - 0x50]
jmp 0x442782
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x48], 0x2e002c
mov dword [ebp - 0x44], str.DevicePhysicalMemory
mov dword [ebp - 4], 0
push str.NtOpenSection
push 0x498128
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x4426d7
mov dword [ebp - 0x30], 0x18
mov dword [ebp - 0x2c], 0
lea eax, [ebp - 0x48]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 0x40
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
lea eax, [ebp - 0x30]
push eax
push 4
lea eax, [ebp - 0x40]
push eax
mov ecx, esi
call dword [0x483430]
call esi
test eax, eax
js 0x4426d7
push 0x10000
push 0xf0000
push 0
push 4
push dword [ebp - 0x40]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ecx, eax
mov dword [ebp - 0x68], ecx
test ecx, ecx
je 0x4426d7
mov esi, ecx
mov dword [ebp - 0x84], esi
mov eax, esi
sub eax, ecx
cmp eax, 0x10000
jae 0x4425f9
cmp dword [esi], 0x5f4d535f
je 0x4425ff
add esi, 0x10
jmp 0x4425db
je 0x4426d7
mov al, byte [esi + 5]
cmp al, 0x1f
ja 0x4426d7
cmp al, 0x1e
je 0x442616
cmp al, 0x1f
jne 0x4426d7
movzx eax, al
sub eax, ecx
add eax, esi
cmp eax, 0x10000
ja 0x4426d7
movzx eax, word [esi + 0x16]
test ax, ax
je 0x4426d7
mov ecx, 0x494d445f
cmp ecx, dword [esi + 0x10]
jne 0x4426d7
mov ecx, 0x5f
cmp cl, byte [esi + 0x14]
jne 0x4426d7
mov cl, byte [esi + 6]
mov byte [ebp - 0x49], cl
mov byte [ebp - 0x5e], cl
mov dl, byte [esi + 7]
mov byte [ebp - 0x4a], dl
mov byte [ebp - 0x5f], dl
cmp cl, 2
jb 0x4426d7
mov esi, dword [esi + 0x18]
mov edi, eax
mov ecx, dword [ebp - 0x68]
push ecx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov ecx, esi
and ecx, 0xfff
mov dword [ebp - 0x18], ecx
lea eax, [edi + 0xfff]
add eax, ecx
and eax, 0xfffff000
push eax
sub esi, ecx
push esi
push 0
push 4
push dword [ebp - 0x40]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x68], eax
test eax, eax
je 0x4426d4
xor ecx, ecx
mov eax, edi
add eax, 0x400
setb cl
neg ecx
or ecx, eax
push ecx
call fcn.00461b84
add esp, 4
mov esi, eax
mov dword [ebp - 0x7c], esi
test esi, esi
jne 0x4426e5
mov eax, 8
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x70], eax
mov edi, dword [ebp - 0x50]
xor esi, esi
mov dword [ebp - 4], 0xffffffff
jmp 0x44276e
lea eax, [edi + 0x400]
push eax
push 0
push esi
call fcn.004557e0
push edi
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x68]
push eax
push esi
call fcn.00455260
add esp, 0x18
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x74], esi
mov eax, edi
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x78], eax
push dword [ebp - 0x68]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov dword [ebp - 0x68], 0
xor eax, eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x70], eax
mov edi, dword [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
jmp 0x44276e
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x44277c
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x58]
test ecx, ecx
jne 0x442d4e
mov edi, 0x490
mov dl, 1
test esi, esi
je 0x442931
test eax, eax
je 0x442931
mov ecx, dword [ebp - 0x54]
add eax, ecx
mov dword [ebp - 0x40], eax
add ecx, 4
mov dword [ebp - 0x5c], ecx
cmp ecx, eax
ja 0x442805
cmp byte [esi], 0
jne 0x4427c4
cmp dl, 1
je 0x4428d9
add dl, 1
movzx ecx, byte [esi + 1]
add ecx, esi
nop word [eax + eax]
cmp byte [ecx], 0
jne 0x4427db
cmp byte [ecx + 1], 0
je 0x4427f7
inc ecx
jmp 0x4427d0
xor esi, esi
mov edi, dword [ebp - 0x50]
xor eax, eax
mov ecx, 0x490
jmp 0x442782
xor esi, esi
xor eax, eax
mov ecx, 0x490
jmp 0x442782
lea esi, [ecx + 2]
lea eax, [esi + 4]
cmp eax, dword [ebp - 0x40]
jbe 0x4427b3
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x80]
mov dword [ebp - 0x18], eax
test edi, edi
jne 0x4428e3
mov dword [ebp - 0x18], edi
call fcn.0040a916
mov ecx, eax
test ecx, ecx
je 0x442dc9
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 3
lea eax, [ebp - 0x18]
push eax
mov dl, byte [esi + 8]
mov ecx, esi
call fcn.004422c0
add esp, 4
mov esi, dword [ebp - 0x18]
test eax, eax
jne 0x4428a8
xorps xmm0, xmm0
movups xmmword [ebp - 0x3c], xmm0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
push str._d__d__d
push esi
call fcn.00443530
add esp, 0x14
cmp eax, 3
jne 0x4428a8
dec dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
cmp eax, 0x76c
jl 0x442893
sub eax, 0x76c
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x3c]
push eax
call fcn.0046b915
add esp, 4
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x58], eax
mov dword [ecx + 0x5c], edx
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x18], edi
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4428e6
mov ecx, dword [esi]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push esi
call eax
mov dword [ebp - 0x18], edi
mov dl, 1
mov esi, dword [ebp - 0x54]
jmp 0x4428fe
xor edi, edi
mov eax, dword [ebp - 0x40]
jmp 0x442808
mov edi, dword [ebp - 0x40]
mov esi, dword [ebp - 0x54]
mov dl, 1
mov ecx, dword [ebp - 0x58]
test esi, esi
je 0x44299e
test ecx, ecx
je 0x44299e
mov eax, dword [ebp - 0x54]
add eax, 4
cmp eax, edi
ja 0x442998
nop dword [eax]
cmp byte [esi], 1
jne 0x44291d
cmp dl, 1
je 0x44295b
add dl, 1
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x44292e
cmp byte [ecx + 1], 0
je 0x442941
inc ecx
jmp 0x442923
lea ecx, [eax + esi]
mov dword [ebp - 0x18], ecx
lea eax, [esi + 4]
mov dword [ebp - 0x5c], eax
mov edi, ecx
jmp 0x4428e9
lea esi, [ecx + 2]
lea eax, [esi + 4]
cmp eax, edi
jbe 0x442910
mov dl, 1
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
jmp 0x4429b5
mov eax, dword [ebp - 0x50]
add eax, 4
push eax
mov dl, byte [esi + 7]
mov ecx, esi
call fcn.004422c0
add esp, 4
cmp byte [ebp - 0x49], 2
ja 0x44297d
jne 0x442998
cmp byte [ebp - 0x4a], 1
jb 0x442998
movups xmm0, xmmword [esi + 8]
mov ecx, dword [ebp - 0x50]
movups xmmword [ecx + 8], xmm0
mov dl, 1
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
jmp 0x4429b5
mov ecx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x5c]
test esi, esi
je 0x442b2f
mov dl, 1
mov dword [ebp - 0x5c], eax
test ecx, ecx
je 0x442a2d
cmp eax, edi
ja 0x442a2a
nop dword [eax]
cmp byte [esi], 2
jne 0x4429cd
cmp dl, 1
je 0x4429f8
add dl, 1
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x4429de
cmp byte [ecx + 1], 0
je 0x4429e1
inc ecx
jmp 0x4429d3
lea esi, [ecx + 2]
lea eax, [esi + 4]
cmp eax, edi
jbe 0x4429c0
mov dl, 1
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
jmp 0x442a3e
mov eax, dword [ebp - 0x50]
add eax, 0x18
push eax
mov dl, byte [esi + 7]
mov ecx, esi
call fcn.004422c0
mov eax, dword [ebp - 0x50]
add eax, 0x1c
push eax
mov dl, byte [esi + 8]
mov ecx, esi
call fcn.004422c0
add esp, 8
mov dl, 1
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
jmp 0x442a3e
mov esi, dword [ebp - 0x54]
test esi, esi
je 0x442b2f
mov dl, 1
mov dword [ebp - 0x5c], eax
test ecx, ecx
je 0x442aa9
cmp eax, edi
ja 0x442aa6
cmp byte [esi], 3
jne 0x442a4f
cmp dl, 1
je 0x442a77
add dl, 1
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x442a60
cmp byte [ecx + 1], 0
je 0x442a63
inc ecx
jmp 0x442a55
lea esi, [ecx + 2]
lea eax, [esi + 4]
cmp eax, edi
jbe 0x442a42
mov dl, 1
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x5c]
jmp 0x442aba
mov eax, dword [ebp - 0x50]
add eax, 0x20
push eax
mov dl, byte [esi + 7]
mov ecx, esi
call fcn.004422c0
mov eax, dword [ebp - 0x50]
add eax, 0x24
push eax
mov dl, byte [esi + 8]
mov ecx, esi
call fcn.004422c0
add esp, 8
mov dl, 1
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x5c]
jmp 0x442aba
mov esi, dword [ebp - 0x54]
test esi, esi
je 0x442b2f
mov dl, 1
mov dword [ebp - 0x5c], eax
test ecx, ecx
je 0x442b2f
cmp eax, edi
ja 0x442b2c
nop
cmp byte [esi], 4
jne 0x442acd
cmp dl, 1
je 0x442aed
add dl, 1
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x442ade
cmp byte [ecx + 1], 0
je 0x442ae1
inc ecx
jmp 0x442ad3
lea esi, [ecx + 2]
lea eax, [esi + 4]
cmp eax, edi
jbe 0x442ac0
jmp 0x442b2c
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], ecx
cmp byte [ebp - 0x49], 2
ja 0x442b0a
jne 0x442b2c
cmp byte [ebp - 0x4a], 3
jb 0x442b2c
lea eax, [edx + 0x30]
push eax
mov dl, byte [esi + 0x20]
mov ecx, esi
call fcn.004422c0
mov eax, dword [ebp - 0x50]
add eax, 0x34
push eax
mov dl, byte [esi + 0x21]
mov ecx, esi
call fcn.004422c0
add esp, 8
mov esi, dword [ebp - 0x54]
mov byte [ebp - 0x5d], 1
mov dword [ebp - 0x18], 0
call fcn.0040a916
mov ecx, eax
test ecx, ecx
je 0x442dc9
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 6
mov dl, 1
test esi, esi
je 0x442b9e
cmp dword [ebp - 0x58], 0
je 0x442b9e
cmp dword [ebp - 0x5c], edi
ja 0x442b9e
mov dh, byte [ebp - 0x5d]
cmp byte [esi], 0x11
jne 0x442b80
cmp dh, dl
je 0x442c28
inc dl
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x442b91
cmp byte [ecx + 1], 0
je 0x442b94
inc ecx
jmp 0x442b86
lea esi, [ecx + 2]
lea eax, [ecx + 6]
cmp eax, edi
jbe 0x442b71
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x442bc2
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 4]
call eax
mov dh, byte [ebp - 0x49]
cmp dh, 2
ja 0x442bdb
jne 0x442d4b
mov al, byte [ebp - 0x4a]
cmp al, 1
jb 0x442d09
mov dl, 1
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x442cff
cmp dword [ebp - 0x58], 0
je 0x442cff
mov esi, ecx
cmp dword [ebp - 0x5c], edi
ja 0x442cff
nop dword [eax]
cmp byte [esi], 0x16
jne 0x442c10
cmp dl, 1
je 0x442ce8
inc dl
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x442c25
cmp byte [ecx + 1], 0
je 0x442cd8
inc ecx
jmp 0x442c16
cmp byte [ebp - 0x49], 2
ja 0x442c36
jne 0x442ca2
cmp byte [ebp - 0x4a], 3
jb 0x442ca2
lea eax, [ebp - 0x18]
push eax
mov dl, byte [esi + 0x1a]
mov ecx, esi
call fcn.004422c0
add esp, 4
test eax, eax
jne 0x442c5a
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx + 0x38]
call fcn.004431d0
lea eax, [ebp - 0x18]
push eax
mov dl, byte [esi + 0x18]
mov ecx, esi
call fcn.004422c0
add esp, 4
test eax, eax
jne 0x442c7e
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx + 0x3c]
call fcn.004431d0
lea eax, [ebp - 0x18]
push eax
mov dl, byte [esi + 0x19]
mov ecx, esi
call fcn.004422c0
add esp, 4
test eax, eax
jne 0x442ca2
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx + 0x40]
call fcn.004431d0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x442cc6
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 4]
call eax
add byte [ebp - 0x5d], 1
je 0x442bc2
mov esi, dword [ebp - 0x54]
jmp 0x442b33
lea esi, [ecx + 2]
lea eax, [esi + 4]
cmp eax, edi
jbe 0x442c00
jmp 0x442cff
mov eax, dword [ebp - 0x50]
add eax, 0x44
push eax
mov dl, byte [esi + 7]
mov ecx, esi
call fcn.004422c0
add esp, 4
mov dh, byte [ebp - 0x49]
cmp dh, 2
ja 0x442d0d
jne 0x442d4b
mov al, byte [ebp - 0x4a]
cmp al, 3
jb 0x442d4b
mov dl, 1
mov esi, dword [ebp - 0x54]
test esi, esi
je 0x442d4b
cmp dword [ebp - 0x58], 0
je 0x442d4b
cmp dword [ebp - 0x5c], edi
ja 0x442d4b
cmp byte [esi], 0x27
jne 0x442d2d
cmp dl, 1
je 0x442d97
inc dl
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x442d3e
cmp byte [ecx + 1], 0
je 0x442d41
inc ecx
jmp 0x442d33
lea esi, [ecx + 2]
lea eax, [esi + 4]
cmp eax, edi
jbe 0x442d21
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x442d5c
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push 0
call fcn.0045d3d7
push dword [ebp - 0x6c]
call fcn.0045d3d7
push dword [ebp - 0x7c]
call fcn.0045d3d7
add esp, 0xc
mov eax, dword [ebp - 0x64]
mov dword [edi], eax
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.0045360d
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x50]
lea eax, [edi + 0x48]
push eax
mov dl, byte [esi + 0xa]
mov ecx, esi
call fcn.004422c0
lea eax, [edi + 0x4c]
push eax
mov dl, byte [esi + 8]
mov ecx, esi
call fcn.004422c0
lea eax, [edi + 0x50]
push eax
mov dl, byte [esi + 9]
mov ecx, esi
call fcn.004422c0
add esp, 0xc
jmp 0x442d4e
push 0x80004005
call fcn.0040a64c
int3