Function at 0x41d99f
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49dcbd
mov eax, dword fs:[0]
push eax
mov eax, 0x1d08
call fcn.00453080
mov eax, dword [0x4db068]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1c54], ecx
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x20]
mov esi, dword [ebp + 0x1c]
mov dword [ebp - 0x1c70], edi
mov dword [ebp - 0x1c60], eax
and dword [ebp - 4], 0
lea ecx, [ebp - 0x70]
call fcn.00401a80
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.00401a80
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x88]
call fcn.00401a80
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x70]
mov edx, dword [ebp + 0xc]
call fcn.00417266
lea ecx, [ebp - 0x1c48]
call fcn.0040d65a
mov byte [ebp - 4], 4
test esi, esi
lea ebx, [ebp - 0x1c48]
cmovne ebx, esi
mov dword [ebp - 0x1c6c], ebx
cmp byte [ebx + 0x1b80], 0
jne 0x41dad8
push dword [ebp - 0x1c60]
mov ecx, ebx
push 0
call fcn.0040e04f
mov dword [ebp - 0x1c60], eax
test eax, eax
je 0x41dad8
lea ecx, [ebp - 0x1d14]
call fcn.00402a5a
mov esi, eax
mov byte [ebp - 4], 5
push str.Shim_Module_probe_failed:
push esi
call fcn.0040508d
mov edi, dword [ebp - 0x1c60]
pop ecx
pop ecx
push edi
mov ecx, esi
call fcn.00403c13
lea eax, [ebp - 0x40]
mov ecx, esi
push eax
call fcn.00402a43
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x40]
call fcn.00402109
push eax
push 1
call fcn.00401235
pop ecx
pop ecx
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x40]
call fcn.004020b0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1d14]
call fcn.00402479
jmp 0x41eb08
push str._shim__n
mov ecx, edi
call fcn.00401638
push str._version_2.1.74__version__n
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x28]
call fcn.0040178d
pop ecx
mov byte [ebp - 4], 7
mov ecx, edi
push eax
call fcn.00401af3
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x28]
call fcn.004020b0
mov edi, dword [ebp - 0x1c54]
lea eax, [edi + 4]
lea ecx, [edi + 0x1c]
mov dword [ebp - 0x1c5c], eax
call fcn.004063ed
test al, al
jne 0x41dca0
push 0x4bd204
lea ecx, [ebp - 0x40]
call fcn.00401688
mov byte [ebp - 4], 8
lea ecx, [edi + 0x1c]
call fcn.00402109
lea ecx, [edi + 0x34]
mov esi, eax
call fcn.00402109
mov ecx, dword [ebp - 0x1c5c]
mov edi, eax
call fcn.00402109
lea ecx, [ebp - 0x1d14]
mov ebx, eax
call fcn.00402a5a
mov dword [ebp - 0x1c4c], eax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x70]
call fcn.00401634
push eax
lea ecx, [ebp - 0x70]
call fcn.00402109
push eax
push dword [ebp - 0x1c4c]
call fcn.004057cf
push str._generator_name
push dword [ebp - 0x1c4c]
call fcn.0040508d
push esi
mov esi, dword [ebp - 0x1c4c]
push esi
call fcn.0040508d
push str._moduleVersion
push esi
call fcn.0040508d
push edi
push esi
call fcn.0040508d
push str._architecture
push esi
call fcn.0040508d
add esp, 0x34
lea ecx, [ebp - 0x40]
call fcn.00401634
push eax
lea ecx, [ebp - 0x40]
call fcn.00402109
push eax
push esi
call fcn.004057cf
push str._revision
push esi
call fcn.0040508d
push dword [0x4b4a14]
push esi
call fcn.0040508d
push str._buildType
push esi
call fcn.0040508d
push dword [0x4b4a1c]
push esi
call fcn.0040508d
push str._buildTime
push esi
call fcn.0040508d
push dword [0x4b4a18]
push esi
call fcn.0040508d
push 0x4bd2cc
push esi
call fcn.0040508d
add esp, 0x44
push ebx
push esi
call fcn.0040508d
pop ecx
pop ecx
lea eax, [ebp - 0x28]
push eax
mov ecx, esi
call fcn.00402a43
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x28]
call fcn.00401ffa
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x41dc62
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, dword [ebp - 0x1c70]
call fcn.004016d4
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x28]
call fcn.004020b0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x1d14]
call fcn.00402479
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x40]
call fcn.004020b0
mov ebx, dword [ebp - 0x1c6c]
jmp 0x41dcac
mov eax, dword [ebp - 0x1c5c]
mov dword [ebp - 0x1c5c], eax
mov edx, dword [ebx + 0x1b88]
mov esi, edx
mov ecx, dword [ebx + 0x1b84]
sub esi, ecx
cmp edx, ecx
mov ecx, dword [ebp - 0x1c5c]
lea eax, [esi - 1]
cmovb esi, eax
movd xmm0, esi
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
addsd xmm0, qword [esi*8 + 0x4c9ba0]
divsd xmm0, qword [0x4c9b80]
movsd qword [ebp - 0x1c7c], xmm0
call fcn.00402109
lea ecx, [ebp - 0x1d14]
mov ebx, eax
call fcn.00402a5a
mov edi, eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x70]
call fcn.00401634
push eax
lea ecx, [ebp - 0x70]
call fcn.00402109
push eax
push edi
call fcn.004057cf
push str._instance_gmt_time
push edi
call fcn.0040508d
add esp, 0x14
lea eax, [ebp - 0x1c68]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [ebp - 0x1c68]
mov ecx, dword [ebp - 0x1c64]
mov dword [ebp - 0x1c68], eax
lea eax, [ebp - 0x58]
push ecx
mov dword [ebp - 0x1c64], ecx
lea ecx, [ebp - 0x1c68]
push eax
call fcn.0040761f
mov esi, eax
mov byte [ebp - 4], 0xc
mov ecx, esi
call fcn.00401634
push eax
mov ecx, esi
call fcn.00402109
push eax
push edi
call fcn.004057cf
push str._scan_time
push edi
call fcn.0040508d
add esp, 0x14
mov ecx, edi
push 0x4160c0
call fcn.00407466
push 0
lea eax, [ebp - 0x38]
push 3
push eax
call fcn.00450db5
add esp, 0xc
mov edx, eax
mov ecx, edi
call fcn.00407490
lea eax, [ebp - 0x1c7c]
mov ecx, edi
push eax
call fcn.00420c68
mov esi, eax
push 0x4bd320
push esi
call fcn.0040508d
push ebx
push esi
call fcn.0040508d
add esp, 0x10
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.00402a43
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x28]
call fcn.00401ffa
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x41ddf6
mov ecx, dword [eax]
push dword [eax + 0x10]
mov edi, dword [ebp - 0x1c70]
push ecx
mov ecx, edi
call fcn.004016d4
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x28]
call fcn.004020b0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x58]
call fcn.004020b0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1d14]
call fcn.00402479
mov ecx, dword [ebp - 0x1c54]
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.0041f096
test al, al
je 0x41de78
lea ecx, [ebp - 0x88]
call fcn.00401ffa
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x41de5d
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, edi
call fcn.004016d4
push 0x4b6b58
lea ecx, [ebp - 0x88]
call fcn.004016ad
push str._hardware_
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x28]
call fcn.0040178d
pop ecx
mov esi, eax
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x1c5c]
call fcn.00402109
push eax
mov edx, esi
lea ecx, [ebp - 0x58]
call fcn.004017fa
pop ecx
mov byte [ebp - 4], 0xf
mov ecx, edi
push eax
call fcn.00401af3
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x58]
call fcn.004020b0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x28]
call fcn.004020b0
mov ebx, dword [ebp - 0x1c6c]
mov esi, dword [ebp + 0xc]
inc esi
mov dword [ebp + 0xc], esi
cmp byte [ebx + 0xf], 0
je 0x41e032
push str.WriteShimSection____Now_write_CPUs
push 4
call fcn.00401235
mov eax, dword [ebx + 0x1aa4]
mov edx, dword [ebx + 0x1aa0]
sub eax, edx
pop ecx
pop ecx
xor ecx, ecx
sar eax, 2
mov dword [ebp - 0x1c4c], ecx
test eax, eax
je 0x41dfb4
push dword [edx + ecx*4]
mov ecx, dword [ebp - 0x1c54]
push esi
push edi
call fcn.004172a0
test al, al
jne 0x41df8e
lea ecx, [ebp - 0x1d14]
call fcn.00402a5a
mov esi, eax
mov byte [ebp - 4], 0x10
push str.Error_when_write_cpu
push esi
call fcn.0040508d
pop ecx
pop ecx
push dword [ebp - 0x1c4c]
mov ecx, esi
call fcn.00403c13
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.00402a43
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x28]
call fcn.00402109
push eax
push 4
call fcn.00401235
pop ecx
pop ecx
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x28]
call fcn.004020b0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1d14]
call fcn.00402479
mov esi, dword [ebp + 0xc]
mov eax, dword [ebx + 0x1aa4]
mov ecx, dword [ebp - 0x1c4c]
mov edx, dword [ebx + 0x1aa0]
inc ecx
sub eax, edx
mov dword [ebp - 0x1c4c], ecx
sar eax, 2
cmp ecx, eax
jb 0x41df10
push str.WriteShimSection____Now_write_Processors
push 4
call fcn.00401235
and dword [ebp - 0x3c], 0
lea eax, [ebp - 0x3c]
and dword [ebp - 0x38], 0
pop ecx
pop ecx
mov dword [ebp - 0x1c64], eax
call fcn.00413c0b
mov dword [ebp - 0x3c], eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x3c]
call fcn.004364db
test al, al
je 0x41dffc
mov ecx, dword [ebp - 0x1c54]
lea eax, [ebp - 0x3c]
push eax
push esi
push edi
call fcn.0041750a
mov byte [ebp - 4], 4
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x1c64], eax
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
push eax
push dword [eax]
lea eax, [ebp - 0x1c78]
push eax
call fcn.00420a65
mov byte [ebp - 4], 4
push 0x28
push dword [ebp - 0x3c]
call fcn.00451cfc
pop ecx
pop ecx
cmp byte [ebx + 0xe], 0
lea ecx, [ebx + 0x1a00]
je 0x41e062
push ecx
push esi
mov esi, dword [ebp - 0x1c54]
mov ecx, esi
push edi
call fcn.004178f2
test al, al
jne 0x41e068
push str.Write_CS_info_failed_
push 4
call fcn.00401235
pop ecx
pop ecx
jmp 0x41e068
mov esi, dword [ebp - 0x1c54]
push str.WriteShimSection____Now_write_MoboInfo
push 4
call fcn.00401235
pop ecx
pop ecx
push dword [ebx + 0x20]
mov ecx, esi
push dword [ebp + 0xc]
push edi
call fcn.00417a9f
test al, al
jne 0x41e096
push str.Error_when_write_MOBO_info_
push 4
call fcn.00401235
pop ecx
pop ecx
push dword [ebx + 0x1b50]
mov ecx, esi
push dword [ebp + 0xc]
push edi
call fcn.00417cfa
test al, al
jne 0x41e0b9
push str.Error_when_write_BIOS_info_
push 4
call fcn.00401235
pop ecx
pop ecx
push str.WriteShimSection____Now_write_HDs
push 4
call fcn.00401235
mov eax, dword [ebx + 0x1b60]
sub eax, dword [ebx + 0x1b5c]
cdq
mov dword [ebp - 0x1c50], 0x94
idiv dword [ebp - 0x1c50]
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0x1c4c], ecx
test eax, eax
je 0x41e1bd
xor edx, edx
mov dword [ebp - 0x1c58], edx
mov eax, dword [ebx + 0x1b5c]
add eax, edx
push eax
push ecx
push dword [ebp + 0xc]
push edi
push ecx
mov ecx, esi
call fcn.0041816a
test al, al
jne 0x41e183
lea ecx, [ebp - 0x1d14]
call fcn.00402a5a
mov esi, eax
mov byte [ebp - 4], 0x19
push str.Error_when_write_harddisk
push esi
call fcn.0040508d
pop ecx
pop ecx
push dword [ebp - 0x1c4c]
mov ecx, esi
call fcn.00403c13
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.00402a43
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x28]
call fcn.00402109
push eax
push 4
call fcn.00401235
pop ecx
pop ecx
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x28]
call fcn.004020b0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1d14]
call fcn.00402479
mov esi, dword [ebp - 0x1c54]
mov eax, dword [ebp - 0x1c50]
add dword [ebp - 0x1c58], eax
mov eax, dword [ebx + 0x1b60]
sub eax, dword [ebx + 0x1b5c]
cdq
idiv dword [ebp - 0x1c50]
mov ecx, dword [ebp - 0x1c4c]
mov edx, dword [ebp - 0x1c58]
inc ecx
mov dword [ebp - 0x1c4c], ecx
cmp ecx, eax
jb 0x41e0fc
push str.WriteShimSection____Now_write_NvidiaDriver
push 4
call fcn.00401235
lea eax, [ebx + 0x1adc]
cmp dword [eax], 0
pop ecx
pop ecx
je 0x41e1e2
push eax
push dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.004182a3
push str.WriteShimSection____Now_write_DispAdapters
push 4
call fcn.00401235
mov eax, dword [ebx + 0x1abc]
mov edx, dword [ebx + 0x1ab8]
sub eax, edx
and dword [ebp - 0x1c58], 0
pop ecx
pop ecx
xor ecx, ecx
sar eax, 2
mov dword [ebp - 0x1c50], ecx
test eax, eax
je 0x41e34d
push dword [edx + ecx*4]
mov ecx, esi
push dword [ebp + 0xc]
push edi
call fcn.004183b3
test al, al
je 0x41e2e5
mov eax, dword [ebp - 0x1c50]
mov edx, dword [ebx + 0x1ab8]
and dword [ebp - 0x1c4c], 0
mov ecx, dword [edx + eax*4]
mov eax, dword [ecx + 0xd4]
sub eax, dword [ecx + 0xd0]
sar eax, 2
test eax, eax
je 0x41e2c3
mov ecx, dword [ebp - 0x1c50]
mov esi, dword [ebp - 0x1c4c]
mov eax, dword [edx + ecx*4]
mov eax, dword [eax + 0xd0]
mov eax, dword [eax + esi*4]
mov esi, dword [ebp - 0x1c54]
cmp byte [eax + 0x79], 0
jne 0x41e2a3
push ecx
push dword [ebp - 0x1c58]
add eax, 0x7a
mov ecx, esi
push eax
push dword [ebp + 0xc]
push edi
call fcn.00419569
inc dword [ebp - 0x1c58]
mov edx, dword [ebx + 0x1ab8]
mov ecx, dword [ebp - 0x1c50]
mov ecx, dword [edx + ecx*4]
inc dword [ebp - 0x1c4c]
mov eax, dword [ecx + 0xd4]
sub eax, dword [ecx + 0xd0]
sar eax, 2
cmp dword [ebp - 0x1c4c], eax
jb 0x41e257
mov eax, dword [ebx + 0x1abc]
mov ecx, dword [ebp - 0x1c50]
sub eax, edx
inc ecx
sar eax, 2
mov dword [ebp - 0x1c50], ecx
cmp ecx, eax
jb 0x41e218
jmp 0x41e34d
lea ecx, [ebp - 0x1d14]
call fcn.00402a5a
mov esi, eax
mov byte [ebp - 4], 0x1b
push str.Error_when_write_Display_device
push esi
call fcn.0040508d
mov eax, dword [ebp - 0x1c50]
pop ecx
pop ecx
push eax
mov ecx, esi
call fcn.00403c13
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.00402a43
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x28]
call fcn.00402109
push eax
push 4
call fcn.00401235
pop ecx
pop ecx
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x28]
call fcn.004020b0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1d14]
call fcn.00402479
mov eax, dword [ebx + 0x1ac8]
xor edx, edx
mov ecx, dword [ebx + 0x1ac4]
sub eax, ecx
mov esi, dword [ebp - 0x1c54]
sar eax, 2
mov dword [ebp - 0x1c60], edx
test eax, eax
je 0x41e544
and dword [ebp - 0x1c58], 0
mov eax, edx
or dword [ebp - 0x1c50], 0xffffffff
shl eax, 2
mov dword [ebp - 0x1c74], eax
mov eax, dword [ecx + eax]
lea ecx, [ebp - 0x1c58]
push ecx
mov ecx, ebx
push dword [eax + 0xb4]
push dword [eax + 0xb8]
call fcn.00410739
mov ecx, dword [ebx + 0x1ab8]
mov eax, dword [ebx + 0x1abc]
and dword [ebp - 0x1c4c], 0
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x1c78], ecx
mov dword [ebp - 0x1c58], eax
test eax, eax
je 0x41e48b
mov eax, dword [ebx + 0x1ac4]
mov ecx, dword [ebp - 0x1c74]
mov ecx, dword [ecx + eax]
add ecx, 0x3c
call fcn.00401ffa
mov edi, dword [ebp - 0x1c50]
mov esi, dword [ebp - 0x1c58]
mov ebx, dword [ebp - 0x1c4c]
mov dword [ebp - 0x1c64], eax
mov eax, dword [ebp - 0x1c78]
mov ecx, dword [eax + ebx*4]
add ecx, 0xc
call fcn.00401ffa
mov ecx, dword [ebp - 0x1c64]
mov dword [ebp - 0x1c58], ecx
cmp dword [ecx + 0x14], 8
jb 0x41e430
mov edx, dword [ecx]
mov dword [ebp - 0x1c58], edx
cmp dword [eax + 0x14], 8
mov dword [ebp - 0x1c4c], eax
jb 0x41e444
mov edx, dword [eax]
mov dword [ebp - 0x1c4c], edx
push dword [ecx + 0x10]
mov edx, dword [eax + 0x10]
push dword [ebp - 0x1c58]
mov ecx, dword [ebp - 0x1c4c]
call fcn.0040b7d9
pop ecx
test al, al
pop ecx
mov ecx, ebx
cmove ecx, edi
inc ebx
mov edi, ecx
cmp ebx, esi
jb 0x41e405
mov ebx, dword [ebp - 0x1c6c]
mov eax, ecx
mov esi, dword [ebp - 0x1c54]
mov dword [ebp - 0x1c50], edi
mov edi, dword [ebp - 0x1c70]
mov dword [ebp - 0x1c50], eax
push dword [ebp - 0x1c50]
mov eax, dword [ebx + 0x1ac4]
add eax, dword [ebp - 0x1c74]
push ecx
mov ecx, esi
push dword [eax]
push dword [ebp + 0xc]
push edi
call fcn.0041a255
test al, al
je 0x41e4d7
mov eax, dword [ebx + 0x1ac8]
mov edx, dword [ebp - 0x1c60]
mov ecx, dword [ebx + 0x1ac4]
inc edx
sub eax, ecx
mov dword [ebp - 0x1c60], edx
sar eax, 2
cmp edx, eax
jb 0x41e374
jmp 0x41e544
lea ecx, [ebp - 0x1d14]
call fcn.00402a5a
mov esi, eax
mov byte [ebp - 4], 0x1d
push str.Error_when_write_gpu_info
push esi
call fcn.0040508d
pop ecx
pop ecx
push dword [ebp - 0x1c50]
mov ecx, esi
call fcn.00403c13
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.00402a43
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x28]
call fcn.00402109
push eax
push 4
call fcn.00401235
pop ecx
pop ecx
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x28]
call fcn.004020b0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1d14]
call fcn.00402479
mov esi, dword [ebp - 0x1c54]
lea eax, [ebx + 0x1ad0]
mov ecx, esi
push eax
push dword [ebp + 0xc]
push edi
call fcn.0041cc1c
push dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.00418d21
push dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0041901d
push dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.00419317
lea eax, [ebp - 0x88]
push eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1c64], esp
push str.hardware
call fcn.00401688
mov byte [ebp - 4], 0x1f
lea eax, [ebp + 0x10]
push eax
mov byte [ebp - 4], 4
mov ecx, esi
call fcn.0041eff1
test al, al
je 0x41e5da
lea ecx, [ebp - 0x88]
call fcn.00401ffa
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x41e5bf
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, edi
call fcn.004016d4
push 0x4b6b58
lea ecx, [ebp - 0x88]
call fcn.004016ad
lea ecx, [ebp - 0xa0]
call fcn.00401a80
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x70]
mov edx, dword [ebp + 0xc]
call fcn.00417266
push str.____Insert_additional_hardware_here___
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x28]
call fcn.0040178d
pop ecx
mov esi, eax
mov byte [ebp - 4], 0x21
mov ecx, dword [ebp - 0x1c5c]
call fcn.00402109
push eax
mov edx, esi
lea ecx, [ebp - 0x58]
call fcn.004017fa
pop ecx
mov byte [ebp - 4], 0x22
mov ecx, edi
push eax
call fcn.00401af3
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x58]
call fcn.004020b0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x28]
call fcn.004020b0
push str.__hardware_
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x28]
call fcn.0040178d
pop ecx
mov esi, eax
mov byte [ebp - 4], 0x23
mov ecx, dword [ebp - 0x1c5c]
call fcn.00402109
push eax
mov edx, esi
lea ecx, [ebp - 0x58]
call fcn.004017fa
pop ecx
mov byte [ebp - 4], 0x24
mov ecx, edi
push eax
call fcn.00401af3
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x58]
call fcn.004020b0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x28]
call fcn.004020b0
push str._software_
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x28]
call fcn.0040178d
pop ecx
mov esi, eax
mov byte [ebp - 4], 0x25
mov ecx, dword [ebp - 0x1c5c]
call fcn.00402109
push eax
mov edx, esi
lea ecx, [ebp - 0x58]
call fcn.004017fa
pop ecx
mov byte [ebp - 4], 0x26
mov ecx, edi
push eax
call fcn.00401af3
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x58]
call fcn.004020b0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x28]
call fcn.004020b0
push str.WriteShimSection____Now_write_OS
push 4
call fcn.00401235
cmp byte [ebx + 0xd], 0
mov esi, dword [ebp - 0x1c54]
pop ecx
pop ecx
lea ecx, [ebx + 0x28]
je 0x41e725
push ecx
push dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0041c10c
test al, al
jne 0x41e725
push str.Write_OS_info_failed_
push 4
call fcn.00401235
pop ecx
pop ecx
push str.WriteShimSection____Now_write_.NET_FW_info
push 4
call fcn.00401235
pop ecx
pop ecx
lea eax, [ebx + 0x1b28]
mov ecx, esi
push eax
push dword [ebp + 0xc]
push edi
call fcn.0041cc6f
lea ecx, [ebp - 0x40]
call fcn.00401a80
mov byte [ebp - 4], 0x27
lea eax, [ebx + 0x1b34]
push eax
lea ecx, [ebp - 0x40]
call fcn.00402a72
mov al, byte [ebx + 0x1b4c]
mov ecx, esi
mov byte [ebp - 0x1c64], al
lea eax, [ebp - 0x40]
push dword [ebp - 0x1c64]
push eax
push dword [ebp + 0xc]
push edi
call fcn.0041cd9b
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x40]
call fcn.004020b0
push str.WriteShimSection____Now_write_PCI_Device
push 4
call fcn.00401235
mov eax, dword [ebx + 0x1b0c]
mov edx, dword [ebx + 0x1b08]
sub eax, edx
pop ecx
pop ecx
xor ecx, ecx
sar eax, 2
mov dword [ebp - 0x1c60], ecx
test eax, eax
je 0x41e7fa
push dword [edx + ecx*4]
mov ecx, esi
push dword [ebp + 0xc]
push edi
call fcn.0041c8d0
test al, al
jne 0x41e7d8
push str.Write_PCI_device_failed_
push 4
call fcn.00401235
pop ecx
pop ecx
mov eax, dword [ebx + 0x1b0c]
mov ecx, dword [ebp - 0x1c60]
mov edx, dword [ebx + 0x1b08]
inc ecx
sub eax, edx
mov dword [ebp - 0x1c60], ecx
sar eax, 2
cmp ecx, eax
jb 0x41e7b8
lea eax, [ebp - 0x88]
push eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1c64], esp
push str.software
call fcn.00401688
mov byte [ebp - 4], 0x28
lea eax, [ebp + 0x10]
push eax
mov byte [ebp - 4], 0x20
mov ecx, esi
call fcn.0041eff1
test al, al
je 0x41e85d
lea ecx, [ebp - 0x88]
call fcn.00401ffa
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x41e842
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, edi
call fcn.004016d4
push 0x4b6b58
lea ecx, [ebp - 0x88]
call fcn.004016ad
mov ebx, dword [ebp + 0xc]
mov ecx, esi
push ebx
push edi
call fcn.0041ce9d
push ebx
push edi
mov ecx, esi
call fcn.0041d566
push str.____Insert_additional_software_here___
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x28]
call fcn.0040178d
pop ecx
mov esi, eax
mov byte [ebp - 4], 0x29
mov ebx, dword [ebp - 0x1c5c]
mov ecx, ebx
call fcn.00402109
push eax
mov edx, esi
lea ecx, [ebp - 0x58]
call fcn.004017fa
pop ecx
mov byte [ebp - 4], 0x2a
mov ecx, edi
push eax
call fcn.00401af3
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x58]
call fcn.004020b0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x28]
call fcn.004020b0
push str.__software_
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x28]
call fcn.0040178d
pop ecx
mov esi, eax
mov byte [ebp - 4], 0x2b
mov ecx, ebx
call fcn.00402109
push eax
mov edx, esi
lea ecx, [ebp - 0x58]
call fcn.004017fa
pop ecx
mov byte [ebp - 4], 0x2c
mov ecx, edi
push eax
call fcn.00401af3
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x58]
call fcn.004020b0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x28]
call fcn.004020b0
push str._network_environment_
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x28]
call fcn.0040178d
pop ecx
mov esi, eax
mov byte [ebp - 4], 0x2d
mov ecx, ebx
call fcn.00402109
push eax
mov edx, esi
lea ecx, [ebp - 0x58]
call fcn.004017fa
pop ecx
mov byte [ebp - 4], 0x2e
mov ecx, edi
push eax
call fcn.00401af3
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x58]
call fcn.004020b0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x28]
call fcn.004020b0
lea eax, [ebp - 0x88]
push eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1c64], esp
push str.network_environment
call fcn.00401688
mov byte [ebp - 4], 0x2f
lea eax, [ebp + 0x10]
push eax
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp - 0x1c54]
call fcn.0041eff1
test al, al
je 0x41e9c9
lea ecx, [ebp - 0x88]
call fcn.00401ffa
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x41e9ae
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, edi
call fcn.004016d4
push 0x4b6b58
lea ecx, [ebp - 0x88]
call fcn.004016ad
push str.____Insert_additional_network_environment_here___
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x40]
call fcn.0040178d
pop ecx
mov esi, eax
mov byte [ebp - 4], 0x30
mov ecx, ebx
call fcn.00402109
push eax
mov edx, esi
lea ecx, [ebp - 0x58]
call fcn.004017fa
pop ecx
mov byte [ebp - 4], 0x31
mov ecx, edi
push eax
call fcn.00401af3
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x58]
call fcn.004020b0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x40]
call fcn.004020b0
push str.__network_environment_
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x40]
call fcn.0040178d
pop ecx
mov esi, eax
mov byte [ebp - 4], 0x32
mov ecx, ebx
call fcn.00402109
push eax
mov edx, esi
lea ecx, [ebp - 0x58]
call fcn.004017fa
pop ecx
mov byte [ebp - 4], 0x33
mov ecx, edi
push eax
call fcn.00401af3
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x58]
call fcn.004020b0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x40]
call fcn.004020b0
push str.____Insert_additional_sections_here___
mov ecx, edi
call fcn.00401638
mov ecx, ebx
call fcn.00402109
push eax
mov ecx, edi
call fcn.00401638
push str.__shim__n
mov ecx, edi
call fcn.00401638
mov ecx, edi
call fcn.00401634
lea ecx, [ebp - 0x1d14]
mov esi, eax
call fcn.00402a5a
mov edi, eax
mov byte [ebp - 4], 0x34
push str.Exit_WriteShimSection_length
push edi
call fcn.0040508d
pop ecx
pop ecx
push esi
mov ecx, edi
call fcn.00403c13
lea eax, [ebp - 0x28]
push eax
mov ecx, edi
call fcn.00402a43
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0x28]
call fcn.00402109
push eax
push 4
call fcn.00401235
pop ecx
pop ecx
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0x28]
call fcn.004020b0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x1d14]
call fcn.00402479
xor edi, edi
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xa0]
call fcn.004020b0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c48]
call fcn.0040d8a6
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x88]
call fcn.004020b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.004020b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x70]
call fcn.004020b0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x10]
call fcn.0040c80b
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00451f9f
leave
ret 0x1c