Function at 0x180021480
Capabilities:
Check http status code
Contain obfuscated stackstrings
Get disk information
Get file size
Query or enumerate registry value
Write file on windows

Disassembly:
push rbx
push rbp
push r13
mov eax, 0x1d60
call fcn.18003c6a0
sub rsp, rax
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x1d30], rax
mov qword [rsp + 0x1d50], r12
mov qword [rsp + 0x1d48], r14
mov dword [rsp + 0x40], edx
mov r14, rcx
mov r12d, edx
mov byte [rsp + 0x270], 0x33
mov byte [rsp + 0x271], 0xc0
mov byte [rsp + 0x272], 0x8e
mov byte [rsp + 0x273], 0xd0
mov byte [rsp + 0x274], 0xbc
mov byte [rsp + 0x275], 0
mov byte [rsp + 0x276], 0x7c
mov byte [rsp + 0x277], 0xfb
mov byte [rsp + 0x278], 0x50
mov byte [rsp + 0x279], 7
mov byte [rsp + 0x27a], 0x50
mov byte [rsp + 0x27b], 0x1f
mov byte [rsp + 0x27c], 0xfc
mov byte [rsp + 0x27d], 0xbe
mov byte [rsp + 0x27e], 0x1b
mov byte [rsp + 0x27f], 0x7c
mov byte [rsp + 0x280], 0xbf
mov byte [rsp + 0x281], 0x1b
mov byte [rsp + 0x282], 6
mov byte [rsp + 0x283], 0x50
mov byte [rsp + 0x284], 0x57
mov byte [rsp + 0x285], 0xb9
mov byte [rsp + 0x286], 0xe5
mov byte [rsp + 0x287], 1
mov byte [rsp + 0x288], 0xf3
mov byte [rsp + 0x289], 0xa4
mov byte [rsp + 0x28a], 0xcb
mov byte [rsp + 0x28b], 0xbd
mov byte [rsp + 0x28c], 0xbe
mov byte [rsp + 0x28d], 7
mov byte [rsp + 0x28e], 0xb1
mov byte [rsp + 0x28f], 4
mov byte [rsp + 0x290], 0x38
mov byte [rsp + 0x291], 0x6e
mov byte [rsp + 0x292], 0
mov byte [rsp + 0x293], 0x7c
mov byte [rsp + 0x294], 9
mov byte [rsp + 0x295], 0x75
mov byte [rsp + 0x296], 0x13
mov byte [rsp + 0x297], 0x83
mov byte [rsp + 0x298], 0xc5
mov byte [rsp + 0x299], 0x10
mov byte [rsp + 0x29a], 0xe2
mov byte [rsp + 0x29b], 0xf4
mov byte [rsp + 0x29c], 0xcd
mov byte [rsp + 0x29d], 0x18
mov byte [rsp + 0x29e], 0x8b
mov byte [rsp + 0x29f], 0xf5
mov byte [rsp + 0x2a0], 0x83
mov byte [rsp + 0x2a1], 0xc6
mov byte [rsp + 0x2a2], 0x10
mov byte [rsp + 0x2a3], 0x49
mov byte [rsp + 0x2a4], 0x74
mov byte [rsp + 0x2a5], 0x19
mov byte [rsp + 0x2a6], 0x38
mov byte [rsp + 0x2a7], 0x2c
mov byte [rsp + 0x2a8], 0x74
mov byte [rsp + 0x2a9], 0xf6
mov byte [rsp + 0x2aa], 0xa0
mov byte [rsp + 0x2ab], 0xb5
mov byte [rsp + 0x2ac], 7
mov byte [rsp + 0x2ad], 0xb4
mov byte [rsp + 0x2ae], 7
mov byte [rsp + 0x2af], 0x8b
mov byte [rsp + 0x2b0], 0xf0
mov byte [rsp + 0x2b1], 0xac
mov byte [rsp + 0x2b2], 0x3c
mov byte [rsp + 0x2b3], 0
mov byte [rsp + 0x2b4], 0x74
mov byte [rsp + 0x2b5], 0xfc
mov byte [rsp + 0x2b6], 0xbb
mov byte [rsp + 0x2b7], 7
mov byte [rsp + 0x2b8], 0
mov byte [rsp + 0x2b9], 0xb4
mov byte [rsp + 0x2ba], 0xe
mov byte [rsp + 0x2bb], 0xcd
mov byte [rsp + 0x2bc], 0x10
mov byte [rsp + 0x2bd], 0xeb
mov byte [rsp + 0x2be], 0xf2
mov byte [rsp + 0x2bf], 0x88
mov byte [rsp + 0x2c0], 0x4e
mov byte [rsp + 0x2c1], 0x10
mov byte [rsp + 0x2c2], 0xe8
mov byte [rsp + 0x2c3], 0x46
mov byte [rsp + 0x2c4], 0
mov byte [rsp + 0x2c5], 0x73
mov byte [rsp + 0x2c6], 0x2a
mov byte [rsp + 0x2c7], 0xfe
mov byte [rsp + 0x2c8], 0x46
mov byte [rsp + 0x2c9], 0x10
mov byte [rsp + 0x2ca], 0x80
mov byte [rsp + 0x2cb], 0x7e
mov byte [rsp + 0x2cc], 4
mov byte [rsp + 0x2cd], 0xb
mov byte [rsp + 0x2ce], 0x74
mov byte [rsp + 0x2cf], 0xb
mov byte [rsp + 0x2d0], 0x80
mov byte [rsp + 0x2d1], 0x7e
mov byte [rsp + 0x2d2], 4
mov byte [rsp + 0x2d3], 0xc
mov byte [rsp + 0x2d4], 0x74
mov byte [rsp + 0x2d5], 5
mov byte [rsp + 0x2d6], 0xa0
mov byte [rsp + 0x2d7], 0xb6
mov byte [rsp + 0x2d8], 7
mov byte [rsp + 0x2d9], 0x75
mov byte [rsp + 0x2da], 0xd2
mov byte [rsp + 0x2db], 0x80
mov byte [rsp + 0x2dc], 0x46
mov byte [rsp + 0x2dd], 2
mov byte [rsp + 0x2de], 6
mov byte [rsp + 0x2df], 0x83
mov byte [rsp + 0x2e0], 0x46
mov byte [rsp + 0x2e1], 8
mov byte [rsp + 0x2e2], 6
mov byte [rsp + 0x2e3], 0x83
mov byte [rsp + 0x2e4], 0x56
mov byte [rsp + 0x2e5], 0xa
mov byte [rsp + 0x2e6], 0
mov byte [rsp + 0x2e7], 0xe8
mov byte [rsp + 0x2e8], 0x21
mov byte [rsp + 0x2e9], 0
mov byte [rsp + 0x2ea], 0x73
mov byte [rsp + 0x2eb], 5
mov byte [rsp + 0x2ec], 0xa0
mov byte [rsp + 0x2ed], 0xb6
mov byte [rsp + 0x2ee], 7
mov byte [rsp + 0x2ef], 0xeb
mov byte [rsp + 0x2f0], 0xbc
mov byte [rsp + 0x2f1], 0x81
mov byte [rsp + 0x2f2], 0x3e
mov byte [rsp + 0x2f3], 0xfe
mov byte [rsp + 0x2f4], 0x7d
mov byte [rsp + 0x2f5], 0x55
mov byte [rsp + 0x2f6], 0xaa
mov byte [rsp + 0x2f7], 0x74
mov byte [rsp + 0x2f8], 0xb
mov byte [rsp + 0x2f9], 0x80
mov byte [rsp + 0x2fa], 0x7e
mov byte [rsp + 0x2fb], 0x10
mov byte [rsp + 0x2fc], 0
mov byte [rsp + 0x2fd], 0x74
mov byte [rsp + 0x2fe], 0xc8
mov byte [rsp + 0x2ff], 0xa0
mov byte [rsp + 0x300], 0xb7
mov byte [rsp + 0x301], 7
mov byte [rsp + 0x302], 0xeb
mov byte [rsp + 0x303], 0xa9
mov byte [rsp + 0x304], 0x8b
mov byte [rsp + 0x305], 0xfc
mov byte [rsp + 0x306], 0x1e
mov byte [rsp + 0x307], 0x57
mov byte [rsp + 0x308], 0x8b
mov byte [rsp + 0x309], 0xf5
mov byte [rsp + 0x30a], 0xcb
mov byte [rsp + 0x30b], 0xbf
mov byte [rsp + 0x30c], 5
mov byte [rsp + 0x30d], 0
mov byte [rsp + 0x30e], 0x8a
mov byte [rsp + 0x30f], 0x56
mov byte [rsp + 0x310], 0
mov byte [rsp + 0x311], 0xb4
mov byte [rsp + 0x312], 8
mov byte [rsp + 0x313], 0xcd
mov byte [rsp + 0x314], 0x13
mov byte [rsp + 0x315], 0x72
mov byte [rsp + 0x316], 0x23
mov byte [rsp + 0x317], 0x8a
mov byte [rsp + 0x318], 0xc1
mov byte [rsp + 0x319], 0x24
mov byte [rsp + 0x31a], 0x3f
mov byte [rsp + 0x31b], 0x98
mov byte [rsp + 0x31c], 0x8a
mov byte [rsp + 0x31d], 0xde
mov byte [rsp + 0x31e], 0x8a
mov byte [rsp + 0x31f], 0xfc
mov byte [rsp + 0x320], 0x43
mov byte [rsp + 0x321], 0xf7
mov byte [rsp + 0x322], 0xe3
mov byte [rsp + 0x323], 0x8b
mov byte [rsp + 0x324], 0xd1
mov byte [rsp + 0x325], 0x86
mov byte [rsp + 0x326], 0xd6
mov byte [rsp + 0x327], 0xb1
mov byte [rsp + 0x328], 6
mov byte [rsp + 0x329], 0xd2
mov byte [rsp + 0x32a], 0xee
mov byte [rsp + 0x32b], 0x42
mov byte [rsp + 0x32c], 0xf7
mov byte [rsp + 0x32d], 0xe2
mov byte [rsp + 0x32e], 0x39
mov byte [rsp + 0x32f], 0x56
mov byte [rsp + 0x330], 0xa
mov byte [rsp + 0x331], 0x77
mov byte [rsp + 0x332], 0x23
mov byte [rsp + 0x333], 0x72
mov byte [rsp + 0x334], 5
mov byte [rsp + 0x335], 0x39
mov byte [rsp + 0x336], 0x46
mov byte [rsp + 0x337], 8
mov byte [rsp + 0x338], 0x73
mov byte [rsp + 0x339], 0x1c
mov byte [rsp + 0x33a], 0xb8
mov byte [rsp + 0x33b], 1
mov byte [rsp + 0x33c], 2
mov byte [rsp + 0x33d], 0xbb
mov byte [rsp + 0x33e], 0
mov byte [rsp + 0x33f], 0x7c
mov byte [rsp + 0x340], 0x8b
mov byte [rsp + 0x341], 0x4e
mov byte [rsp + 0x342], 2
mov byte [rsp + 0x343], 0x8b
mov byte [rsp + 0x344], 0x56
mov byte [rsp + 0x345], 0
mov byte [rsp + 0x346], 0xcd
mov byte [rsp + 0x347], 0x13
mov byte [rsp + 0x348], 0x73
mov byte [rsp + 0x349], 0x51
mov byte [rsp + 0x34a], 0x4f
mov byte [rsp + 0x34b], 0x74
mov byte [rsp + 0x34c], 0x4e
mov byte [rsp + 0x34d], 0x32
mov byte [rsp + 0x34e], 0xe4
mov byte [rsp + 0x34f], 0x8a
mov byte [rsp + 0x350], 0x56
mov byte [rsp + 0x351], 0
mov byte [rsp + 0x352], 0xcd
mov byte [rsp + 0x353], 0x13
mov byte [rsp + 0x354], 0xeb
mov byte [rsp + 0x355], 0xe4
mov byte [rsp + 0x356], 0x8a
mov byte [rsp + 0x357], 0x56
mov byte [rsp + 0x358], 0
mov byte [rsp + 0x359], 0x60
mov byte [rsp + 0x35a], 0xbb
mov byte [rsp + 0x35b], 0xaa
mov byte [rsp + 0x35c], 0x55
mov byte [rsp + 0x35d], 0xb4
mov byte [rsp + 0x35e], 0x41
mov byte [rsp + 0x35f], 0xcd
mov byte [rsp + 0x360], 0x13
mov byte [rsp + 0x361], 0x72
mov byte [rsp + 0x362], 0x36
mov byte [rsp + 0x363], 0x81
mov byte [rsp + 0x364], 0xfb
mov byte [rsp + 0x365], 0x55
mov byte [rsp + 0x366], 0xaa
mov byte [rsp + 0x367], 0x75
mov byte [rsp + 0x368], 0x30
mov byte [rsp + 0x369], 0xf6
mov byte [rsp + 0x36a], 0xc1
mov byte [rsp + 0x36b], 1
mov byte [rsp + 0x36c], 0x74
mov byte [rsp + 0x36d], 0x2b
mov byte [rsp + 0x36e], 0x61
mov byte [rsp + 0x36f], 0x60
mov byte [rsp + 0x370], 0x6a
mov byte [rsp + 0x371], 0
mov byte [rsp + 0x372], 0x6a
mov byte [rsp + 0x373], 0
mov byte [rsp + 0x374], 0xff
mov byte [rsp + 0x375], 0x76
mov byte [rsp + 0x376], 0xa
mov byte [rsp + 0x377], 0xff
mov byte [rsp + 0x378], 0x76
mov byte [rsp + 0x379], 8
mov byte [rsp + 0x37a], 0x6a
mov byte [rsp + 0x37b], 0
mov byte [rsp + 0x37c], 0x68
mov byte [rsp + 0x37d], 0
mov byte [rsp + 0x37e], 0x7c
mov byte [rsp + 0x37f], 0x6a
mov byte [rsp + 0x380], 1
mov byte [rsp + 0x381], 0x6a
mov byte [rsp + 0x382], 0x10
mov byte [rsp + 0x383], 0xb4
mov byte [rsp + 0x384], 0x42
mov byte [rsp + 0x385], 0x8b
mov byte [rsp + 0x386], 0xf4
mov byte [rsp + 0x387], 0xcd
mov byte [rsp + 0x388], 0x13
mov byte [rsp + 0x389], 0x61
mov byte [rsp + 0x38a], 0x61
mov byte [rsp + 0x38b], 0x73
mov byte [rsp + 0x38c], 0xe
mov byte [rsp + 0x38d], 0x4f
mov byte [rsp + 0x38e], 0x74
mov byte [rsp + 0x38f], 0xb
mov byte [rsp + 0x390], 0x32
mov byte [rsp + 0x391], 0xe4
mov byte [rsp + 0x392], 0x8a
mov byte [rsp + 0x393], 0x56
mov byte [rsp + 0x394], 0
mov byte [rsp + 0x395], 0xcd
mov byte [rsp + 0x396], 0x13
mov byte [rsp + 0x397], 0xeb
mov byte [rsp + 0x398], 0xd6
mov byte [rsp + 0x399], 0x61
mov byte [rsp + 0x39a], 0xf9
mov byte [rsp + 0x39b], 0xc3
mov byte [rsp + 0x39c], 0x49
mov byte [rsp + 0x39d], 0x6e
mov byte [rsp + 0x39e], 0x76
mov byte [rsp + 0x39f], 0x61
mov byte [rsp + 0x3a0], 0x6c
mov byte [rsp + 0x3a1], 0x69
mov byte [rsp + 0x3a2], 0x64
mov byte [rsp + 0x3a3], 0x20
mov byte [rsp + 0x3a4], 0x70
mov byte [rsp + 0x3a5], 0x61
mov byte [rsp + 0x3a6], 0x72
mov byte [rsp + 0x3a7], 0x74
mov byte [rsp + 0x3a8], 0x69
mov byte [rsp + 0x3a9], 0x74
mov byte [rsp + 0x3aa], 0x69
mov byte [rsp + 0x3ab], 0x6f
mov byte [rsp + 0x3ac], 0x6e
mov byte [rsp + 0x3ad], 0x20
mov byte [rsp + 0x3ae], 0x74
mov byte [rsp + 0x3af], 0x61
mov byte [rsp + 0x3b0], 0x62
mov byte [rsp + 0x3b1], 0x6c
mov byte [rsp + 0x3b2], 0x65
mov byte [rsp + 0x3b3], 0
mov byte [rsp + 0x3b4], 0x45
mov byte [rsp + 0x3b5], 0x72
mov byte [rsp + 0x3b6], 0x72
mov byte [rsp + 0x3b7], 0x6f
mov byte [rsp + 0x3b8], 0x72
mov byte [rsp + 0x3b9], 0x20
mov byte [rsp + 0x3ba], 0x6c
mov byte [rsp + 0x3bb], 0x6f
mov byte [rsp + 0x3bc], 0x61
mov byte [rsp + 0x3bd], 0x64
mov byte [rsp + 0x3be], 0x69
mov byte [rsp + 0x3bf], 0x6e
mov byte [rsp + 0x3c0], 0x67
mov byte [rsp + 0x3c1], 0x20
mov byte [rsp + 0x3c2], 0x6f
mov byte [rsp + 0x3c3], 0x70
mov byte [rsp + 0x3c4], 0x65
mov byte [rsp + 0x3c5], 0x72
mov byte [rsp + 0x3c6], 0x61
mov byte [rsp + 0x3c7], 0x74
mov byte [rsp + 0x3c8], 0x69
mov byte [rsp + 0x3c9], 0x6e
mov byte [rsp + 0x3ca], 0x67
mov byte [rsp + 0x3cb], 0x20
mov byte [rsp + 0x3cc], 0x73
mov byte [rsp + 0x3cd], 0x79
mov byte [rsp + 0x3ce], 0x73
mov byte [rsp + 0x3cf], 0x74
mov byte [rsp + 0x3d0], 0x65
mov byte [rsp + 0x3d1], 0x6d
mov byte [rsp + 0x3d2], 0
mov byte [rsp + 0x3d3], 0x4d
mov byte [rsp + 0x3d4], 0x69
mov byte [rsp + 0x3d5], 0x73
mov byte [rsp + 0x3d6], 0x73
mov byte [rsp + 0x3d7], 0x69
mov byte [rsp + 0x3d8], 0x6e
mov byte [rsp + 0x3d9], 0x67
mov byte [rsp + 0x3da], 0x20
mov byte [rsp + 0x3db], 0x6f
mov byte [rsp + 0x3dc], 0x70
mov byte [rsp + 0x3dd], 0x65
mov byte [rsp + 0x3de], 0x72
mov byte [rsp + 0x3df], 0x61
mov byte [rsp + 0x3e0], 0x74
mov byte [rsp + 0x3e1], 0x69
mov byte [rsp + 0x3e2], 0x6e
mov byte [rsp + 0x3e3], 0x67
mov byte [rsp + 0x3e4], 0x20
mov byte [rsp + 0x3e5], 0x73
mov byte [rsp + 0x3e6], 0x79
mov byte [rsp + 0x3e7], 0x73
mov byte [rsp + 0x3e8], 0x74
mov byte [rsp + 0x3e9], 0x65
mov byte [rsp + 0x3ea], 0x6d
mov byte [rsp + 0x3eb], 0
mov byte [rsp + 0x3ec], 0
mov byte [rsp + 0x3ed], 0
mov byte [rsp + 0x3ee], 0
mov byte [rsp + 0x3ef], 0
mov byte [rsp + 0x3f0], 0
mov byte [rsp + 0x3f1], 0
mov byte [rsp + 0x3f2], 0
mov byte [rsp + 0x3f3], 0
mov byte [rsp + 0x3f4], 0
mov byte [rsp + 0x3f5], 0
mov byte [rsp + 0x3f6], 0
mov byte [rsp + 0x3f7], 0
mov byte [rsp + 0x3f8], 0
mov byte [rsp + 0x3f9], 0
mov byte [rsp + 0x3fa], 0
mov byte [rsp + 0x3fb], 0
mov byte [rsp + 0x3fc], 0
mov byte [rsp + 0x3fd], 0
mov byte [rsp + 0x3fe], 0
mov byte [rsp + 0x3ff], 0
xor ecx, ecx
mov edx, 0x200
mov r8d, 0x1000
lea r9d, [rcx + 4]
mov byte [rsp + 0x400], 0
mov byte [rsp + 0x401], 0
mov byte [rsp + 0x402], 0
mov byte [rsp + 0x403], 0
mov byte [rsp + 0x404], 0
mov byte [rsp + 0x405], 0
mov byte [rsp + 0x406], 0
mov byte [rsp + 0x407], 0
mov byte [rsp + 0x408], 0
mov byte [rsp + 0x409], 0
mov byte [rsp + 0x40a], 0
mov byte [rsp + 0x40b], 0
mov byte [rsp + 0x40c], 0
mov byte [rsp + 0x40d], 0
mov byte [rsp + 0x40e], 0
mov byte [rsp + 0x40f], 0
mov byte [rsp + 0x410], 0
mov byte [rsp + 0x411], 0
mov byte [rsp + 0x412], 0
mov byte [rsp + 0x413], 0
mov byte [rsp + 0x414], 0
mov byte [rsp + 0x415], 0
mov byte [rsp + 0x416], 0
mov byte [rsp + 0x417], 0
mov byte [rsp + 0x418], 0
mov byte [rsp + 0x419], 0
mov byte [rsp + 0x41a], 0
mov byte [rsp + 0x41b], 0
mov byte [rsp + 0x41c], 0
mov byte [rsp + 0x41d], 0
mov byte [rsp + 0x41e], 0
mov byte [rsp + 0x41f], 0
mov byte [rsp + 0x420], 0
mov byte [rsp + 0x421], 0
mov byte [rsp + 0x422], 0
mov byte [rsp + 0x423], 0
mov byte [rsp + 0x424], 0
mov byte [rsp + 0x425], 0x2c
mov byte [rsp + 0x426], 0x44
mov byte [rsp + 0x427], 0x63
mov byte [rsp + 0x428], 0x57
mov byte [rsp + 0x429], 0x10
mov byte [rsp + 0x42a], 0xe6
mov byte [rsp + 0x42b], 0xb7
mov byte [rsp + 0x42c], 0
mov byte [rsp + 0x42d], 0
mov byte [rsp + 0x530], 0
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
xor ebp, ebp
mov r13, rax
mov qword [rsp + 0x48], rax
cmp r12d, 0xffffffff
je 0x1800227d0
lea rax, [rsp + 0x58]
test rax, rax
je 0x1800227d0
lea rcx, [rsp + 0x58]
call fcn.180001a60
test eax, eax
je 0x1800227d0
mov qword [rsp + 0x1d90], rsi
mov rsi, qword [rsp + 0x58]
lea r8d, [rbp + 1]
mov rcx, rsi
mov edx, r12d
call fcn.180002620
test eax, eax
je 0x180022793
cmp dword [r14 + 0x303], ebp
mov qword [rsp + 0x1d58], rdi
mov qword [rsp + 0x1d40], r15
mov r15d, ebp
mov qword [rsp + 0x58], rbp
mov edi, ebp
jle 0x1800224cd
lea rbx, [r14 + 0x337]
movzx eax, byte [rbx - 4]
cmp r12d, eax
jne 0x1800223b2
movzx eax, byte [rbx]
test al, al
je 0x1800223b2
lea rdx, str._c:BootBCD
lea rcx, [rsp + 0xd30]
movzx r8d, al
call qword [sym.imp.USER32.dll_wsprintfA]
xor r9d, r9d
mov qword [rsp + 0x30], rbp
lea rcx, [rsp + 0xd30]
lea r8d, [r9 + 3]
mov edx, 0x80000000
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x1800223c9
xor ebp, ebp
inc edi
add rbx, 0x196
cmp edi, dword [r14 + 0x303]
jl 0x180022353
jmp 0x1800224cd
xor edi, edi
xor r9d, r9d
xor edx, edx
lea r8d, [rdi + 8]
mov rcx, rax
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
xor edx, edx
mov rcx, rbp
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov rcx, rbp
mov r12d, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test rbx, rbx
je 0x1800224c8
lea edx, [rdi + 1]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbx
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rcx, rbx
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test rbp, rbp
je 0x1800224c1
cmp r12d, 0xc8
jbe 0x1800224a8
lea r13d, [r12 - 0xc8]
mov ebx, edi
test r13d, r13d
je 0x1800224a3
nop dword [rax]
mov r12d, ebx
lea rdx, str.11000001
mov r8d, 8
add r12, rbp
mov rcx, r12
call fcn.18002df10
test eax, eax
jne 0x180022492
lea rcx, [r12 + 0x20]
lea r8d, [rax + 8]
lea rdx, str.Element
call fcn.18002df10
test eax, eax
jne 0x180022492
mov r15d, dword [rdi + rbp + 0x64]
test r15d, r15d
jne 0x18002249c
inc ebx
inc rdi
cmp ebx, r13d
jb 0x180022450
mov r13, qword [rsp + 0x48]
jmp 0x1800224a8
mov r13, qword [rsp + 0x48]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test r15d, r15d
jne 0x180022621
mov r12d, dword [rsp + 0x40]
jmp 0x1800224cd
mov r12d, dword [rsp + 0x40]
jmp 0x1800224cd
mov r12d, dword [rsp + 0x40]
lea rax, [rsp + 0x58]
lea rdx, str.SYSTEMMountedDevices
mov r9d, 1
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x180022625
xor ebp, ebp
cmp dword [r14 + 0x303], ebp
mov edi, ebp
jle 0x180022614
lea rbx, [r14 + 0x337]
nop word [rax + rax]
movzx eax, byte [rbx - 4]
movzx ecx, byte [rbx]
mov dword [rsp + 0x40], 0x5c3a3f
mov byte [rsp + 0x40], cl
cmp r12d, eax
jne 0x1800225ee
test cl, cl
je 0x1800225ee
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 3
jne 0x1800225ee
movzx r8d, byte [rbx]
lea rdx, str.DosDevices_c:
lea rcx, [rsp + 0x930]
mov dword [rsp + 0x50], 0xffffffff
mov dword [rsp + 0x48], pe_nt_image_headers64
call qword [sym.imp.USER32.dll_wsprintfA]
mov rcx, qword [rsp + 0x58]
lea r11, [rsp + 0x48]
lea rax, [rsp + 0x430]
mov qword [rsp + 0x28], r11
lea r9, [rsp + 0x50]
lea rdx, [rsp + 0x930]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x1800225ee
cmp dword [rsp + 0x50], 3
jne 0x1800225ee
cmp dword [rsp + 0x48], 4
jb 0x1800225ee
mov eax, dword [rsp + 0x430]
test al, al
jne 0x180022611
cmp byte [rsp + 0x431], bpl
jne 0x180022611
cmp byte [rsp + 0x432], bpl
jne 0x180022611
cmp byte [rsp + 0x433], bpl
jne 0x180022611
inc edi
add rbx, 0x196
cmp edi, dword [r14 + 0x303]
jl 0x180022520
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x180022627
mov r15d, eax
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x180022627
xor ebp, ebp
jmp 0x180022627
xor ebp, ebp
lea rax, [rsp + 0x64]
lea r9, [rsp + 0x70]
xor edx, edx
mov r8d, 0x200
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.180002c60
mov rdi, qword [rsp + 0x1d58]
test eax, eax
je 0x180022783
lea rdx, [rsp + 0x70]
mov rcx, r13
mov r8d, 0x200
call fcn.18002dae0
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0x270]
mov r8d, 0x1be
call fcn.18002dae0
mov r11d, dword [rsp + 0x228]
test r15d, r15d
mov eax, 0xaa55
cmovne r11d, r15d
mov ebx, ebp
lea rcx, [rsp + 0x71]
mov edx, 0x80
mov dword [rsp + 0x228], r11d
mov word [rsp + 0x26e], ax
nop word [rax + rax]
movzx eax, byte [rcx - 1]
add rcx, 4
add ebx, eax
movzx eax, byte [rcx - 4]
add ebx, eax
movzx eax, byte [rcx - 3]
add ebx, eax
movzx eax, byte [rcx - 2]
add ebx, eax
sub rdx, 1
jne 0x1800226c0
lea rcx, [rsp + 0x530]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, 0x400
lea r8, str._.16I64x_.8x
mov ecx, eax
xor r9d, r9d
mov dword [rsp + 0x20], ebx
sub rdx, rcx
lea rcx, [rsp + rcx + 0x530]
call fcn.18002e064
lea rdx, str.Writing_new_MBR_at_offset_0._n
mov rcx, r14
call fcn.180016b80
mov qword [rsp + 0x50], rbp
mov dword [rsp + 0x48], ebp
test rsi, rsi
je 0x18002276b
lea rax, [rsp + 0x60]
test rax, rax
je 0x18002276b
bt dword [rsi + 0x10], 0x1f
jb 0x18002276b
mov rax, qword [rsi + 0x28]
mov qword [rsp + 0x50], rax
add rax, 0x200
cmp rax, qword [rsi + 0x18]
jbe 0x18002286f
lea rdx, str.CachedDrive_Read:_Last_byte_to_read_is_out_of_drive._n
mov rcx, rsi
call fcn.180001970
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.Failed_to_write_new_MBR__error_code___d._n
mov rcx, r14
mov r8d, eax
call fcn.180016b80
mov rcx, rsi
call fcn.180001b80
mov r15, qword [rsp + 0x1d40]
test rsi, rsi
je 0x1800227c8
mov rcx, rsi
call fcn.180001b80
mov rcx, qword [rsi + 0x77]
test rcx, rcx
je 0x1800227b7
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor edx, edx
mov r8d, 0x8000
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rsi, qword [rsp + 0x1d90]
cmp byte [rsp + 0x530], 0
mov r14, qword [rsp + 0x1d48]
mov r12, qword [rsp + 0x1d50]
je 0x1800228f3
test r13, r13
je 0x1800228f3
lea rdx, [0x1800428dc]
lea rcx, [rsp + 0x530]
call qword [sym.imp.KERNEL32.dll_lstrcatA]
xor r9d, r9d
mov qword [rsp + 0x30], rbp
lea rcx, [rsp + 0x530]
lea r8d, [r9 + 1]
mov edx, 0x40000000
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], 4
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x180022865
lea r9, [rsp + 0x60]
mov r8d, 0x200
mov rdx, r13
mov rcx, rax
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x1800228f5
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [rsp + 0x50]
mov rcx, qword [rsi + 0x30]
lea r8, [rsp + 0x54]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x50], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x1800228af
lea rdx, str.CachedDrive_Read:_Error_positioning._n
mov rcx, rsi
call fcn.180001970
jmp 0x18002276b
mov rcx, qword [rsi + 0x30]
lea r9, [rsp + 0x48]
lea rdx, [rsp + 0x70]
mov r8d, 0x200
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x1800228e6
lea rdx, str.CachedDrive_Read:_WriteFile_error._n
mov rcx, rsi
call fcn.180001970
jmp 0x18002276b
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x60], eax
jmp 0x180022783
xor eax, eax
mov rcx, qword [rsp + 0x1d30]
xor rcx, rsp
call fcn.18002d590
add rsp, 0x1d60
pop r13
pop rbp
pop rbx
ret