Function at 0x4bb1d0
Capabilities:
Read .ini file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x72c4d9
push eax
mov dword fs:[0], esp
sub esp, 0x94
push ebx
push ebp
mov ebp, ecx
push esi
mov byte [ebp + 0xb376], 1
mov ecx, dword [0x7c67e0]
push edi
call fcn.00487040
mov eax, dword [0x7c67e0]
xor esi, esi
mov dword [eax + 0xac], esi
mov ecx, dword [0x7c67e0]
call fcn.00484760
mov ecx, ebp
call fcn.004b8270
call fcn.004b2aa0
mov al, byte [ebp + 0xb375]
test al, al
je 0x4bb24a
mov ecx, dword [ebp + 4]
call fcn.004b4940
mov ecx, dword [ebp + 0xae60]
push 1
push ecx
mov ecx, dword [ebp + 4]
call fcn.004b5bb0
mov ecx, 0x7cb478
call fcn.004d51b0
mov ebx, eax
mov dword [0x7ca9a0], esi
mov al, byte [ebp + 0xb374]
test al, al
mov dword [esp + 0x10], ebx
jne 0x4bb30d
push str..Morrowind.ini
push 0x200
push ebx
push 0x7c6180
push str.FakeActiveFile
push str.General
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x4bb30d
cmp byte [ebx], 0
je 0x4bb30d
mov ecx, dword [ebp + 0xae60]
call fcn.004f1ab0
mov edi, eax
cmp edi, esi
je 0x4bb30d
mov esi, dword [edi]
test esi, esi
je 0x4bb2fb
lea edx, [esi + 0xc]
push ebx
push edx
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x4bb2de
push 1
mov ecx, esi
mov dword [0x7ca9a0], esi
call fcn.004b6280
mov ecx, dword [0x7ca9a0]
push 1
call fcn.004b62c0
jmp 0x4bb2fb
push 0
mov ecx, esi
call fcn.004b62c0
mov ecx, esi
call fcn.004b6190
test al, al
jne 0x4bb2fb
push 0
mov ecx, esi
call fcn.004b6280
mov ecx, dword [ebp + 0xae60]
push edi
call fcn.004d4270
mov edi, eax
test edi, edi
jne 0x4bb2a8
lea ecx, [esp + 0x24]
call fcn.0047e1e0
mov ecx, dword [ebp + 0xae60]
mov dword [esp + 0xac], 0
call fcn.004f1ab0
mov esi, eax
test esi, esi
je 0x4bb383
mov edi, dword [esi]
mov ecx, edi
call fcn.004b6190
test al, al
je 0x4bb349
push edi
lea ecx, [esp + 0x28]
call fcn.0047e360
mov ecx, edi
call fcn.004b6250
test al, al
je 0x4bb371
mov ecx, dword [ebp + 0xae60]
lea eax, [esp + 0x24]
push eax
push ecx
push edi
call fcn.004bb0b0
add esp, 0xc
test al, al
je 0x4bb42a
mov ecx, dword [ebp + 0xae60]
push esi
call fcn.004d4270
mov esi, eax
test esi, esi
jne 0x4bb332
mov dl, byte [0x7c8f71]
mov byte [0x7c8f71], 1
mov ecx, dword [ebp + 0xae60]
mov byte [esp + 0x17], dl
mov byte [esp + 0x16], 0
call fcn.004f1ab0
mov ebx, eax
test ebx, ebx
je 0x4bb4da
mov esi, dword [esp + 0x10]
mov edi, dword [ebx]
mov ecx, edi
call fcn.004b6250
test al, al
je 0x4bb4c4
mov ecx, edi
call fcn.004b6190
test al, al
jne 0x4bb485
mov al, byte [ebp + 0xb374]
test al, al
jne 0x4bb485
mov ecx, edi
call fcn.004b6040
test al, al
je 0x4bb485
mov ecx, dword [0x7c67e0]
lea eax, [edi + 0xc]
push eax
push 0x260
mov byte [esp + 0x1e], 1
call fcn.00488810
mov ecx, dword [eax + 0x10]
push ecx
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
call fcn.004678f0
test eax, eax
jne 0x4bb44c
push esi
call fcn.00477400
add esp, 4
jmp 0x4bb485
lea ecx, [esp + 0x24]
mov byte [ebp + 0xb376], 0
mov dword [esp + 0xac], 0xffffffff
call fcn.0047e280
xor eax, eax
jmp 0x4bbc11
mov ecx, 0x7cb478
call fcn.004d51e0
mov edx, dword [esp + 0x10]
push str..Morrowind.ini
push 0x200
mov esi, eax
push esi
push edx
push str.MasterMismatchWarning
push str.GeneralWarnings
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
call fcn.00477400
mov esi, dword [esp + 0x14]
add esp, 4
mov ecx, edi
call fcn.004b62b0
test al, al
je 0x4bb495
mov dword [ebp + 4], edi
jmp 0x4bb4c4
mov eax, dword [ebp]
mov dword [ebp + eax*4 + 0xae64], edi
mov ecx, dword [ebp]
inc ecx
mov eax, ecx
mov dword [ebp], ecx
mov dword [edi + 0x4dc], eax
cmp dword [ebp], 0x100
jb 0x4bb4c4
push str.Too_many_selected_files_to_compile_
call fcn.00476e20
add esp, 4
mov ecx, dword [ebp + 0xae60]
push ebx
call fcn.004d4270
mov ebx, eax
test ebx, ebx
jne 0x4bb3b2
mov al, byte [esp + 0x16]
test al, al
mov cl, byte [esp + 0x17]
mov byte [0x7c8f71], cl
je 0x4bb565
mov ecx, 0x7cb478
call fcn.004d51b0
mov ecx, dword [0x7c67e0]
push 0x261
mov ebx, eax
call fcn.00488810
mov edi, dword [eax + 0x10]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
shr ecx, 2
mov esi, edi
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004678f0
test eax, eax
jne 0x4bb534
push ebx
jmp 0x4bb55d
mov ecx, 0x7cb478
call fcn.004d51e0
push str..Morrowind.ini
push 0x200
mov esi, eax
push esi
push ebx
push str.GeneralMasterMismatchWarning
push str.GeneralWarnings
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
call fcn.00477400
add esp, 4
mov eax, dword [ebp + 4]
test eax, eax
je 0x4bb59e
mov ecx, dword [ebp]
mov dword [ebp + ecx*4 + 0xae64], eax
mov ecx, dword [ebp]
inc ecx
mov dword [ebp], ecx
mov eax, ecx
mov ecx, dword [ebp + 4]
mov dword [ecx + 0x4dc], eax
cmp dword [ebp], 0x100
jb 0x4bb59e
push str.Too_many_selected_files_to_compile_
call fcn.00476e20
add esp, 4
mov ecx, ebp
call fcn.004c8070
mov eax, dword [ebp + 0xb380]
mov eax, dword [eax + 0x34]
mov edx, dword [eax + 0x38]
mov ecx, dword [edx]
add ecx, dword [eax + 0x2c]
or esi, 0xffffffff
mov edx, esi
lea eax, [ecx + 1]
sub edx, ecx
mov bl, 0x19
mov cl, 0x21
mov byte [eax - 1], bl
mov byte [eax], 0x24
mov byte [eax + 1], cl
add eax, 3
lea edi, [edx + eax]
cmp edi, 0xc0000
jb 0x4bb5c4
mov ecx, ebp
call fcn.004c1c00
mov eax, dword [ebp]
xor ebx, ebx
xor edi, edi
test eax, eax
jbe 0x4bb627
lea esi, [ebp + 0xae64]
mov ecx, dword [esi]
push 0
push 0
call fcn.004b4510
test al, al
jne 0x4bb611
push str.DataHandler:_internal_error
call fcn.00477400
add esp, 4
jmp 0x4bb619
mov eax, dword [esi]
add ebx, dword [eax + 0x4d4]
mov eax, dword [ebp]
inc edi
add esi, 4
cmp edi, eax
jb 0x4bb5f3
or esi, 0xffffffff
mov ecx, dword [0x7c67e0]
push 1
push ebx
call fcn.0048ed20
mov eax, dword [ebp]
xor edi, edi
test eax, eax
jbe 0x4bb6a3
test edi, edi
mov byte [esp + 0x10], 0
jne 0x4bb64c
mov byte [esp + 0x10], 1
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + edi*4 + 0xae64]
push 0
push ecx
push edx
mov ecx, ebp
call fcn.004bd3b0
test eax, eax
jne 0x4bb67a
push str.Warnings.txt
push str.DataHandler:_unrecognized_form_r_nLook_in_the__s_file_for_more_info._r_n
call fcn.00477400
add esp, 8
jmp 0x4bb69b
mov ecx, dword [ebp + 0x20]
call fcn.0047e710
test eax, eax
je 0x4bb69b
mov eax, dword [eax + 8]
mov dword [eax + 0x13c], esi
mov ecx, dword [ebp + 0x20]
call fcn.0047e720
test eax, eax
jne 0x4bb686
mov eax, dword [ebp]
inc edi
cmp edi, eax
jb 0x4bb63e
mov ecx, ebp
call fcn.004c27c0
mov ecx, ebp
call fcn.004c18a0
call fcn.0046c710
mov ecx, dword [ebp + 0x18]
call fcn.004b70e0
mov eax, dword [0x7c67dc]
mov esi, dword [eax + 0x6c]
test esi, esi
je 0x4bb6da
mov ecx, esi
call fcn.00432200
push esi
call fcn.00727530
add esp, 4
mov ecx, dword [0x7c67dc]
mov dword [ecx + 0x6c], 0
lea esi, [ebp + 0x5c8]
mov edi, 0x8f
push ebp
mov ecx, esi
call fcn.004a9240
add esi, 0x110
dec edi
jne 0x4bb6f2
mov ecx, dword [ebp + 0x40]
call fcn.0047e710
test eax, eax
je 0x4bb726
mov eax, dword [eax + 8]
push ebp
mov ecx, eax
call fcn.00480dc0
mov ecx, dword [ebp + 0x40]
call fcn.0047e720
test eax, eax
jne 0x4bb70f
mov ecx, dword [ebp + 0x1c]
call fcn.0047e710
test eax, eax
je 0x4bb749
mov eax, dword [eax + 8]
push ebp
mov ecx, eax
call fcn.004a7cd0
mov ecx, dword [ebp + 0x1c]
call fcn.0047e720
test eax, eax
jne 0x4bb732
mov ecx, dword [ebp + 0x28]
call fcn.0047e710
test eax, eax
je 0x4bb76c
mov eax, dword [eax + 8]
push ebp
mov ecx, eax
call fcn.004ad050
mov ecx, dword [ebp + 0x28]
call fcn.0047e720
test eax, eax
jne 0x4bb755
mov ecx, dword [ebp + 0x44]
call fcn.0047e710
test eax, eax
je 0x4bb78f
mov eax, dword [eax + 8]
push ebp
mov ecx, eax
call fcn.00474cd0
mov ecx, dword [ebp + 0x44]
call fcn.0047e720
test eax, eax
jne 0x4bb778
mov ecx, dword [ebp + 0x48]
call fcn.0047e710
mov esi, eax
test esi, esi
je 0x4bb7c6
mov edi, dword [esi + 8]
push ebp
mov ecx, edi
call fcn.00482bc0
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x4bb7b8
mov ecx, dword [ebp + 0x48]
push esi
call fcn.0047e610
mov ecx, dword [ebp + 0x48]
call fcn.0047e720
mov esi, eax
test esi, esi
jne 0x4bb79d
push 4
mov ecx, ebp
xor bl, bl
call fcn.004bafe0
push 0
mov ecx, ebp
mov esi, eax
call fcn.004bafe0
sub eax, esi
cmp eax, 1
jne 0x4bb7e5
mov bl, al
mov ecx, dword [ebp + 0xc]
call fcn.004ee8b0
test bl, bl
mov esi, eax
jne 0x4bb7f9
mov edx, dword [ebp + 0x3c]
add esi, dword [edx + 4]
mov ecx, dword [0x7c67e0]
push 1
push 0
call fcn.0048ed20
mov ecx, dword [0x7c67e0]
push 1
push esi
call fcn.0048ed20
mov ecx, dword [0x7c67dc]
push 0
push 0x255
call fcn.0040f930
push eax
call fcn.005ded20
mov ecx, dword [0x7c67dc]
add esp, 8
push 0x256
call fcn.0040f930
push eax
call fcn.005deef0
add esp, 4
test bl, bl
jne 0x4bb853
call fcn.004b2c90
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x6c]
test ecx, ecx
jne 0x4bb895
push 0x14
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0xac], 1
je 0x4bb882
mov ecx, eax
call fcn.00431fc0
jmp 0x4bb884
xor eax, eax
mov ecx, dword [0x7c67dc]
mov byte [esp + 0xac], 0
mov dword [ecx + 0x6c], eax
mov ecx, dword [ebp + 0x3c]
call fcn.0047e710
test eax, eax
je 0x4bb8b8
mov eax, dword [eax + 8]
push ebp
mov ecx, eax
call fcn.004b2720
mov ecx, dword [ebp + 0x3c]
call fcn.0047e720
test eax, eax
jne 0x4bb8a1
mov ecx, dword [ebp + 0x10]
call fcn.004f1ab0
mov esi, eax
test esi, esi
je 0x4bb8de
mov edx, dword [esi]
push ebp
mov ecx, esi
call dword [edx + 0xe0]
mov ecx, esi
call fcn.006b6890
mov esi, eax
test esi, esi
jne 0x4bb8c6
mov ecx, dword [ebp + 0xc]
call fcn.004f1ab0
mov edi, eax
xor ebx, ebx
cmp edi, ebx
je 0x4bb9ce
mov ecx, dword [0x7c67e0]
push 1
call fcn.0048ed70
mov ecx, dword [0x7c67e0]
call fcn.0048ed90
fmul dword [0x74646c]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
push eax
call fcn.005def50
add esp, 4
test al, al
je 0x4bb9b2
mov ecx, dword [0x7c6cdc]
mov eax, dword [ecx + 0x108]
cmp eax, ebx
je 0x4bb9a6
cmp dword [eax], 2
jne 0x4bb9a6
mov ecx, dword [0x7c67dc]
call fcn.00453630
mov edx, dword [0x7c67dc]
fld dword [edx + 0x2c]
fadd dword [0x7ca9b0]
fst dword [0x7ca9b0]
fcomp dword [0x746914]
fnstsw ax
test ah, 0x41
jne 0x4bb9a6
mov ecx, 0x7cb478
call fcn.004d51b0
mov esi, eax
mov eax, dword [0x7c6cdc]
mov ecx, dword [eax + 0x108]
push 3
push esi
call fcn.00459830
mov ecx, dword [0x7c6cdc]
mov ecx, dword [ecx + 0x108]
push esi
call fcn.00459420
mov dword [0x7ca9b0], 0
mov ecx, dword [0x7c6cdc]
push ebx
call fcn.0041be90
mov edx, dword [edi]
push ebp
mov ecx, edi
call dword [edx + 0xe0]
mov ecx, edi
call fcn.006b6890
mov edi, eax
cmp edi, ebx
jne 0x4bb8f2
mov ecx, dword [0x7c67e0]
push 1
push ebx
call fcn.0048ed20
mov ecx, dword [ebp + 0xc]
call fcn.004f1ab0
mov esi, eax
cmp esi, ebx
je 0x4bba94
lea ecx, [esi + 4]
call fcn.004ee8b0
mov edi, eax
cmp edi, 0x41455243
je 0x4bba29
cmp edi, 0x544e4f43
je 0x4bba12
cmp edi, 0x5f43504e
je 0x4bba29
jmp 0x4bba83
mov eax, dword [esi + 8]
shr eax, 1
push esi
and al, 1
push ebp
lea ecx, [esi + 0x3c]
mov byte [esp + 0x18], al
call fcn.00499bd0
jmp 0x4bba77
mov ecx, dword [esi + 8]
shr ecx, 1
and cl, 1
push esi
mov byte [esp + 0x14], cl
push ebp
lea ecx, [esi + 0x3c]
call fcn.00499bd0
cmp dword [esi + 0x5c], ebx
je 0x4bba4e
push ebp
mov ecx, esi
call fcn.00495110
jmp 0x4bba77
mov ecx, esi
call fcn.004f0ff0
test al, al
je 0x4bba77
cmp edi, 0x5f43504e
jne 0x4bba6d
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x110]
jmp 0x4bba77
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x110]
mov eax, dword [esp + 0x10]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x14]
mov ecx, esi
call fcn.006b6890
mov esi, eax
cmp esi, ebx
jne 0x4bb9ee
mov ecx, dword [ebp + 0xb264]
call fcn.004f1ab0
mov esi, eax
cmp esi, ebx
je 0x4bbabf
mov ecx, dword [esi]
push ebp
call fcn.004db8c0
mov ecx, dword [ebp + 0xb264]
push esi
call fcn.004d4270
mov esi, eax
cmp esi, ebx
jne 0x4bbaa5
mov ecx, dword [ebp + 0xb384]
cmp ecx, ebx
je 0x4bbbd1
mov edx, dword [ecx]
push ebp
call dword [edx + 0xe0]
mov ecx, dword [ebp + 0xb384]
mov eax, dword [ecx + 0x2c]
mov edx, dword [ecx + 0x30]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x1c], edx
mov edx, dword [ecx]
mov dword [esp + 0x20], eax
call dword [edx + 0x2c]
mov esi, eax
mov ecx, esi
call fcn.006eb0e0
mov ecx, esi
call fcn.006eb380
push 1
push ebx
push ebx
mov ecx, esi
call fcn.006eb000
push 0x7de664
lea ecx, [esp + 0x3c]
call fcn.006e7cd0
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x60]
call fcn.006e7d20
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x40]
call fcn.006e80a0
push eax
lea ecx, [esp + 0x3c]
call fcn.006e7cd0
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x60]
call fcn.006e7d60
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x40]
call fcn.006e80a0
push eax
lea ecx, [esp + 0x3c]
call fcn.006e7cd0
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x60]
call fcn.006e7da0
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x40]
call fcn.006e80a0
push eax
lea ecx, [esp + 0x3c]
call fcn.006e7cd0
mov eax, dword [ebp + 0xb384]
mov ecx, dword [eax + 0x38]
add eax, 0x38
mov dword [esi + 0x30], ecx
mov edx, dword [eax + 4]
lea ecx, [esp + 0x38]
mov dword [esi + 0x34], edx
mov eax, dword [eax + 8]
push ecx
lea ecx, [esi + 0x2c]
mov dword [esi + 0x38], eax
call fcn.006e93d0
mov ecx, ebp
call fcn.004c7be0
mov byte [ebp + 0xb376], 0
mov ecx, dword [0x7ca9a0]
cmp ecx, ebx
je 0x4bbbf8
push ebx
call fcn.004b62c0
mov dword [ebp + 4], ebx
mov dword [0x7ca9a0], ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0xac], 0xffffffff
call fcn.0047e280
mov eax, 1
mov ecx, dword [esp + 0xa4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xa0
ret