Function at 0x100940d
Capabilities:
Manipulate boot configuration
Read .ini file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x30b0
call fcn.0100ba20
mov eax, dword [0x1011024]
push ebx
push esi
push edi
xor ebx, ebx
push 0x7e
pop ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push 0x7e
mov dword [ebp - 0x30ac], eax
xor eax, eax
lea edi, [ebp - 0xbe0]
mov dword [ebp - 0xbe4], ebx
rep stosd dword es:[edi], eax
pop ecx
lea edi, [ebp - 0x3fc]
push 0x7e
mov dword [ebp - 0x400], ebx
rep stosd dword es:[edi], eax
mov ecx, 0xf9
lea edi, [ebp - 0x7e4]
mov dword [ebp - 0x7e8], ebx
rep stosd dword es:[edi], eax
pop ecx
push 0x7f
pop edx
lea edi, [ebp - 0x11dc]
mov dword [ebp - 0x11e0], ebx
rep stosd dword es:[edi], eax
mov ecx, edx
lea edi, [ebp - 0x200]
mov dword [ebp - 0x204], ebx
rep stosd dword es:[edi], eax
mov ecx, edx
lea edi, [ebp - 0xde0]
mov dword [ebp - 0xde4], ebx
rep stosd dword es:[edi], eax
mov ecx, edx
lea edi, [ebp - 0x9e4]
mov dword [ebp - 0x9e8], ebx
rep stosd dword es:[edi], eax
mov ecx, edx
lea edi, [ebp - 0xfe0]
mov dword [ebp - 0xfe4], ebx
rep stosd dword es:[edi], eax
mov ecx, edx
lea edi, [ebp - 0x13dc]
mov dword [ebp - 0x13e0], ebx
rep stosd dword es:[edi], eax
mov esi, 0x10014f8
lea edi, [ebp - 0x3088]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x7d
pop ecx
lea edi, [ebp - 0x307e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x30b0]
mov dword [ebp - 0x2e7c], eax
mov ecx, edx
xor eax, eax
lea edi, [ebp - 0x2e74]
mov dword [ebp - 0x2e88], 0x10000
mov dword [ebp - 0x2e84], 1
mov dword [ebp - 0x2e80], ebx
mov dword [ebp - 0x2e78], ebx
rep stosd dword es:[edi], eax
mov dword [ebp - 0x30b0], ebx
mov dword [ebp - 0x30a8], ebx
mov dword [ebp - 0x3098], ebx
mov dword [ebp - 0x30a4], ebx
mov dword [ebp - 0x3094], ebx
mov dword [ebp - 0x309c], 0x1388
mov dword [ebp - 0x30a0], ebx
mov dword [ebp - 0x2c78], ebx
mov dword [ebp - 0x2c74], ebx
mov dword [ebp - 0x2c70], 0x73
mov ecx, edx
lea edi, [ebp - 0x2c6c]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x2a6c], 1
mov dword [ebp - 0x2a68], ebx
mov dword [ebp - 0x2a60], ebx
lea eax, [ebp - 0x204]
mov dword [ebp - 0x2a64], eax
xor eax, eax
mov esi, 0x2001
mov dword [ebp - 0x2a70], esi
mov ecx, edx
lea edi, [ebp - 0x2a5c]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x2860], ebx
mov dword [ebp - 0x285c], ebx
mov dword [ebp - 0x2858], 0x75
mov ecx, edx
lea edi, [ebp - 0x2854]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x2658], esi
mov dword [ebp - 0x2654], 1
mov dword [ebp - 0x2650], ebx
lea eax, [ebp - 0xde4]
mov dword [ebp - 0x264c], eax
xor eax, eax
mov dword [ebp - 0x2648], ebx
mov ecx, edx
lea edi, [ebp - 0x2644]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x2448], ebx
mov dword [ebp - 0x2444], ebx
mov dword [ebp - 0x2440], 0x70
mov ecx, edx
lea edi, [ebp - 0x243c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x9e8]
mov dword [ebp - 0x2234], eax
xor eax, eax
mov dword [ebp - 0x2240], 0x1001
mov dword [ebp - 0x223c], 1
mov dword [ebp - 0x2238], ebx
mov dword [ebp - 0x2230], ebx
mov ecx, edx
lea edi, [ebp - 0x222c]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x2030], ebx
mov dword [ebp - 0x202c], ebx
mov dword [ebp - 0x2028], 0x64
mov ecx, edx
lea edi, [ebp - 0x2024]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xfe4]
mov dword [ebp - 0x1e1c], eax
xor eax, eax
mov dword [ebp - 0x1e28], esi
mov dword [ebp - 0x1e24], 1
mov dword [ebp - 0x1e20], ebx
mov dword [ebp - 0x1e18], ebx
mov ecx, edx
lea edi, [ebp - 0x1e14]
rep stosd dword es:[edi], eax
mov eax, dword [0x10014d4]
mov dword [ebp - 0x1c10], eax
mov eax, dword [0x10014d8]
mov dword [ebp - 0x1c0c], eax
push 0x7e
xor eax, eax
pop ecx
lea edi, [ebp - 0x1c08]
mov dword [ebp - 0x1c18], ebx
mov dword [ebp - 0x1c14], ebx
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x30a8]
mov dword [ebp - 0x1a10], 0x20000
mov dword [ebp - 0x1a0c], ebx
mov dword [ebp - 0x1a08], ebx
mov dword [ebp - 0x1a04], eax
mov word [ebp - 0x1a00], bx
mov word [ebp - 0x19fe], bx
xor eax, eax
mov ecx, 0x81
lea edi, [ebp - 0x19fc]
rep stosd dword es:[edi], eax
mov esi, 0x100156c
lea edi, [ebp - 0x17f8]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x7e
pop ecx
lea edi, [ebp - 0x17f2]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x30a4]
mov dword [ebp - 0x15ec], eax
xor eax, eax
mov ecx, edx
mov dword [ebp - 0x15f8], 0x82003
mov dword [ebp - 0x15f4], 1
mov dword [ebp - 0x15f0], ebx
mov dword [ebp - 0x15e8], ebx
lea edi, [ebp - 0x15e4]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x204]
push eax
mov dword [ebp - 0x13e8], ebx
mov dword [ebp - 0x13e4], ebx
call fcn.0100269c
xor edi, edi
inc edi
cmp eax, edi
je 0x1009eed
mov esi, dword [sym.imp.msvcrt.dll_malloc]
push 0x2710
call esi
cmp eax, ebx
pop ecx
mov dword [ebp - 0x308c], eax
jne 0x10097d5
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x7c
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d376
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d5fe
jmp 0x1009eed
push 0x1fc
call esi
mov esi, eax
cmp esi, ebx
pop ecx
mov dword [ebp - 0x3090], esi
jne 0x1009827
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x7c
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d376
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d5fe
push dword [ebp - 0x308c]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
jmp 0x1009eed
mov edi, 0x1001568
lea eax, [ebp - 0x2230]
push edi
push eax
call dword [sym.imp.msvcrt.dll_wcscpy]
lea eax, [ebp - 0x9e8]
push edi
push eax
call dword [sym.imp.msvcrt.dll_wcscpy]
add esp, 0x10
lea eax, [ebp - 0x3088]
push eax
push 7
push dword [ebp - 0x30ac]
push dword [ebp + 8]
call fcn.0100e534
test eax, eax
jne 0x1009886
push 0x7c
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d376
call fcn.0100c80a
jmp 0x10099fd
cmp dword [ebp - 0x30a8], ebx
je 0x10098cd
lea eax, [ebp - 0x204]
push eax
call fcn.0100269c
test eax, eax
push dword [ebp - 0x308c]
jne 0x10098bd
mov edi, dword [sym.imp.msvcrt.dll_free]
call edi
push esi
call edi
pop ecx
pop ecx
call fcn.01001eab
xor eax, eax
jmp 0x1009f78
mov ebx, dword [sym.imp.msvcrt.dll_free]
call ebx
push esi
call ebx
jmp 0x1009a1d
lea eax, [ebp - 0xfe4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 0x43
jl 0x10098e9
push 0xc16
jmp 0x10099f8
cmp dword [ebp - 0x2a68], ebx
jne 0x1009900
cmp dword [ebp - 0x2650], ebx
je 0x1009908
push 0x30b
jmp 0x1009915
cmp dword [ebp - 0x2650], ebx
jne 0x1009925
cmp dword [ebp - 0x2238], ebx
je 0x1009925
push 0x30c
call fcn.0100d783
push eax
call fcn.0100c82e
jmp 0x100987c
lea eax, [ebp - 0x9e8]
push edi
push eax
call dword [sym.imp.msvcrt.dll_wcscmp]
test eax, eax
pop ecx
pop ecx
jne 0x1009953
lea eax, [ebp - 0x204]
push eax
call fcn.0100db50
test eax, eax
jne 0x1009953
mov dword [ebp - 0x3094], 1
cmp dword [ebp - 0x2a68], ebx
je 0x10099da
cmp dword [ebp - 0x2238], ebx
jne 0x10099ba
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x100998e
lea eax, [ebp - 0x204]
push eax
call fcn.0100db50
test eax, eax
mov dword [ebp - 0x3094], 1
je 0x1009994
mov dword [ebp - 0x3094], ebx
lea eax, [ebp - 0x9e8]
push eax
call dword [sym.imp.msvcrt.dll_wcslen]
test eax, eax
pop ecx
je 0x10099ba
lea eax, [ebp - 0x9e8]
push 0x10011f8
push eax
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
cmp dword [ebp - 0x2a68], ebx
je 0x10099da
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x10099da
push 0x30e
jmp 0x10099f8
cmp dword [ebp - 0x2650], ebx
je 0x1009a24
lea eax, [ebp - 0xde4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x1009a24
push 0x30f
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d376
push dword [ebp - 0x308c]
mov edi, dword [sym.imp.msvcrt.dll_free]
call edi
push esi
call edi
pop ecx
pop ecx
jmp 0x1009f75
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x1001504
push esi
call edi
push 2
push 0x10012c4
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
test eax, eax
jne 0x1009aa2
push 3
push 0x1001560
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
test eax, eax
je 0x1009aa2
lea eax, [ebp - 0x204]
push 0x10012c4
push eax
call dword [sym.imp.msvcrt.dll_wcstok]
cmp eax, ebx
pop ecx
pop ecx
jne 0x1009a98
push 0x829
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d376
jmp 0x1009f75
push eax
lea eax, [ebp - 0x204]
push eax
call edi
lea eax, [ebp - 0x204]
push eax
call fcn.0100db50
cmp eax, 1
jne 0x1009af1
lea eax, [ebp - 0xde4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x1009af1
push 0x313
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
push eax
call fcn.0100d376
lea eax, [ebp - 0x204]
push 0x10012a0
push eax
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
lea eax, [ebp - 0x30a0]
push eax
push ebx
push dword [ebp - 0x3094]
lea eax, [ebp - 0x9e8]
push esi
push eax
lea eax, [ebp - 0xde4]
push eax
lea eax, [ebp - 0x204]
push eax
call fcn.01002f60
cmp eax, 1
jne 0x1009b3a
push dword [ebp - 0x308c]
mov edi, dword [sym.imp.msvcrt.dll_free]
call edi
push esi
call edi
pop ecx
xor edi, edi
pop ecx
inc edi
jmp 0x1009edb
push 0x100153c
push esi
call fcn.01001c2e
cmp eax, ebx
mov dword [ebp - 0x3098], eax
jne 0x1009b83
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x7c
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d376
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d5fe
push esi
call fcn.01001efb
jmp 0x1009b1f
push esi
lea eax, [ebp - 0x400]
push eax
call edi
push dword [ebp - 0x3098]
call fcn.0100bbcf
cmp eax, 0x14
jb 0x1009bc1
push 0x314
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d376
push esi
call fcn.01001efb
jmp 0x1009eb7
mov ecx, dword [ebp - 0x30a4]
cmp ecx, ebx
jbe 0x1009f28
cmp ecx, eax
ja 0x1009f28
cmp dword [ebp - 0x3098], ebx
je 0x1009ef4
dec ecx
push ecx
push dword [ebp - 0x3098]
call fcn.0100c29c
cmp eax, ebx
je 0x1009ef4
push eax
lea eax, [ebp - 0xbe4]
push eax
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
lea eax, [ebp - 0xbe4]
push eax
lea eax, [ebp - 0x7e8]
push eax
call edi
mov esi, 0x100158c
lea eax, [ebp - 0x7e8]
push esi
push eax
call dword [sym.imp.msvcrt.dll_wcstok]
test eax, eax
pop ecx
pop ecx
je 0x1009c93
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x7e8]
push eax
call esi
push 0x1001824
lea eax, [ebp - 0x7e8]
push eax
call esi
lea eax, [ebp - 0xfe4]
push eax
lea eax, [ebp - 0x7e8]
push eax
call esi
push 0x1001824
lea eax, [ebp - 0x7e8]
push eax
call esi
push 0x1001568
lea eax, [ebp - 0xbe4]
push eax
call esi
lea eax, [ebp - 0xbe4]
push 0x10011dc
push eax
call dword [sym.imp.msvcrt.dll_wcstok]
test eax, eax
pop ecx
pop ecx
jne 0x1009cb7
push 0x829
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d376
push dword [ebp - 0x3090]
jmp 0x1009eac
push 0x1001568
push ebx
call dword [sym.imp.msvcrt.dll_wcstok]
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x13e0]
push eax
call edi
push 0x10011f4
lea eax, [ebp - 0x7e8]
push eax
call esi
push 0x10011dc
lea eax, [ebp - 0x7e8]
push eax
call esi
lea eax, [ebp - 0x13e0]
push eax
lea eax, [ebp - 0x7e8]
push eax
call esi
lea eax, [ebp - 0x7e8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov word [ebp + eax*2 - 0x7e6], bx
lea eax, [ebp - 0x400]
push eax
push 0x1388
push dword [ebp - 0x308c]
mov edi, 0x100153c
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
cmp eax, 0x1386
jmp 0x1009d81
add dword [ebp - 0x309c], 0x64
mov eax, dword [ebp - 0x309c]
add eax, eax
push eax
push dword [ebp - 0x308c]
call dword [sym.imp.msvcrt.dll_realloc]
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x308c], eax
je 0x1009e33
lea ecx, [ebp - 0x400]
push ecx
push dword [ebp - 0x309c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
mov ecx, dword [ebp - 0x309c]
add ecx, 0xfffffffe
cmp ecx, eax
mov dword [ebp - 0x3094], eax
je 0x1009d35
mov ecx, dword [ebp - 0x3094]
lea eax, [ebp - 0x7e8]
push eax
mov eax, dword [ebp - 0x308c]
lea eax, [eax + ecx*2]
push eax
call esi
lea eax, [ebp - 0x7e8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, eax
add ecx, dword [ebp - 0x3094]
mov eax, dword [ebp - 0x308c]
mov word [eax + ecx*2 + 2], bx
lea ecx, [ebp - 0x400]
push ecx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileSectionW]
test eax, eax
je 0x1009e81
push dword [ebp - 0x30a4]
push 0xce
call fcn.0100d783
push eax
lea eax, [ebp - 0x11e0]
push eax
call dword [sym.imp.msvcrt.dll_swprintf]
add esp, 0xc
lea eax, [ebp - 0x11e0]
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
push eax
call fcn.0100d376
push dword [ebp - 0x3090]
call fcn.01001efb
lea eax, [ebp - 0x400]
push eax
call fcn.01001efb
mov esi, dword [ebp - 0x3090]
mov edi, eax
jmp 0x1009eba
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x7c
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d376
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d5fe
push dword [ebp - 0x3090]
call fcn.01001efb
lea eax, [ebp - 0x400]
push eax
call fcn.01001efb
mov esi, dword [ebp - 0x3090]
xor edi, edi
inc edi
jmp 0x1009ec7
push 0x86
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d376
push dword [ebp - 0x3090]
call fcn.01001efb
lea eax, [ebp - 0x400]
push eax
call fcn.01001efb
mov esi, dword [ebp - 0x3090]
xor edi, edi
inc edi
push dword [ebp - 0x308c]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
push esi
call dword [sym.imp.msvcrt.dll_free]
pop ecx
lea eax, [ebp - 0x3098]
push eax
call fcn.0100bb96
push dword [ebp - 0x30a0]
lea eax, [ebp - 0x204]
push eax
call fcn.010026f7
mov eax, edi
jmp 0x1009f78
push esi
call fcn.01001efb
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x7c
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d376
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d5fe
jmp 0x1009eb7
push 0x7d
call fcn.0100d783
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.0100d376
push esi
call fcn.01001efb
push dword [ebp - 0x308c]
mov edi, dword [sym.imp.msvcrt.dll_free]
call edi
push esi
call edi
pop ecx
pop ecx
lea eax, [ebp - 0x3098]
push eax
call fcn.0100bb96
push dword [ebp - 0x30a0]
lea eax, [ebp - 0x204]
push eax
call fcn.010026f7
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0100b77c
leave
ret 8