libmwemu/winapi/winapi32/kernel32/
file_time_to_local_file_time.rs1use crate::emu;
2
3pub fn FileTimeToLocalFileTime(emu: &mut emu::Emu) {
4 let lpFileTime =
5 emu.maps
6 .read_dword(emu.regs().get_esp())
7 .expect("kernel32!FileTimeToLocalFileTime cannot read lpFileTime") as u64;
8 let out_lpLocalFileTime = emu
9 .maps
10 .read_dword(emu.regs().get_esp() + 4)
11 .expect("kernel32!FileTimeToLocalFileTime cannot read out_lpLocalFileTime")
12 as u64;
13
14 let dwLowDateTime = emu
15 .maps
16 .read_dword(lpFileTime)
17 .expect("kernel32!FileTimeToLocalFileTime cannot read dwLowDateTime");
18 let dwHighDateTime = emu
19 .maps
20 .read_dword(lpFileTime + 4)
21 .expect("kernel32!FileTimeToLocalFileTime cannot read dwHighDateTime");
22
23 emu.maps.write_dword(out_lpLocalFileTime, dwLowDateTime);
24 emu.maps
25 .write_dword(out_lpLocalFileTime + 4, dwHighDateTime);
26
27 log_red!(
28 emu,
29 "kernel32!FileTimeToLocalFileTime {} {}",
30 dwLowDateTime,
31 dwHighDateTime
32 );
33
34 emu.stack_pop32(false);
35 emu.stack_pop32(false);
36 emu.regs_mut().rax = 1;
37}