Function at 0x4434d0
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4834cd
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x4bf100]
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 eax, ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x78], eax
mov eax, 0x490
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x68], eax
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x6c], edi
xor eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x70], eax
xor al, al
mov byte [ebp - 0x49], al
mov byte [ebp - 0x56], al
mov byte [ebp - 0x4a], al
mov byte [ebp - 0x57], al
xor eax, eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x74], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
movzx eax, ax
mov dword [ebp - 0x60], edi
cmp dword [ebp - 0x54], edi
jne 0x443556
lea esi, [edi + 0x57]
jmp 0x443e42
mov ecx, 0x105
cmp ax, cx
je 0x443631
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 0x443eb9
push 0
push 0
push 0
push 0x52534d42
mov ecx, esi
call dword [0x484440]
call esi
mov edi, eax
test edi, edi
je 0x443eb9
xor ecx, ecx
add eax, 0x400
setb cl
neg ecx
or ecx, eax
push ecx
call fcn.004640c6
add esp, 4
mov ecx, eax
mov dword [ebp - 0x5c], ecx
test ecx, ecx
jne 0x4435ce
lea esi, [eax + 8]
mov edi, eax
jmp 0x443e42
lea eax, [edi + 0x400]
push eax
push 0
push ecx
call fcn.00457e10
add esp, 0xc
push edi
mov edi, dword [ebp - 0x5c]
push edi
push 0
push 0x52534d42
mov ecx, esi
call dword [0x484440]
call esi
test eax, eax
je 0x443eb2
mov eax, edi
mov cl, byte [eax + 1]
mov byte [ebp - 0x49], cl
mov dl, byte [eax + 2]
mov byte [ebp - 0x4a], dl
cmp cl, 2
jae 0x44361b
mov esi, 0x718
jmp 0x443e42
lea edi, [eax + 8]
mov dword [ebp - 0x1c], edi
mov esi, dword [eax + 4]
mov dword [ebp - 0x50], esi
xor ecx, ecx
mov dword [ebp - 0x64], ecx
jmp 0x443892
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x48], 0x2e002c
mov dword [ebp - 0x44], str.DevicePhysicalMemory
mov dword [ebp - 4], 0
push str.NtOpenSection
push 0x4b03d0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x443837
mov dword [ebp - 0x34], 0x18
mov dword [ebp - 0x30], 0
lea eax, [ebp - 0x48]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], 0x40
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
lea eax, [ebp - 0x34]
push eax
push 4
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call dword [0x484440]
call esi
test eax, eax
js 0x443837
push 0x10000
push 0xf0000
push 0
push 4
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ecx, eax
mov dword [ebp - 0x60], ecx
test ecx, ecx
je 0x443837
mov esi, ecx
mov dword [ebp - 0x7c], esi
mov eax, esi
sub eax, ecx
cmp eax, 0x10000
jae 0x4436f0
cmp dword [esi], 0x5f4d535f
je 0x4436f6
add esi, 0x10
jmp 0x4436d5
je 0x443837
mov al, byte [esi + 5]
cmp al, 0x1f
ja 0x443837
cmp al, 0x1e
je 0x44370d
cmp al, 0x1f
jne 0x443837
movzx eax, al
sub eax, ecx
add eax, esi
cmp eax, 0x10000
ja 0x443837
movzx eax, word [esi + 0x16]
test ax, ax
je 0x443837
mov ecx, 0x494d445f
cmp ecx, dword [esi + 0x10]
jne 0x443837
mov ecx, 0x5f
cmp cl, byte [esi + 0x14]
jne 0x443837
mov cl, byte [esi + 6]
mov byte [ebp - 0x49], cl
mov byte [ebp - 0x56], cl
mov dl, byte [esi + 7]
mov byte [ebp - 0x4a], dl
mov byte [ebp - 0x57], dl
cmp cl, 2
jb 0x443837
mov esi, dword [esi + 0x18]
mov edi, eax
mov ecx, dword [ebp - 0x60]
push ecx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov ecx, esi
and ecx, 0xfff
mov dword [ebp - 0x80], 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 - 0x18]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x60], eax
test eax, eax
je 0x443835
xor ecx, ecx
mov eax, edi
add eax, 0x400
setb cl
neg ecx
or ecx, eax
push ecx
call fcn.004640c6
add esp, 4
mov esi, eax
mov dword [ebp - 0x74], esi
test esi, esi
jne 0x4437e1
mov ecx, 8
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x68], ecx
xor edi, edi
mov dword [ebp - 4], 0xffffffff
jmp 0x443881
lea eax, [edi + 0x400]
push eax
push 0
push esi
call fcn.00457e10
push edi
mov eax, dword [ebp - 0x80]
add eax, dword [ebp - 0x60]
push eax
push esi
call fcn.00457890
add esp, 0x18
mov eax, esi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x6c], eax
mov esi, edi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x70], esi
push dword [ebp - 0x60]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov dword [ebp - 0x60], 0
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x68], ecx
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
jmp 0x443881
xor edi, edi
mov ecx, 0x490
xor esi, esi
mov dword [ebp - 4], 0xffffffff
jmp 0x443881
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x443892
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x64]
test ecx, ecx
jne 0x443e2e
mov ecx, 0x490
mov dl, 1
test edi, edi
je 0x4439cc
test esi, esi
je 0x4439cc
mov esi, edi
add edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x1c]
add eax, 4
cmp eax, edi
ja 0x4438f4
cmp byte [esi], 0
jne 0x4438d1
cmp dl, 1
je 0x4439c5
add dl, 1
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x4438e2
cmp byte [ecx + 1], 0
je 0x4438e5
inc ecx
jmp 0x4438d7
lea esi, [ecx + 2]
lea eax, [esi + 4]
cmp eax, edi
jbe 0x4438c0
mov ecx, 0x490
mov esi, dword [ebp - 0x78]
mov dword [ebp - 0x18], edi
test ecx, ecx
jne 0x4439d4
mov dword [ebp - 0x18], ecx
call fcn.0040a9d6
mov ecx, eax
test ecx, ecx
je 0x443ec2
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.004433d0
add esp, 4
mov esi, dword [ebp - 0x18]
test eax, eax
jne 0x443997
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.00444fd0
add esp, 0x14
cmp eax, 3
jne 0x443997
dec dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
cmp eax, 0x76c
jl 0x443982
sub eax, 0x76c
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x40]
push eax
call fcn.0046de55
add esp, 4
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x58], eax
mov dword [ecx + 0x5c], edx
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
mov dword [ebp - 0x18], edi
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4439d4
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 edi, dword [ebp - 0x1c]
jmp 0x4439ec
xor ecx, ecx
jmp 0x4438f7
lea eax, [esi + edi]
mov dword [ebp - 0x18], eax
jmp 0x4439da
mov esi, dword [ebp - 0x50]
mov edi, dword [ebp - 0x1c]
mov dl, 1
test edi, edi
je 0x443a71
test esi, esi
je 0x443a71
mov esi, edi
mov ecx, dword [ebp - 0x50]
add edi, ecx
mov eax, dword [ebp - 0x1c]
add eax, 4
cmp eax, edi
ja 0x443a69
nop dword [eax]
cmp byte [esi], 1
jne 0x443a0d
cmp dl, 1
je 0x443a35
add dl, 1
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x443a1e
cmp byte [ecx + 1], 0
je 0x443a21
inc ecx
jmp 0x443a13
lea esi, [ecx + 2]
lea eax, [esi + 4]
cmp eax, edi
jbe 0x443a00
mov dl, 1
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
jmp 0x443a88
mov edi, dword [ebp - 0x54]
lea eax, [edi + 4]
push eax
mov dl, byte [esi + 7]
mov ecx, esi
call fcn.004433d0
add esp, 4
cmp byte [ebp - 0x49], 2
ja 0x443a57
jne 0x443a6e
cmp byte [ebp - 0x4a], 1
jb 0x443a6e
movups xmm0, xmmword [esi + 8]
movups xmmword [edi + 8], xmm0
mov dl, 1
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
jmp 0x443a88
mov edi, dword [ebp - 0x1c]
jmp 0x443a74
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x18]
test edi, edi
je 0x443bff
mov dl, 1
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x443af0
mov esi, edi
lea eax, [edi + 4]
cmp eax, dword [ebp - 0x18]
ja 0x443aed
cmp byte [esi], 2
jne 0x443a9f
cmp dl, 1
je 0x443ac4
add dl, 1
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x443ab0
cmp byte [ecx + 1], 0
je 0x443ab3
inc ecx
jmp 0x443aa5
lea esi, [ecx + 2]
lea eax, [esi + 4]
mov ecx, dword [ebp - 0x18]
cmp eax, ecx
jbe 0x443a92
mov dl, 1
jmp 0x443b04
mov eax, dword [ebp - 0x54]
add eax, 0x18
push eax
mov dl, byte [esi + 7]
mov ecx, esi
call fcn.004433d0
mov eax, dword [ebp - 0x54]
add eax, 0x1c
push eax
mov dl, byte [esi + 8]
mov ecx, esi
call fcn.004433d0
add esp, 8
mov dl, 1
jmp 0x443b01
mov eax, dword [ebp - 0x18]
test edi, edi
je 0x443bff
mov dl, 1
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x443b6b
mov ecx, dword [ebp - 0x18]
mov esi, edi
lea eax, [edi + 4]
cmp eax, ecx
ja 0x443b6b
nop dword [eax]
cmp byte [esi], 3
jne 0x443b1d
cmp dl, 1
je 0x443b42
add dl, 1
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x443b2e
cmp byte [ecx + 1], 0
je 0x443b31
inc ecx
jmp 0x443b23
lea esi, [ecx + 2]
lea eax, [esi + 4]
mov ecx, dword [ebp - 0x18]
cmp eax, ecx
jbe 0x443b10
mov dl, 1
jmp 0x443b89
mov eax, dword [ebp - 0x54]
add eax, 0x20
push eax
mov dl, byte [esi + 7]
mov ecx, esi
call fcn.004433d0
mov eax, dword [ebp - 0x54]
add eax, 0x24
push eax
mov dl, byte [esi + 8]
mov ecx, esi
call fcn.004433d0
add esp, 8
mov dl, 1
jmp 0x443b86
test edi, edi
je 0x443bff
mov dl, 1
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov esi, dword [ebp - 0x50]
test esi, esi
je 0x443c02
mov ecx, dword [ebp - 0x18]
mov esi, edi
lea eax, [edi + 4]
cmp eax, ecx
ja 0x443bff
cmp byte [esi], 4
jne 0x443b9f
cmp dl, 1
je 0x443bc0
add dl, 1
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x443bb0
cmp byte [ecx + 1], 0
je 0x443bb3
inc ecx
jmp 0x443ba5
lea esi, [ecx + 2]
lea eax, [esi + 4]
cmp eax, dword [ebp - 0x18]
jbe 0x443b92
jmp 0x443bff
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], ecx
cmp byte [ebp - 0x49], 2
ja 0x443bdd
jne 0x443bff
cmp byte [ebp - 0x4a], 3
jb 0x443bff
lea eax, [edx + 0x30]
push eax
mov dl, byte [esi + 0x20]
mov ecx, esi
call fcn.004433d0
mov eax, dword [ebp - 0x54]
add eax, 0x34
push eax
mov dl, byte [esi + 0x21]
mov ecx, esi
call fcn.004433d0
add esp, 8
mov esi, dword [ebp - 0x50]
mov byte [ebp - 0x55], 1
nop word [eax + eax]
mov dword [ebp - 0x1c], 0
call fcn.0040a9d6
mov ecx, eax
test ecx, ecx
je 0x443ec2
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 6
mov dl, 1
test edi, edi
je 0x443c7f
test esi, esi
je 0x443c7f
mov esi, edi
lea eax, [edi + 4]
cmp eax, dword [ebp - 0x18]
ja 0x443c7f
mov dh, byte [ebp - 0x55]
cmp byte [esi], 0x11
jne 0x443c60
cmp dh, dl
je 0x443d08
inc dl
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x443c71
cmp byte [ecx + 1], 0
je 0x443c74
inc ecx
jmp 0x443c66
lea esi, [ecx + 2]
lea eax, [esi + 4]
cmp eax, dword [ebp - 0x18]
jbe 0x443c51
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x443ca3
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 0x443cbc
jne 0x443e2e
mov al, byte [ebp - 0x4a]
cmp al, 1
jb 0x443dea
mov dl, 1
test edi, edi
je 0x443de0
cmp dword [ebp - 0x50], 0
je 0x443de0
mov esi, edi
lea eax, [edi + 4]
cmp eax, dword [ebp - 0x18]
ja 0x443de0
nop
cmp byte [esi], 0x16
jne 0x443cf0
cmp dl, 1
je 0x443dc9
inc dl
movzx ecx, byte [esi + 1]
add ecx, esi
cmp byte [ecx], 0
jne 0x443d05
cmp byte [ecx + 1], 0
je 0x443db8
inc ecx
jmp 0x443cf6
cmp byte [ebp - 0x49], 2
ja 0x443d16
jne 0x443d82
cmp byte [ebp - 0x4a], 3
jb 0x443d82
lea eax, [ebp - 0x1c]
push eax
mov dl, byte [esi + 0x1a]
mov ecx, esi
call fcn.004433d0
add esp, 4
test eax, eax
jne 0x443d3a
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx + 0x38]
call fcn.00444380
lea eax, [ebp - 0x1c]
push eax
mov dl, byte [esi + 0x18]
mov ecx, esi
call fcn.004433d0
add esp, 4
test eax, eax
jne 0x443d5e
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx + 0x3c]
call fcn.00444380
lea eax, [ebp - 0x1c]
push eax
mov dl, byte [esi + 0x19]
mov ecx, esi
call fcn.004433d0
add esp, 4
test eax, eax
jne 0x443d82
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx + 0x40]
call fcn.00444380
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x443da6
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 4]
call eax
add byte [ebp - 0x55], 1
je 0x443ca3
mov esi, dword [ebp - 0x50]
jmp 0x443c10
lea esi, [ecx + 2]
lea eax, [esi + 4]
cmp eax, dword [ebp - 0x18]
jbe 0x443ce0
jmp 0x443de0
mov eax, dword [ebp - 0x54]
add eax, 0x44
push eax
mov dl, byte [esi + 7]
mov ecx, esi
call fcn.004433d0
add esp, 4
mov dh, byte [ebp - 0x49]
cmp dh, 2
ja 0x443dee
jne 0x443e2e
mov al, byte [ebp - 0x4a]
cmp al, 3
jb 0x443e2e
mov dl, 1
test edi, edi
je 0x443e2e
cmp dword [ebp - 0x50], 0
je 0x443e2e
lea eax, [edi + 4]
mov esi, dword [ebp - 0x18]
cmp eax, esi
ja 0x443e2e
cmp byte [edi], 0x27
jne 0x443e10
cmp dl, 1
je 0x443e7d
inc dl
movzx ecx, byte [edi + 1]
add ecx, edi
cmp byte [ecx], 0
jne 0x443e21
cmp byte [ecx + 1], 0
je 0x443e24
inc ecx
jmp 0x443e16
lea edi, [ecx + 2]
lea eax, [edi + 4]
cmp eax, esi
jbe 0x443e04
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x443e3c
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov edi, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x64]
push 0
call fcn.0045f917
push edi
call fcn.0045f917
push dword [ebp - 0x74]
call fcn.0045f917
add esp, 0xc
mov eax, dword [ebp - 0x54]
mov dword [eax], 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.00455c9e
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x54]
lea eax, [esi + 0x48]
push eax
mov dl, byte [edi + 0xa]
mov ecx, edi
call fcn.004433d0
lea eax, [esi + 0x4c]
push eax
mov dl, byte [edi + 8]
mov ecx, edi
call fcn.004433d0
lea eax, [esi + 0x50]
push eax
mov dl, byte [edi + 9]
mov ecx, edi
call fcn.004433d0
add esp, 0xc
jmp 0x443e2e
mov esi, 0x490
jmp 0x443e42
mov esi, 0x490
xor edi, edi
jmp 0x443e42
push 0x80004005
call fcn.0040a70e
int3