Function at 0x408890
Capabilities:
Delete file
Get common file path
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x423977
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x820
push ebx
push esi
push edi
mov edi, 0x432ab8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x72c]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebp - 0x72c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
mov dword [ebp - 0x14], eax
rep movsb byte es:[edi], byte [esi]
mov edi, 0x42b3fc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp - 0x10], esp
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x47], eax
mov ecx, ebx
mov dword [ebp - 0x43], eax
and ecx, 3
mov dword [ebp - 0x3f], eax
mov byte [ebp - 0x48], 1
mov word [ebp - 0x3b], ax
mov byte [ebp - 0x39], al
mov al, byte [0x432bc9]
test al, al
rep movsb byte es:[edi], byte [esi]
jne 0x408b63
call fcn.00407c50
test eax, eax
je 0x4089bd
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, str.INFdrvidx.bin
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [ebp + 0xc]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, str.INFdrvdata.bin
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x408ac2
call fcn.00413a5a
test eax, eax
je 0x408abf
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, str.INF_tbupddwd.pnf
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [ebp + 0xc]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, str.INF_tbupdd2k.pnf
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [ebp + 0xc]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, str.INF_tbupddwd.inf
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [ebp + 0xc]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, str.INF_tbupdd2k.inf
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x408ac2
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str..INF
lea ecx, [ebp - 0x1c]
call fcn.00413e2e
push 0x4324a0
lea ecx, [ebp - 0x24]
push str.INF_
push ecx
mov dword [ebp - 4], 0
call fcn.00414049
add esp, 0xc
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0x60]
push edx
push ecx
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.004140d9
mov ecx, eax
mov byte [ebp - 4], 2
call fcn.00413ead
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
mov byte [ebp - 4], 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x60]
call fcn.00413e8c
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call fcn.00413e8c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
jmp 0x408c19
mov edi, 0x432ab8
or ecx, 0xffffffff
xor eax, eax
mov ebx, dword [ebp + 8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push str..INF
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x1c]
call fcn.00413e2e
push 0x4324a0
lea ecx, [ebp - 0x24]
push 0x42a310
push ecx
mov dword [ebp - 4], 3
call fcn.00414049
add esp, 0xc
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0x60]
push edx
push ecx
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.004140d9
mov ecx, eax
mov byte [ebp - 4], 5
call fcn.00413ead
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
mov byte [ebp - 4], 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x60]
call fcn.00413e8c
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call fcn.00413e8c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.00413e8c
lea eax, [ebp - 0x72c]
push 0x42a990
push eax
call fcn.0041a731
mov edi, eax
xor eax, eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], 6
push ecx
call fcn.0040b1a0
mov edx, dword [0x425abc]
add esp, 0xc
or esi, 0xffffffff
lea ecx, [ebp - 0xd8]
push 1
push edx
push 0x12
push ebx
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], esi
mov dword [ebp + 8], esi
mov dword [ebp - 0x54], esi
mov byte [ebp - 4], 7
call fcn.00418bb3
test edi, edi
mov byte [ebp - 4], 8
jne 0x408c8e
push edi
push edi
call fcn.0041abfd
mov ebx, dword [ebp + 8]
test byte [edi + 0xc], 0x10
jne 0x40a189
push edi
lea eax, [ebp - 0x628]
push 0x400
push eax
call fcn.0041a91f
mov al, byte [edi + 0xc]
add esp, 0xc
test al, 0x10
jne 0x40a189
cmp ebx, dword [ebp - 0x54]
je 0x408d03
push ebx
lea ecx, [ebp - 0x168]
push 0x42a790
push ecx
mov dword [ebp - 0x54], ebx
call fcn.00419bfc
mov edx, dword [ebp - 0x38]
add esp, 0xc
lea ecx, [edx + ebx*8]
call fcn.00413ead
lea ecx, [ebp - 0x6c]
push ecx
push str.Has_Logconf
push eax
push 0x80000002
call fcn.0040adc0
mov eax, dword [ebp - 0x6c]
add esp, 0x10
test eax, eax
setne byte [ebp + 0xf]
cmp byte [ebp - 0x628], 0x23
jne 0x409081
push 3
lea edx, [ebp - 0x628]
push 0x42b370
push edx
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x408f42
mov eax, dword [ebp - 0x14]
inc eax
cmp eax, 0x10
mov dword [ebp - 0x14], eax
jl 0x408d6c
push str.Too_many_IFs_in_inf_file_template
lea ecx, [ebp - 0x24]
call fcn.00413e2e
lea eax, [ebp - 0x24]
push 0
push eax
mov byte [ebp - 4], 9
call fcn.00406eb0
add esp, 8
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 8
call fcn.00413e8c
push 4
call fcn.00419f80
mov ecx, dword [ebp - 0x14]
push 4
lea edx, [ebp - 0x624]
push str.PENX
push edx
mov byte [ebp + ecx - 0x48], 0
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x408d9a
mov ecx, dword [ebp - 0x14]
mov al, byte [0x432bd6]
mov byte [ebp + ecx - 0x48], al
push 8
lea edx, [ebp - 0x624]
push str.UNSIGNED
push edx
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x408de4
lea eax, [ebp - 0x70]
push eax
push str.W2KSigned
push 0
call fcn.0041103b
mov eax, dword [ebp - 0x70]
test eax, eax
jne 0x408ddb
call fcn.0040bb50
test al, al
je 0x408ddb
mov eax, 1
jmp 0x408ddd
xor eax, eax
mov ecx, dword [ebp - 0x14]
mov byte [ebp + ecx - 0x48], al
push 3
lea edx, [ebp - 0x624]
push 0x42b328
push edx
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x408e0a
call fcn.0040bb50
mov ecx, dword [ebp - 0x14]
mov byte [ebp + ecx - 0x48], al
push 7
lea edx, [ebp - 0x624]
push str.MAKEINF
push edx
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x408e30
mov ecx, dword [ebp - 0x14]
mov al, byte [0x432bc9]
mov byte [ebp + ecx - 0x48], al
push 3
lea edx, [ebp - 0x624]
push 0x42b31c
push edx
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x408e56
call fcn.0040bb90
mov ecx, dword [ebp - 0x14]
mov byte [ebp + ecx - 0x48], al
push 3
lea edx, [ebp - 0x624]
push 0x42b318
push edx
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x408e7c
call fcn.0040bbd0
mov ecx, dword [ebp - 0x14]
mov byte [ebp + ecx - 0x48], al
push 3
lea edx, [ebp - 0x624]
push 0x42b314
push edx
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x408ed7
mov eax, dword [ebp - 0x38]
lea ecx, [eax + ebx*8]
call fcn.00413ead
lea ecx, [ebp - 0x74]
push ecx
push str.PortType
push eax
push 0x80000002
call fcn.0040adc0
mov eax, dword [ebp - 0x74]
add esp, 0x10
cmp eax, 2
jbe 0x408ecf
cmp eax, 3
jne 0x408ed7
mov edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0x48], 0
jmp 0x408ed7
mov eax, dword [ebp - 0x14]
mov byte [ebp + eax - 0x48], 1
push 7
lea ecx, [ebp - 0x624]
push str.LOGCONF
push ecx
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x408c91
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
and edx, ecx
cmp edx, esi
jne 0x408f33
push str.LOGCONF_without_EACH_in_inf_file_template
lea ecx, [ebp - 0x24]
call fcn.00413e2e
lea eax, [ebp - 0x24]
push 0
push eax
mov byte [ebp - 4], 0xa
call fcn.00406eb0
add esp, 8
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 8
call fcn.00413e8c
push 4
call fcn.00419f80
mov edx, dword [ebp - 0x14]
mov cl, byte [ebp + 0xf]
mov byte [ebp + edx - 0x48], cl
jmp 0x408c91
push 3
lea eax, [ebp - 0x628]
push str.ELSE
push eax
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x408fa9
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x408f95
push str.ELSE_without_IF_in_inf_file_template
lea ecx, [ebp - 0x24]
call fcn.00413e2e
lea ecx, [ebp - 0x24]
push 0
push ecx
mov byte [ebp - 4], 0xb
call fcn.00406eb0
add esp, 8
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 8
call fcn.00413e8c
push 4
call fcn.00419f80
mov cl, byte [ebp + eax - 0x48]
lea eax, [ebp + eax - 0x48]
test cl, cl
sete dl
mov byte [eax], dl
jmp 0x408c91
push 6
lea eax, [ebp - 0x628]
push str.ENDIF
push eax
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x409002
mov eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0x14], eax
jns 0x408c91
push str.ENDIF_without_IF_in_inf_file_template
lea ecx, [ebp - 0x24]
call fcn.00413e2e
lea ecx, [ebp - 0x24]
push 0
push ecx
mov byte [ebp - 4], 0xc
call fcn.00406eb0
add esp, 8
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 8
call fcn.00413e8c
push 4
call fcn.00419f80
push 5
lea edx, [ebp - 0x628]
push str.EACH
push edx
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x409033
lea eax, [ebp - 0x50]
push eax
push edi
call fcn.0041abdb
add esp, 8
xor ebx, ebx
mov dword [ebp + 8], ebx
jmp 0x408c91
push 8
lea ecx, [ebp - 0x628]
push str.ENDEACH
push ecx
call fcn.0041a840
add esp, 0xc
test eax, eax
jne 0x408c91
mov eax, dword [ebp - 0x34]
inc ebx
cmp ebx, eax
mov dword [ebp + 8], ebx
jge 0x40906e
lea edx, [ebp - 0x50]
push edx
push edi
call fcn.0041abc3
add esp, 8
jmp 0x408c91
mov ebx, esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x54], esi
mov dword [ebp + 8], ebx
jmp 0x408c91
mov cl, 1
xor eax, eax
cmp eax, dword [ebp - 0x14]
jg 0x409099
mov dl, byte [ebp + eax - 0x48]
test dl, dl
je 0x408c91
inc eax
jmp 0x409085
test cl, cl
je 0x408c91
lea eax, [ebp - 0x628]
push 0xd
push eax
call fcn.0041a490
add esp, 8
test eax, eax
je 0x4090cc
lea ecx, [ebp - 0x628]
push 0xd
push ecx
call fcn.0041a490
add esp, 8
mov byte [eax], 0
jmp 0x4090a1
lea edx, [ebp - 0x628]
push 0xa
push edx
call fcn.0041a490
add esp, 8
test eax, eax
je 0x4090f7
lea eax, [ebp - 0x628]
push 0xa
push eax
call fcn.0041a490
add esp, 8
mov byte [eax], 0
jmp 0x4090cc
lea ecx, [ebp - 0x628]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00413e2e
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xd
call fcn.00413e91
cmp eax, 0xb
jl 0x409284
lea edx, [ebp - 0x120]
push 0xb
push edx
lea ecx, [ebp - 0x1c]
call fcn.0041430d
push str.__DRIVERVER
mov ecx, eax
mov byte [ebp - 4], 0xe
call fcn.0041419c
lea ecx, [ebp - 0x120]
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.00413e8c
test edi, edi
je 0x409284
lea eax, [ebp - 0x158]
push 0x20
push eax
push str.DriverDate
push 0
call fcn.00410fa4
lea ecx, [ebp - 0x158]
push 0x2d
push ecx
call fcn.0041a490
add esp, 8
test eax, eax
je 0x409195
lea edx, [ebp - 0x158]
push 0x2d
push edx
call fcn.0041a490
add esp, 8
mov byte [eax], 0x2f
jmp 0x40916a
mov edi, 0x42b244
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x158]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x40
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [str.03.05.18]
mov ecx, ebx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x1e8]
push ecx
call fcn.00419c4e
add esp, 0xc
lea edx, [ebp - 0x1e8]
push 0x20
push edx
call fcn.0041a490
add esp, 8
test eax, eax
je 0x409207
lea eax, [ebp - 0x1e8]
push 0x20
push eax
call fcn.0041a490
add esp, 8
mov byte [eax], 0
jmp 0x4091dc
lea edi, [ebp - 0x1e8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x158]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push str.DriverVer
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [ebp - 0x158]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x42b234
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
lea ecx, [ebp - 0x158]
push ecx
mov ecx, eax
jmp 0x40a155
lea ecx, [ebp - 0x1c]
call fcn.00413e91
cmp eax, 0xd
jl 0x4093fc
lea edx, [ebp - 0x110]
push 0xd
push edx
lea ecx, [ebp - 0x1c]
call fcn.0041430d
push str.__CONTROLLERS
mov ecx, eax
mov byte [ebp - 4], 0xf
call fcn.0041419c
lea ecx, [ebp - 0x110]
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.00413e8c
test edi, edi
je 0x4093fc
xor esi, esi
cmp esi, dword [ebp - 0x34]
jge 0x40a16f
mov eax, dword [ebp - 0x38]
lea ecx, [eax + esi*8]
call fcn.00413ead
lea ecx, [ebp - 0x1a8]
push 0x40
push ecx
push str.PNP_Id
push eax
push 0x80000002
call fcn.0040ae30
lea edi, [ebp - 0x1a8]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4093f6
mov edx, dword [ebp - 0x38]
lea ecx, [edx + esi*8]
call fcn.00413ead
lea ecx, [ebp - 0x82c]
push 0x100
push ecx
push str.Controller_Type
push eax
push 0x80000002
call fcn.0040ae30
add esp, 0x14
lea ecx, [ebp - 0xcc]
push 0x42ae60
call fcn.00418fa6
lea edx, [ebp - 0x82c]
mov ecx, eax
push edx
call fcn.00418fa6
push str.__UPDD__UPDD
mov ecx, eax
call fcn.00418fa6
push esi
mov ecx, eax
call fcn.00418dd1
push 0x42b244
mov ecx, eax
call fcn.00418fa6
lea ecx, [ebp - 0x1a8]
push ecx
mov ecx, eax
call fcn.00418fa6
lea edx, [ebp - 0x1a8]
push str.PNP0F13
push edx
call fcn.0041b590
add esp, 8
test eax, eax
jne 0x4093b5
push str._PNP0F03_PNP0F0B_PNP0F0E_PNP0F12
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
lea eax, [ebp - 0x1a8]
push str.PNP0F03
push eax
call fcn.0041b590
add esp, 8
test eax, eax
jne 0x4093dd
push str._PNP0F13_PNP0F0B_PNP0F0E_PNP0F12
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push 0xa
lea ecx, [ebp - 0xcc]
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
inc esi
jmp 0x4092d1
lea ecx, [ebp - 0x1c]
call fcn.00413e91
cmp eax, 0xa
jl 0x4094bd
lea ecx, [ebp - 0xe8]
push 0xa
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0041430d
push str.__EXCLUDES
mov ecx, eax
mov byte [ebp - 4], 0x10
call fcn.0041419c
lea ecx, [ebp - 0xe8]
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.00413e8c
test edi, edi
je 0x4094bd
xor esi, esi
cmp esi, dword [ebp - 0x34]
jge 0x40a16f
mov edx, dword [ebp - 0x38]
lea ecx, [edx + esi*8]
call fcn.00413ead
lea ecx, [ebp - 0x228]
push 0x40
push ecx
push str.PNP_Id
push eax
push 0x80000002
call fcn.0040ae30
lea edi, [ebp - 0x228]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4094ba
push str.ExcludeFromSelect
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
lea edx, [ebp - 0x228]
mov ecx, eax
push edx
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
inc esi
jmp 0x409445
lea ecx, [ebp - 0x1c]
call fcn.00413e91
cmp eax, 9
jl 0x409666
lea eax, [ebp - 0x138]
push 9
push eax
lea ecx, [ebp - 0x1c]
call fcn.0041430d
push str.__LOGCONF
mov ecx, eax
mov byte [ebp - 4], 0x11
call fcn.0041419c
lea ecx, [ebp - 0x138]
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.00413e8c
test edi, edi
je 0x409666
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx + ebx*8]
call fcn.00413ead
lea edx, [ebp - 0x28]
push edx
push str.Interrupt
push eax
push 0x80000002
call fcn.0040adc0
add esp, 0x10
lea ecx, [ebp - 0xcc]
push str.ConfigPriorityNORMAL
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
push str.IRQConfig
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
mov ecx, dword [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.00418c8f
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
mov edx, dword [ebp - 0x38]
lea ecx, [edx + ebx*8]
call fcn.00413ead
lea ecx, [ebp - 0x28]
push ecx
push str.Address
push eax
push 0x80000002
call fcn.0040adc0
mov edx, dword [ebp - 0x38]
add esp, 0x10
lea ecx, [edx + ebx*8]
call fcn.00413ead
lea ecx, [ebp - 0x58]
push ecx
push str.Address_To
push eax
push 0x80000002
call fcn.0040adc0
mov eax, dword [ebp - 0x28]
add esp, 0x10
test eax, eax
je 0x40a16f
mov ecx, dword [ebp - 0x58]
test ecx, ecx
jne 0x4095d8
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0xd8]
push str.IOConfig
lea ecx, [ebp - 0xcc]
mov eax, dword [edx + 4]
mov dword [ebp + eax - 0xb4], 0x40
lea eax, [ebp + eax - 0xd8]
call fcn.00418fa6
mov ecx, dword [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.00418c8f
push 0x42b11c
mov ecx, eax
call fcn.00418fa6
mov edx, dword [ebp - 0x58]
mov ecx, eax
push edx
call fcn.00418c8f
push str._3FF::_
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov dword [ebp + ecx - 0xb4], 0x10
lea eax, [ebp + ecx - 0xd8]
jmp 0x40a16f
lea ecx, [ebp - 0x1c]
call fcn.00413e91
cmp eax, 0xf
jl 0x4097e5
lea edx, [ebp - 0xf0]
push 0xf
push edx
lea ecx, [ebp - 0x1c]
call fcn.0041430d
push str.__COPYFILESITEM
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.0041419c
lea ecx, [ebp - 0xf0]
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.00413e8c
test edi, edi
je 0x4097e5
xor esi, esi
xor eax, eax
cmp eax, dword [eax*4 + 0x42a14c]
jae 0x4097d8
lea edi, [eax + 1]
push edi
push 0x432488
call fcn.0040c6e0
add esp, 8
test al, al
je 0x409708
mov eax, esi
inc esi
test eax, eax
mov eax, 0x42b244
jne 0x4096e8
mov eax, str.CopyFiles
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push str.UPDD.CopyDRV32DSK
mov ecx, eax
call fcn.00418fa6
push edi
mov ecx, eax
call fcn.00418c8f
push edi
push 0x432468
call fcn.0040c6e0
add esp, 8
test al, al
je 0x40974b
mov ecx, esi
inc esi
test ecx, ecx
mov eax, 0x42b244
jne 0x40972b
mov eax, str.CopyFiles
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push str.UPDD.CopyMAINDIRDSK
mov ecx, eax
call fcn.00418fa6
push edi
mov ecx, eax
call fcn.00418c8f
push edi
push 0x432478
call fcn.0040c6e0
add esp, 8
test al, al
je 0x40978e
mov edx, esi
inc esi
test edx, edx
mov eax, 0x42b244
jne 0x40976e
mov eax, str.CopyFiles
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push str.UPDD.CopySYSDIRDSK
mov ecx, eax
call fcn.00418fa6
push edi
mov ecx, eax
call fcn.00418c8f
push edi
push 0x432458
call fcn.0040c6e0
add esp, 8
test al, al
je 0x4097d1
mov eax, esi
inc esi
test eax, eax
mov eax, 0x42b244
jne 0x4097b1
mov eax, str.CopyFiles
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push str.UPDD.CopyWINDIRDSK
mov ecx, eax
call fcn.00418fa6
push edi
mov ecx, eax
call fcn.00418c8f
mov eax, edi
jmp 0x4096b5
push 0xa
lea ecx, [ebp - 0xcc]
jmp 0x40a15e
lea ecx, [ebp - 0x1c]
call fcn.00413e91
cmp eax, 0x13
jl 0x409baa
lea ecx, [ebp - 0xe0]
push 0x13
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0041430d
push str.__COPYFILESSECTIONS
mov ecx, eax
mov byte [ebp - 4], 0x13
call fcn.0041419c
lea ecx, [ebp - 0xe0]
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.00413e8c
test edi, edi
je 0x409baa
xor eax, eax
cmp eax, dword [eax*4 + 0x42a14c]
jae 0x40a16f
lea esi, [eax + 1]
push esi
push 0x432488
call fcn.0040c6e0
add esp, 8
test al, al
je 0x409909
push 0xa
lea ecx, [ebp - 0xcc]
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
push str._UPDD.CopyDRV32DSK
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push esi
mov ecx, eax
call fcn.00418c8f
push 0x42b07c
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
xor edi, edi
cmp edi, dword [0x43248c]
jge 0x409909
mov edx, dword [0x432488]
push esi
lea eax, [edx + edi*8]
push eax
call fcn.0040c550
add esp, 8
test al, al
je 0x409906
mov ecx, dword [0x432488]
lea ecx, [ecx + edi*8]
call fcn.00413ead
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push 0x42b074
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
inc edi
jmp 0x4098ac
push esi
push 0x432468
call fcn.0040c6e0
add esp, 8
test al, al
je 0x409a17
push 0xa
lea ecx, [ebp - 0xcc]
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
push str._UPDD.CopyMAINDIRDSK
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push esi
mov ecx, eax
call fcn.00418c8f
push 0x42b07c
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
xor edi, edi
cmp edi, dword [0x43246c]
jge 0x409a17
mov edx, dword [0x432468]
push esi
lea eax, [edx + edi*8]
push eax
call fcn.0040c550
add esp, 8
test al, al
je 0x409a11
mov ecx, dword [0x432468]
lea ecx, [ecx + edi*8]
call fcn.00413ead
push str..cpl
push eax
call fcn.0041a750
add esp, 8
test eax, eax
je 0x4099d7
mov edx, dword [0x432468]
lea ecx, [edx + edi*8]
call fcn.00413ead
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push str.___0x00000010
jmp 0x4099f5
mov eax, dword [0x432468]
lea ecx, [eax + edi*8]
call fcn.00413ead
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push 0x42b074
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
inc edi
jmp 0x409973
push esi
push 0x432478
call fcn.0040c6e0
add esp, 8
test al, al
je 0x409add
push 0xa
lea ecx, [ebp - 0xcc]
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
push str._UPDD.CopySYSDIRDSK
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push esi
mov ecx, eax
call fcn.00418c8f
push 0x42b07c
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
xor edi, edi
cmp edi, dword [0x43247c]
jge 0x409add
mov ecx, dword [0x432478]
push esi
lea edx, [ecx + edi*8]
push edx
call fcn.0040c550
add esp, 8
test al, al
je 0x409ada
mov eax, dword [0x432478]
lea ecx, [eax + edi*8]
call fcn.00413ead
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push 0x42b074
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
inc edi
jmp 0x409a81
push esi
push 0x432458
call fcn.0040c6e0
add esp, 8
test al, al
je 0x409ba3
push 0xa
lea ecx, [ebp - 0xcc]
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
push str._UPDD.CopyWINDIRDSK
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push esi
mov ecx, eax
call fcn.00418c8f
push 0x42b07c
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
xor edi, edi
cmp edi, dword [0x43245c]
jge 0x409ba3
mov ecx, dword [0x432458]
push esi
lea edx, [ecx + edi*8]
push edx
call fcn.0040c550
add esp, 8
test al, al
je 0x409ba0
mov eax, dword [0x432458]
lea ecx, [eax + edi*8]
call fcn.00413ead
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push 0x42b074
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
inc edi
jmp 0x409b47
mov eax, esi
jmp 0x409832
lea ecx, [ebp - 0x1c]
call fcn.00413e91
cmp eax, 5
jl 0x409c2d
lea ecx, [ebp - 0x130]
push 5
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0041430d
push str.__REG
mov ecx, eax
mov byte [ebp - 4], 0x14
call fcn.0041419c
lea ecx, [ebp - 0x130]
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.00413e8c
test edi, edi
je 0x409c2d
xor edi, edi
cmp edi, dword [0x43243c]
jge 0x40a16f
mov edx, dword [0x432438]
lea ecx, [edx + edi*8]
call fcn.00413ead
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
inc edi
jmp 0x409bef
lea ecx, [ebp - 0x1c]
call fcn.00413e91
cmp eax, 5
jl 0x409d9b
lea eax, [ebp - 0x108]
push 5
push eax
lea ecx, [ebp - 0x1c]
call fcn.0041430d
push str.__SDF
mov ecx, eax
mov byte [ebp - 4], 0x15
call fcn.0041419c
lea ecx, [ebp - 0x108]
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.00413e8c
test edi, edi
je 0x409d9b
xor edi, edi
cmp edi, dword [0x43248c]
jge 0x409cc0
mov ecx, dword [0x432488]
lea ecx, [ecx + edi*8]
call fcn.00413ead
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push 0x42b010
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
inc edi
jmp 0x409c7a
xor edi, edi
cmp edi, dword [0x43247c]
jge 0x409d08
mov edx, dword [0x432478]
lea ecx, [edx + edi*8]
call fcn.00413ead
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push 0x42b010
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
inc edi
jmp 0x409cc2
xor edi, edi
cmp edi, dword [0x43246c]
jge 0x409d4f
mov eax, dword [0x432468]
lea ecx, [eax + edi*8]
call fcn.00413ead
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push 0x42b010
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
inc edi
jmp 0x409d0a
xor edi, edi
cmp edi, dword [0x43245c]
jge 0x40a16f
mov ecx, dword [0x432458]
lea ecx, [ecx + edi*8]
call fcn.00413ead
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push 0x42b010
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
inc edi
jmp 0x409d51
lea ecx, [ebp - 0x1c]
call fcn.00413e91
cmp eax, 0x12
jl 0x409e3b
lea edx, [ebp - 0x128]
push 0x12
push edx
lea ecx, [ebp - 0x1c]
call fcn.0041430d
push str.__SOURCEDISKSNAMES
mov ecx, eax
mov byte [ebp - 4], 0x16
call fcn.0041419c
lea ecx, [ebp - 0x128]
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.00413e8c
test edi, edi
je 0x409e3b
xor eax, eax
mov ecx, dword [eax*4 + 0x42a14c]
test ecx, ecx
je 0x40a16f
lea edi, [eax + 1]
lea ecx, [ebp - 0xcc]
push edi
call fcn.00418dd1
push str._DiskName
mov ecx, eax
call fcn.00418fa6
push edi
mov ecx, eax
call fcn.00418dd1
push 0x42afec
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
mov eax, edi
jmp 0x409de4
lea ecx, [ebp - 0x1c]
call fcn.00413e91
cmp eax, 0x13
jl 0x409ee3
lea eax, [ebp - 0x118]
push 0x13
push eax
lea ecx, [ebp - 0x1c]
call fcn.0041430d
push str.__SOURCEDISKSTRINGS
mov ecx, eax
mov byte [ebp - 4], 0x17
call fcn.0041419c
lea ecx, [ebp - 0x118]
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.00413e8c
test edi, edi
je 0x409ee3
xor edi, edi
mov eax, dword [edi*4 + 0x42a14c]
test eax, eax
je 0x40a16f
push str.DiskName
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
inc edi
mov ecx, eax
push edi
call fcn.00418dd1
push str._UPDD_Driver_Disk
mov ecx, eax
call fcn.00418fa6
push edi
mov ecx, eax
call fcn.00418dd1
push 0x42ae60
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
jmp 0x409e84
lea ecx, [ebp - 0x1c]
call fcn.00413e91
cmp eax, 0x12
jl 0x409f66
lea ecx, [ebp - 0xf8]
push 0x12
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0041430d
push str.__SOURCEDISKSFILES
mov ecx, eax
mov byte [ebp - 4], 0x18
call fcn.0041419c
lea ecx, [ebp - 0xf8]
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.00413e8c
test edi, edi
je 0x409f66
xor edi, edi
cmp edi, dword [0x43244c]
jge 0x40a16f
mov edx, dword [0x432448]
lea ecx, [edx + edi*8]
call fcn.00413ead
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
inc edi
jmp 0x409f28
lea ecx, [ebp - 0x1c]
call fcn.00413e91
cmp eax, 0x11
jl 0x40a0f6
lea eax, [ebp - 0x100]
push 0x11
push eax
lea ecx, [ebp - 0x1c]
call fcn.0041430d
push str.__DESTINATIONDIRS
mov ecx, eax
mov byte [ebp - 4], 0x19
call fcn.0041419c
lea ecx, [ebp - 0x100]
mov edi, eax
mov byte [ebp - 4], 0xd
call fcn.00413e8c
test edi, edi
je 0x40a0f6
xor eax, eax
cmp eax, dword [eax*4 + 0x42a14c]
jae 0x40a16f
lea edi, [eax + 1]
push edi
push 0x432488
call fcn.0040c6e0
add esp, 8
test al, al
je 0x40a00e
push str.UPDD.CopyDRV32DSK
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push edi
mov ecx, eax
call fcn.00418c8f
push str.10_SYSTEM32DRIVERS
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
push edi
push 0x432468
call fcn.0040c6e0
add esp, 8
test al, al
je 0x40a059
push str.UPDD.CopyMAINDIRDSK
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push edi
mov ecx, eax
call fcn.00418c8f
push str.24__APPDIR_
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
push edi
push 0x432478
call fcn.0040c6e0
add esp, 8
test al, al
je 0x40a0a4
push str.UPDD.CopySYSDIRDSK
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push edi
mov ecx, eax
call fcn.00418c8f
push 0x42af64
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
push edi
push 0x432458
call fcn.0040c6e0
add esp, 8
test al, al
je 0x40a0ef
push str.UPDD.CopyWINDIRDSK
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push edi
mov ecx, eax
call fcn.00418c8f
push str.10_
mov ecx, eax
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
mov eax, edi
jmp 0x409fb3
lea ecx, [ebp - 0x168]
push ecx
lea ecx, [ebp - 0x68]
call fcn.00413e2e
push str._EACHITEM_
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x1a
call fcn.00413e2e
lea edx, [ebp - 0x68]
lea eax, [ebp - 0x60]
push edx
lea ecx, [ebp - 0x1c]
push eax
push ecx
mov byte [ebp - 4], 0x1b
call fcn.00412f81
add esp, 0xc
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x1a
call fcn.00413e8c
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xd
call fcn.00413e8c
lea ecx, [ebp - 0x1c]
call fcn.00413ead
push eax
lea ecx, [ebp - 0xcc]
call fcn.00418fa6
push 0xa
mov ecx, eax
call fcn.00418d33
push 0x40a250
mov ecx, eax
call fcn.0040a230
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.00413e8c
mov ebx, dword [ebp + 8]
mov edi, dword [ebp - 0x20]
or esi, 0xffffffff
jmp 0x408c91
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 7
call fcn.00418c7c
lea ecx, [ebp - 0xc4]
call fcn.00418b0f
test edi, edi
je 0x40a1b0
push edi
call fcn.0041a683
add esp, 4
mov edi, dword [ebp - 0x38]
mov dword [ebp - 4], esi
test edi, edi
je 0x40a1e1
mov eax, dword [ebp - 0x34]
test eax, eax
lea esi, [eax - 1]
je 0x40a1d8
mov ecx, edi
call fcn.00413e8c
add edi, 8
mov edx, esi
dec esi
test edx, edx
jne 0x40a1c4
mov edi, dword [ebp - 0x38]
push edi
call fcn.00419f48
add esp, 4
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret