Function at 0x446640
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x145c
call fcn.004b6e90
mov eax, dword [0x4f6fc0]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x141c], 0xffffffff
mov dword [ebp - 0x140c], 0
mov dword [ebp - 0x1408], 0
mov dword [ebp - 0x1428], 0
mov dword [ebp - 0x1444], 0
mov dword [ebp - 0x1458], 0
mov dword [ebp - 0x142c], 0
mov dword [ebp - 0x1430], 0
mov dword [ebp - 0x1410], 0
mov dword [ebp - 0x144c], 0
mov dword [ebp - 0x1450], 0
mov al, byte [0x526cdf]
mov byte [ebp - 0x1304], al
push 0xff
push 0
lea ecx, [ebp - 0x1303]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x526ce1]
mov byte [ebp - 0x1404], dl
push 0xff
push 0
lea eax, [ebp - 0x1403]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x526ce3]
mov byte [ebp - 0x1104], cl
push 0xff
push 0
lea edx, [ebp - 0x1103]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x526ce5]
mov byte [ebp - 0x1004], al
push 0xfe
push 0
lea ecx, [ebp - 0x1003]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x526ce7]
mov byte [ebp - 0xf04], dl
push 0xfe
push 0
lea eax, [ebp - 0xf03]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x526ce8]
mov byte [ebp - 0x704], cl
push 0xfe
push 0
lea edx, [ebp - 0x703]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x526ce9]
mov byte [ebp - 0x404], al
push 0xfe
push 0
lea ecx, [ebp - 0x403]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x526cea]
mov byte [ebp - 0x304], dl
push 0xfe
push 0
lea eax, [ebp - 0x303]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x526ceb]
mov byte [ebp - 0x104], cl
push 0xfe
push 0
lea edx, [ebp - 0x103]
push edx
call fcn.004b6780
add esp, 0xc
mov dword [ebp - 0x1418], 0
mov al, byte [0x526cec]
mov byte [ebp - 0xc04], al
push 0xfe
push 0
lea ecx, [ebp - 0xc03]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x526ced]
mov byte [ebp - 0x504], dl
push 0xfe
push 0
lea eax, [ebp - 0x503]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x526cee]
mov byte [ebp - 0x204], cl
push 0xfe
push 0
lea edx, [ebp - 0x203]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x526cef]
mov byte [ebp - 0x804], al
push 0xfe
push 0
lea ecx, [ebp - 0x803]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x526cf0]
mov byte [ebp - 0xe04], dl
push 0x1ff
push 0
lea eax, [ebp - 0xe03]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x526cf1]
mov byte [ebp - 0xa04], cl
push 0x1ff
push 0
lea edx, [ebp - 0xa03]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x526cf2]
mov byte [ebp - 0x604], al
push 0xfe
push 0
lea ecx, [ebp - 0x603]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x526cf3]
mov byte [ebp - 0x1204], dl
push 0xfe
push 0
lea eax, [ebp - 0x1203]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x526cf4]
mov byte [ebp - 0xb04], cl
push 0xff
push 0
lea edx, [ebp - 0xb03]
push edx
call fcn.004b6780
add esp, 0xc
mov dword [ebp - 0x1414], 0
xor eax, eax
mov word [ebp - 0x1424], ax
mov dword [ebp - 0x1440], 3
mov dword [ebp - 0x145c], 0
cmp dword [ebp + 8], 0
jne 0x44696b
mov dword [0x526cf8], 0
xor eax, eax
jmp 0x4483a0
cmp dword [0x526bb8], 1
jne 0x44697e
mov dword [0x4e4474], 0
cmp dword [0x4e4474], 1
jne 0x446a63
push 0x4fef80
push 0x4fa370
push 0x4e4478
lea ecx, [ebp - 0xc04]
push ecx
call fcn.004b6e08
add esp, 0x10
push 0x4e4480
lea edx, [ebp - 0xc04]
push edx
call fcn.0041a470
add esp, 8
mov dword [ebp - 0x1414], eax
cmp dword [ebp - 0x1414], 0
je 0x446a5e
mov eax, dword [ebp - 0x1414]
push eax
call fcn.00419ca0
add esp, 4
mov dword [ebp - 0x1414], 0
mov dword [ebp - 0x1458], 1
push 2
call fcn.00482440
add esp, 4
mov word [ebp - 0x1424], ax
lea ecx, [ebp - 0x145c]
push ecx
push 0
push 2
lea edx, [ebp - 0x1440]
push edx
lea eax, [ebp - 0xa04]
push eax
push 0x526cf5
lea ecx, [ebp - 0xc04]
push ecx
push 5
call fcn.00497900
add esp, 0x20
mov dword [ebp - 0x140c], eax
cmp dword [ebp - 0x140c], 0
jne 0x446a5e
movsx edx, word [ebp - 0x1424]
sub edx, dword [ebp - 0x1440]
cmp edx, 2
jae 0x446a5e
mov dword [0x4e4474], 0
call fcn.00466d20
push 0x526cf6
call fcn.00445db0
add esp, 4
call fcn.00445410
cmp dword [0x4e4474], 1
jne 0x446ac0
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0xc], eax
call fcn.0041a8a0
mov dword [ebp - 0x140c], eax
cmp dword [ebp - 0x140c], 0
je 0x446ab6
cmp dword [ebp - 0x1458], 1
jne 0x446aab
mov dword [ebp - 0x141c], 0
mov eax, dword [ebp - 0x141c]
jmp 0x4483a0
mov dword [0x4e4474], 0
mov ecx, dword [0x526cf8]
add ecx, 1
mov dword [0x526cf8], ecx
cmp dword [0x54e958], 0
je 0x446ae1
cmp dword [0x526cf8], 1
jle 0x446aeb
mov dword [ebp - 0x142c], 1
call fcn.004571b0
mov dword [ebp - 0x1450], eax
call fcn.0049edc0
mov dword [ebp - 0x1444], eax
mov edx, dword [ebp + 8]
push edx
call fcn.0049cb30
add esp, 4
test eax, eax
je 0x446b30
push 0x4e4484
mov eax, dword [ebp + 8]
push eax
push 0x4e4490
lea ecx, [ebp - 0xe04]
push ecx
call fcn.004b6e08
add esp, 0x10
jmp 0x446b4e
push 0x4e4498
push 0x4fcad8
push 0x4e44a4
lea edx, [ebp - 0xe04]
push edx
call fcn.004b6e08
add esp, 0x10
lea eax, [ebp - 0xe04]
push eax
push 0x200
lea ecx, [ebp - 0xa04]
push ecx
push 0x526cf7
push 0x4e44ac
push 0x4e44bc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x140c], eax
cmp dword [ebp - 0x140c], 0
jne 0x446ba7
lea edx, [ebp - 0xe04]
push edx
push 0x4e44c4
push 0x4e44c8
push 0x4e44d8
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov dword [ebp - 0x140c], eax
lea eax, [ebp - 0xe04]
push eax
push 0x200
lea ecx, [ebp - 0xa04]
push ecx
push 0x526cfc
push 0x4e3860
push 0x4e386c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x140c], eax
cmp dword [ebp - 0x140c], 0
jne 0x446c5d
lea edx, [ebp - 0xe04]
push edx
push 0x200
lea eax, [ebp - 0xa04]
push eax
push 0x526ba8
push str.010MUL42
push 0x4e3880
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x140c], eax
cmp dword [ebp - 0x140c], 0
je 0x446c5d
lea ecx, [ebp - 0xe04]
push ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea edx, [ebp - 0xe04]
push edx
push 0x4e3888
push str.010GRA42
push 0x4e3898
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov dword [ebp - 0x140c], eax
lea eax, [ebp - 0xe04]
push eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x4e38a0
lea ecx, [ebp - 0xe04]
push ecx
call fcn.0041a470
add esp, 8
mov dword [ebp - 0x1414], eax
cmp dword [ebp - 0x1414], 0
jne 0x446cda
push 0x4e38a4
lea edx, [ebp - 0xa04]
push edx
push 0x4e38b0
push 0
call fcn.004766d0
add esp, 0x10
push 0x526ba9
push 0x526baa
push 0x4e38d4
lea eax, [ebp - 0xa04]
push eax
call fcn.00458fb0
add esp, 0x10
lea ecx, [ebp - 0xe04]
push ecx
push str.ERROR:_Cant_open_file__3_:__s
push 1
call fcn.004417b0
add esp, 0xc
mov eax, dword [ebp - 0x141c]
jmp 0x4483a0
mov edx, 1
imul edx, edx, 0
mov dword [ebp - 0x1454], edx
cmp dword [ebp - 0x1454], 0xff
jae 0x446cf6
jmp 0x446cfb
call fcn.004b64ae
mov eax, dword [ebp - 0x1454]
mov byte [ebp + eax - 0x504], 0
mov ecx, dword [ebp - 0x1414]
push ecx
push 0xff
lea edx, [ebp - 0x504]
push edx
call fcn.004b6cc9
add esp, 0xc
lea eax, [ebp - 0x504]
push eax
call fcn.004ca5db
add esp, 4
push 0x4e3904
lea ecx, [ebp - 0x504]
push ecx
call fcn.004b6b14
add esp, 8
push 0x4e3908
lea edx, [ebp - 0x504]
push edx
call fcn.004b5ff0
add esp, 8
mov dword [ebp - 0x1418], eax
cmp dword [ebp - 0x1418], 0
je 0x446d73
mov eax, dword [ebp - 0x1418]
mov byte [eax], 0
lea ecx, [ebp - 0x504]
push ecx
lea edx, [ebp - 0x104]
push edx
call fcn.004b5e60
add esp, 8
push 0x4e390c
lea eax, [ebp - 0x104]
push eax
call fcn.004b5ff0
add esp, 8
mov dword [ebp - 0x1418], eax
cmp dword [ebp - 0x1418], 0
jne 0x446db1
jmp 0x4471f3
mov ecx, dword [ebp - 0x1418]
add ecx, 1
push ecx
lea edx, [ebp - 0x704]
push edx
call fcn.004b5e60
add esp, 8
push 0x4e3910
lea eax, [ebp - 0x704]
push eax
call fcn.004b6b14
add esp, 8
lea ecx, [ebp - 0x704]
push ecx
push 3
call fcn.0042d840
add esp, 8
mov edx, dword [ebp - 0x1418]
mov byte [edx], 0
lea eax, [ebp - 0x104]
push eax
push 3
call fcn.0042d840
add esp, 8
mov ecx, 1
imul ecx, ecx, 0
movsx edx, byte [ebp + ecx - 0x104]
cmp edx, 0x3b
jne 0x446e23
jmp 0x4471f3
mov eax, 1
imul eax, eax, 0
movsx ecx, byte [ebp + eax - 0x104]
cmp ecx, 0x30
jne 0x446e51
lea edx, [ebp - 0x104]
push edx
call fcn.004b5f60
add esp, 4
cmp eax, 8
je 0x446e51
jmp 0x4471f3
push str.015mul41
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x446e7c
push 0
call fcn.0041af20
add esp, 4
test eax, eax
jne 0x446e7c
jmp 0x4471f3
push 0x4e3920
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x446eaa
lea edx, [ebp - 0x704]
push edx
lea eax, [ebp - 0x1404]
push eax
call fcn.004b5e60
add esp, 8
push 0x4e3934
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447013
push 0x4e393c
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447013
push 0x4e394c
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447013
push 0x4e395c
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447013
push 0x4e396c
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447013
push 0x4e397c
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447013
push 0x4e398c
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447013
push 0x4e399c
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447013
push 0x4e39a8
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447013
push 0x4e39b4
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447013
push 0x4e39c4
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447013
push 0x4e39d4
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447013
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b5f60
add esp, 4
cmp eax, 8
jne 0x447015
mov edx, 1
imul edx, edx, 0
movsx eax, byte [ebp + edx - 0x104]
cmp eax, 0x30
jne 0x447015
jmp 0x44701a
jmp 0x4471f3
cmp dword [ebp - 0x1450], 0
jne 0x447058
push 0x4e39e0
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447053
push 0x4e39f0
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x447058
jmp 0x4471f3
lea eax, [ebp - 0x104]
push eax
call fcn.004b5f60
add esp, 4
cmp eax, 8
jne 0x44708b
push 3
push 0x4e3a00
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b6970
add esp, 0xc
test eax, eax
jne 0x44708b
jmp 0x4471f3
push 0x4e3a04
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4470be
lea eax, [ebp - 0x704]
push eax
push str.minimum_version__s
lea ecx, [ebp - 0x1004]
push ecx
call fcn.004b6e08
add esp, 0xc
push 0x4e3a28
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4470f5
mov eax, 1
imul eax, eax, 0
movsx ecx, byte [ebp + eax - 0x704]
cmp ecx, 0x79
jne 0x4470f5
mov dword [0x4fe974], 1
push 0x2ce
call fcn.004b6c11
add esp, 4
mov edx, dword [0x526bd4]
mov dword [edx*4 + 0x18a0260], eax
mov eax, dword [0x526bd4]
cmp dword [eax*4 + 0x18a0260], 0
jne 0x447145
push 0x4e3a38
push 0x526bab
push 0x4e3a5c
push 0x4e3a6c
call fcn.00458fb0
add esp, 0x10
mov eax, dword [ebp - 0x141c]
jmp 0x4483a0
lea ecx, [ebp - 0x104]
push ecx
mov edx, dword [0x526bd4]
mov eax, dword [edx*4 + 0x18a0260]
push eax
call fcn.004b5e60
add esp, 8
mov ecx, dword [0x526bd4]
mov edx, dword [ecx*4 + 0x18a0260]
mov eax, 1
imul eax, eax, 0
mov byte [edx + eax + 0x64], 0
lea ecx, [ebp - 0x704]
push ecx
mov edx, dword [0x526bd4]
mov eax, dword [edx*4 + 0x18a0260]
add eax, 0x1c7
push eax
call fcn.004b5e60
add esp, 8
mov ecx, dword [0x526bd4]
mov edx, dword [ecx*4 + 0x18a0260]
mov eax, 1
imul eax, eax, 0
mov byte [edx + eax + 0xc8], 0
mov ecx, dword [0x526bd4]
mov edx, dword [ecx*4 + 0x18a0260]
mov dword [edx + 0x2c8], 0
mov eax, dword [0x526bd4]
mov ecx, dword [0x526bd4]
mov dword [eax*4 + 0xf583a0], ecx
mov edx, dword [0x526bd4]
add edx, 1
mov dword [0x526bd4], edx
mov eax, dword [ebp - 0x1414]
push eax
call fcn.004b6ca3
add esp, 4
test eax, eax
je 0x446cda
mov ecx, dword [ebp - 0x1414]
push ecx
call fcn.00419ca0
add esp, 4
mov dword [ebp - 0x1414], 0
call fcn.00446250
push 0x4fef80
push 0x4fa370
push 0x4e3a8c
lea edx, [ebp - 0xc04]
push edx
call fcn.004b6e08
add esp, 0x10
push 0x4e3a94
lea eax, [ebp - 0xc04]
push eax
call fcn.0041a470
add esp, 8
mov dword [ebp - 0x1414], eax
cmp dword [ebp - 0x1414], 0
jne 0x447305
push 0x4fef80
lea ecx, [ebp - 0xa04]
push ecx
push str.MSG_Err_Cannot_Open_Files_Needed
push 0
call fcn.004766d0
add esp, 0x10
lea edx, [ebp - 0x604]
push edx
push 0x4e3abc
push 0
call fcn.00475ed0
add esp, 0xc
push 0x4e3ad8
lea eax, [ebp - 0xa04]
push eax
call fcn.004b5e70
add esp, 8
push 0x4e3adc
lea ecx, [ebp - 0xa04]
push ecx
call fcn.004b5e70
add esp, 8
lea edx, [ebp - 0x604]
push edx
lea eax, [ebp - 0xa04]
push eax
call fcn.004b5e70
add esp, 8
push 0x526bac
push 0x526bad
push 0x4e3ae0
lea ecx, [ebp - 0xa04]
push ecx
call fcn.00458fb0
add esp, 0x10
mov eax, dword [ebp - 0x141c]
jmp 0x4483a0
mov dword [ebp - 0x141c], 0
mov edx, dword [ebp - 0x1414]
push edx
push 0xff
lea eax, [ebp - 0x504]
push eax
call fcn.004b6cc9
add esp, 0xc
lea ecx, [ebp - 0x504]
push ecx
call fcn.004ca5db
add esp, 4
push 0x4e3af0
lea edx, [ebp - 0x504]
push edx
call fcn.004b5ff0
add esp, 8
mov dword [ebp - 0x1418], eax
cmp dword [ebp - 0x1418], 0
je 0x4473a5
mov eax, dword [ebp - 0x1418]
add eax, 1
push eax
lea ecx, [ebp - 0x304]
push ecx
call fcn.004b5e60
add esp, 8
push 0x4e3af4
lea edx, [ebp - 0x304]
push edx
call fcn.004b6b14
add esp, 8
lea eax, [ebp - 0x304]
push eax
push 3
call fcn.0042d840
add esp, 8
mov ecx, dword [ebp - 0x1418]
mov byte [ecx], 0
jmp 0x4473d4
mov edx, 1
imul edx, edx, 0
mov dword [ebp - 0x1448], edx
cmp dword [ebp - 0x1448], 0xff
jae 0x4473c1
jmp 0x4473c6
call fcn.004b64ae
mov eax, dword [ebp - 0x1448]
mov byte [ebp + eax - 0x304], 0
lea ecx, [ebp - 0x504]
push ecx
lea edx, [ebp - 0x104]
push edx
call fcn.004b5e60
add esp, 8
push 0x4e3af8
lea eax, [ebp - 0x104]
push eax
call fcn.004b5ff0
add esp, 8
mov dword [ebp - 0x1418], eax
cmp dword [ebp - 0x1418], 0
jne 0x447412
jmp 0x44836a
mov ecx, dword [ebp - 0x1418]
add ecx, 1
push ecx
lea edx, [ebp - 0x404]
push edx
call fcn.004b5e60
add esp, 8
push 0x4e3afc
lea eax, [ebp - 0x404]
push eax
call fcn.004b6b14
add esp, 8
lea ecx, [ebp - 0x404]
push ecx
push 3
call fcn.0042d840
add esp, 8
mov edx, dword [ebp - 0x1418]
mov byte [edx], 0
push str.rm_ver
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x4474b9
push str.launcher_ver
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x4474b9
push 0x4e3b18
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x4474b9
push 0x4e3b24
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4474be
jmp 0x44836a
push 7
push str.server_
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b6970
add esp, 0xc
test eax, eax
jne 0x4474dd
jmp 0x44836a
push 0x4e3b3c
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4474fa
jmp 0x44836a
push 0x4e3b4c
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x44752f
push 0x4e3b58
lea ecx, [ebp - 0x704]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x44752f
jmp 0x44836a
mov edx, 1
imul edx, edx, 0
movsx eax, byte [ebp + edx - 0x1004]
test eax, eax
je 0x4475cd
lea ecx, [ebp - 0x1004]
push ecx
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x447577
lea eax, [ebp - 0x404]
push eax
lea ecx, [ebp - 0xf04]
push ecx
call fcn.004b5e60
add esp, 8
lea edx, [ebp - 0xf04]
push edx
call fcn.004b5f60
add esp, 4
cmp eax, 0xf
jne 0x4475cd
push 0x4e3b5c
lea eax, [ebp - 0x104]
push eax
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x4475cd
lea ecx, [ebp - 0x404]
push ecx
call fcn.004b5f60
add esp, 4
cmp eax, 0xf
jne 0x4475cd
lea edx, [ebp - 0xf04]
push edx
lea eax, [ebp - 0x404]
push eax
call fcn.004b5e60
add esp, 8
push 0x4e3b64
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x447627
mov edx, 1
imul edx, edx, 0
movsx eax, byte [ebp + edx - 0x304]
test eax, eax
je 0x447611
lea ecx, [ebp - 0x304]
push ecx
lea edx, [ebp - 0xb04]
push edx
call fcn.004b5e60
add esp, 8
jmp 0x447627
lea eax, [ebp - 0x404]
push eax
lea ecx, [ebp - 0xb04]
push ecx
call fcn.004b5e60
add esp, 8
push 0x4e3b74
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x447681
mov eax, 1
imul eax, eax, 0
movsx ecx, byte [ebp + eax - 0x304]
test ecx, ecx
je 0x44766b
lea edx, [ebp - 0x304]
push edx
lea eax, [ebp - 0x1304]
push eax
call fcn.004b5e60
add esp, 8
jmp 0x447681
lea ecx, [ebp - 0x404]
push ecx
lea edx, [ebp - 0x1304]
push edx
call fcn.004b5e60
add esp, 8
push str.e_lective_ver_win
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4476e4
mov ecx, 1
imul ecx, ecx, 0
movsx edx, byte [ebp + ecx - 0x304]
test edx, edx
je 0x4476ce
cmp dword [ebp - 0x142c], 1
jne 0x4476ce
lea eax, [ebp - 0x304]
push eax
lea ecx, [ebp - 0x1104]
push ecx
call fcn.004b5e60
add esp, 8
jmp 0x4476e4
lea edx, [ebp - 0x404]
push edx
lea eax, [ebp - 0x1104]
push eax
call fcn.004b5e60
add esp, 8
mov dword [ebp - 0x1408], 0
jmp 0x4476ff
mov ecx, dword [ebp - 0x1408]
add ecx, 1
mov dword [ebp - 0x1408], ecx
mov edx, dword [ebp - 0x1408]
cmp edx, dword [0x526bd4]
jge 0x44836a
push str.videodrvm_ver
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x44772e
jmp 0x44836a
push 0x4e3ba4
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x44774b
jmp 0x44836a
push 0x4e3bb4
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x44777b
push 0x4e3bc4
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x447789
cmp dword [0x4fe974], 0
jne 0x447789
jmp 0x44836a
push 0x4e3bd4
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4477a6
jmp 0x44836a
push 0x4e3be0
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x4477d6
push str.tts_ver_mac
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4477e4
cmp dword [ebp - 0x144c], 0
jne 0x4477e4
jmp 0x44836a
lea ecx, [ebp - 0x104]
push ecx
mov edx, dword [ebp - 0x1408]
mov eax, dword [edx*4 + 0x18a0260]
push eax
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x448365
cmp dword [ebp - 0x142c], 1
jne 0x44783c
mov ecx, 1
imul ecx, ecx, 0
movsx edx, byte [ebp + ecx - 0x304]
test edx, edx
je 0x44783c
lea eax, [ebp - 0x304]
push eax
lea ecx, [ebp - 0x404]
push ecx
call fcn.004b5e60
add esp, 8
lea edx, [ebp - 0x404]
push edx
mov eax, dword [ebp - 0x1408]
mov ecx, dword [eax*4 + 0x18a0260]
add ecx, 0xc8
push ecx
call fcn.004b5e60
add esp, 8
push 0x4e3bf8
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x447890
push 0x4e3c00
lea eax, [ebp - 0x204]
push eax
call fcn.004b5e60
add esp, 8
jmp 0x447f86
push 0x4e3c14
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4478c1
push str.__Launcher_Application
lea edx, [ebp - 0x204]
push edx
call fcn.004b5e60
add esp, 8
jmp 0x447f86
push 0x4e3c3c
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4478f2
push str.__UpToDate_Application
lea ecx, [ebp - 0x204]
push ecx
call fcn.004b5e60
add esp, 8
jmp 0x447f86
push str.docini_ver
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x447923
push str._Online_Documentation
lea eax, [ebp - 0x204]
push eax
call fcn.004b5e60
add esp, 8
jmp 0x447f86
push 0x4e3c88
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x44795d
cmp dword [0x4fe974], 1
jne 0x44795d
push str._Speech_Recognition__Windows_
lea edx, [ebp - 0x204]
push edx
call fcn.004b5e60
add esp, 8
jmp 0x447f86
push str.tts_ver_win
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x447997
cmp dword [ebp - 0x144c], 1
jne 0x447997
push str._Text_To_Speech__Windows_
lea ecx, [ebp - 0x204]
push ecx
call fcn.004b5e60
add esp, 8
jmp 0x447f86
lea edx, [ebp - 0x104]
push edx
call fcn.004b5f60
add esp, 4
cmp eax, 8
jne 0x447e60
lea eax, [ebp - 0x104]
push eax
call fcn.004ca3dc
add esp, 4
push 3
push 0x4e3ce0
lea ecx, [ebp - 0x101]
push ecx
call fcn.004b6970
add esp, 0xc
test eax, eax
jne 0x4479fa
push 3
push 0x4e3ce4
lea edx, [ebp - 0x101]
push edx
call fcn.004b69f0
add esp, 0xc
mov dword [ebp - 0x1428], 1
jmp 0x447a04
mov dword [ebp - 0x1428], 0
push 0x4e3ce8
push 0x5c
lea eax, [ebp - 0x104]
push eax
push 0x5c
push 0x4e3cf4
mov ecx, dword [ebp + 8]
push ecx
push 0x4e3cfc
lea edx, [ebp - 0x804]
push edx
call fcn.004b6e08
add esp, 0x20
lea eax, [ebp - 0x804]
push eax
push 0xff
lea ecx, [ebp - 0x204]
push ecx
push 0x526bae
push 0x4e3d0c
push 0x4e3d18
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x140c], eax
cmp dword [ebp - 0x140c], 0
jne 0x447ac8
push 0x5c
lea edx, [ebp - 0x104]
push edx
push 0x5c
push 0x4e3d24
mov eax, dword [ebp + 8]
push eax
push 0x4e3d2c
push 1
call fcn.004417b0
add esp, 0x1c
lea ecx, [ebp - 0x104]
push ecx
push 0x4e3d54
lea edx, [ebp - 0x204]
push edx
call fcn.004b6e08
add esp, 0xc
mov eax, dword [ebp - 0x1408]
mov ecx, dword [eax*4 + 0x18a0260]
mov edx, 1
imul edx, edx, 0
mov byte [ecx + edx + 0xc8], 0
jmp 0x447e16
cmp dword [0x4fe974], 0
jne 0x447d5a
lea eax, [ebp - 0x804]
push eax
push 0xff
lea ecx, [ebp - 0x604]
push ecx
push 0x4e3d60
push 0x4e3d64
push 0x4e3d6c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x140c], eax
mov edx, 1
imul edx, edx, 0
movsx eax, byte [ebp + edx - 0x604]
cmp eax, 0x79
je 0x447b31
mov ecx, 1
imul ecx, ecx, 0
movsx edx, byte [ebp + ecx - 0x604]
cmp edx, 0x59
jne 0x447d5a
mov dword [ebp - 0x1434], 0x4e3d78
mov dword [ebp - 0x1438], str._Speech_Recognition_Engine__Windows_
mov dword [ebp - 0x1410], 0
jmp 0x447b60
mov eax, dword [ebp - 0x1410]
add eax, 1
mov dword [ebp - 0x1410], eax
mov ecx, dword [ebp - 0x1410]
cmp ecx, dword [0x526bd4]
jge 0x447cb9
mov edx, dword [ebp - 0x1434]
push edx
mov eax, dword [ebp - 0x1410]
mov ecx, dword [eax*4 + 0x18a0260]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x447cb4
lea edx, [ebp - 0xb04]
push edx
mov eax, dword [ebp - 0x1410]
mov ecx, dword [eax*4 + 0x18a0260]
add ecx, 0xc8
push ecx
call fcn.004b5e60
add esp, 8
push 0x4e3db0
mov edx, dword [ebp - 0x1410]
mov eax, dword [edx*4 + 0x18a0260]
add eax, 0x1c7
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x447c3a
push 0xf
mov ecx, dword [ebp - 0x1410]
mov edx, dword [ecx*4 + 0x18a0260]
add edx, 0x1c7
push edx
mov eax, dword [ebp - 0x1410]
mov ecx, dword [eax*4 + 0x18a0260]
add ecx, 0xc8
push ecx
call fcn.004b6970
add esp, 0xc
test eax, eax
jle 0x447c61
push 0xf
mov edx, dword [ebp - 0x1410]
mov eax, dword [edx*4 + 0x18a0260]
add eax, 0x1c7
push eax
push 0x4e3db4
call fcn.004b6970
add esp, 0xc
test eax, eax
je 0x447c61
mov ecx, dword [ebp - 0x1438]
push ecx
push 0x4e3dc4
mov edx, dword [ebp - 0x1410]
mov eax, dword [edx*4 + 0x18a0260]
add eax, 0x64
push eax
call fcn.004b6e08
add esp, 0xc
jmp 0x447c86
mov ecx, dword [ebp - 0x1438]
push ecx
push 0x4e3dd0
mov edx, dword [ebp - 0x1410]
mov eax, dword [edx*4 + 0x18a0260]
add eax, 0x64
push eax
call fcn.004b6e08
add esp, 0xc
lea ecx, [ebp - 0xb04]
push ecx
mov edx, dword [ebp - 0x1410]
mov eax, dword [edx*4 + 0x18a0260]
add eax, 0xc8
push eax
call fcn.004b5e60
add esp, 8
mov dword [0x4fe974], 1
jmp 0x447cb9
jmp 0x447b51
cmp dword [0x4fe974], 0
jne 0x447d5a
mov ecx, dword [0x526bd4]
mov dword [ebp - 0x1410], ecx
push 0x4e3dd4
mov edx, dword [ebp - 0x1434]
push edx
push 0x4fcad8
call fcn.004454d0
add esp, 0xc
mov eax, dword [ebp - 0x1434]
push eax
mov ecx, dword [ebp - 0x1410]
mov edx, dword [ecx*4 + 0x18a0260]
push edx
call fcn.004b5e60
add esp, 8
mov eax, dword [ebp - 0x1438]
push eax
push 0x4e3dd8
mov ecx, dword [ebp - 0x1410]
mov edx, dword [ecx*4 + 0x18a0260]
add edx, 0x64
push edx
call fcn.004b6e08
add esp, 0xc
lea eax, [ebp - 0xb04]
push eax
mov ecx, dword [ebp - 0x1410]
mov edx, dword [ecx*4 + 0x18a0260]
add edx, 0xc8
push edx
call fcn.004b5e60
add esp, 8
mov dword [0x4fe974], 1
lea eax, [ebp - 0x804]
push eax
push 0xff
lea ecx, [ebp - 0x604]
push ecx
push 0x526baf
push 0x4e3de4
push 0x4e3dec
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x140c], eax
cmp dword [ebp - 0x140c], 0
je 0x447df9
lea edx, [ebp - 0x604]
push edx
lea eax, [ebp - 0x204]
push eax
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x447ded
lea ecx, [ebp - 0x604]
push ecx
call fcn.004ca5db
add esp, 4
lea edx, [ebp - 0x604]
push edx
push 0x4e3df8
lea eax, [ebp - 0x1204]
push eax
call fcn.004b6e08
add esp, 0xc
lea ecx, [ebp - 0x1204]
push ecx
lea edx, [ebp - 0x204]
push edx
call fcn.004b5e70
add esp, 8
jmp 0x447df9
mov eax, dword [ebp - 0x140c]
mov dword [ebp - 0x140c], eax
cmp dword [ebp - 0x1428], 1
jne 0x447e16
push str.__Optional_graphics_update____50MB
lea ecx, [ebp - 0x204]
push ecx
call fcn.004b5e70
add esp, 8
mov edx, 1
imul edx, edx, 0
movsx eax, byte [ebp + edx - 0x304]
test eax, eax
jne 0x447e5b
mov ecx, dword [ebp - 0x1408]
mov edx, dword [ecx*4 + 0x18a0260]
mov eax, 1
imul eax, eax, 0
mov byte [edx + eax + 0xc8], 0
push str.___no_update_available_
lea ecx, [ebp - 0x204]
push ecx
call fcn.004b5e70
add esp, 8
jmp 0x447f86
lea edx, [ebp - 0x104]
push edx
call fcn.004b5f60
add esp, 4
cmp eax, 0xa
jne 0x447f86
mov eax, 1
imul eax, eax, 9
movsx ecx, byte [ebp + eax - 0x104]
push ecx
push str.__Lesson__c_
lea edx, [ebp - 0xa04]
push edx
call fcn.004b6e08
add esp, 0xc
mov eax, 1
shl eax, 3
mov dword [ebp - 0x143c], eax
cmp dword [ebp - 0x143c], 0xff
jae 0x447eb9
jmp 0x447ebe
call fcn.004b64ae
mov ecx, dword [ebp - 0x143c]
mov byte [ebp + ecx - 0x104], 0
push 0x4e3e4c
push 0x5c
lea edx, [ebp - 0x104]
push edx
push 0x5c
push 0x4e3e58
mov eax, dword [ebp + 8]
push eax
push 0x4e3e60
lea ecx, [ebp - 0x804]
push ecx
call fcn.004b6e08
add esp, 0x20
lea edx, [ebp - 0x804]
push edx
push 0xff
lea eax, [ebp - 0x204]
push eax
push 0x526bb0
push 0x4e3e70
push 0x4e3e7c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x140c], eax
cmp dword [ebp - 0x140c], 0
jne 0x447f70
push 0x5c
lea ecx, [ebp - 0x104]
push ecx
push 0x5c
push 0x4e3e88
mov edx, dword [ebp + 8]
push edx
push str.Cant_find_file:__s_s_c_s_cdyned.ini
push 1
call fcn.004417b0
add esp, 0x1c
lea eax, [ebp - 0x104]
push eax
push str._s:_Unknown
lea ecx, [ebp - 0x204]
push ecx
call fcn.004b6e08
add esp, 0xc
jmp 0x447f86
lea edx, [ebp - 0xa04]
push edx
lea eax, [ebp - 0x204]
push eax
call fcn.004b5e70
add esp, 8
push str.015MUL41
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x447fe4
lea edx, [ebp - 0x1104]
push edx
mov eax, dword [ebp - 0x1408]
mov ecx, dword [eax*4 + 0x18a0260]
add ecx, 0xc8
push ecx
call fcn.004b5e60
add esp, 8
lea edx, [ebp - 0x1404]
push edx
mov eax, dword [ebp - 0x1408]
mov ecx, dword [eax*4 + 0x18a0260]
add ecx, 0x1c7
push ecx
call fcn.004b5e60
add esp, 8
mov dword [ebp - 0x1430], 0
cmp dword [ebp - 0x142c], 1
jne 0x44807c
push 0xf
mov edx, dword [ebp - 0x1408]
mov eax, dword [edx*4 + 0x18a0260]
add eax, 0x1c7
push eax
mov ecx, dword [ebp - 0x1408]
mov edx, dword [ecx*4 + 0x18a0260]
add edx, 0xc8
push edx
call fcn.004b6970
add esp, 0xc
test eax, eax
jle 0x448077
push 0xf
mov eax, dword [ebp - 0x1408]
mov ecx, dword [eax*4 + 0x18a0260]
add ecx, 0x1c7
push ecx
push 0x4e3ed0
call fcn.004b6970
add esp, 0xc
test eax, eax
je 0x448077
mov dword [ebp - 0x1430], 1
mov edx, dword [ebp - 0x1408]
mov eax, dword [edx*4 + 0x18a0260]
push eax
call fcn.00445db0
add esp, 4
jmp 0x448136
push 0xf
mov ecx, dword [ebp - 0x1408]
mov edx, dword [ecx*4 + 0x18a0260]
add edx, 0x1c7
push edx
mov eax, dword [ebp - 0x1408]
mov ecx, dword [eax*4 + 0x18a0260]
add ecx, 0xc8
push ecx
call fcn.004b6970
add esp, 0xc
test eax, eax
jle 0x448136
push str.uptodate_ver
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x448136
push 0x4e3ef0
lea eax, [ebp - 0x104]
push eax
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x448136
push 0x4e3f00
lea ecx, [ebp - 0x104]
push ecx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x448136
push str.babel_ver_mac
lea edx, [ebp - 0x104]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
je 0x448136
mov dword [ebp - 0x1430], 1
mov eax, dword [ebp - 0x1408]
mov ecx, dword [eax*4 + 0x18a0260]
push ecx
call fcn.00445db0
add esp, 4
cmp dword [ebp - 0x1430], 1
jne 0x448318
mov edx, dword [ebp - 0x1408]
mov eax, dword [edx*4 + 0x18a0260]
mov ecx, 1
imul ecx, ecx, 0
movsx edx, byte [eax + ecx + 0x1c7]
test edx, edx
jne 0x44818e
lea eax, [ebp - 0x204]
push eax
push str.______s
mov ecx, dword [ebp - 0x1408]
mov edx, dword [ecx*4 + 0x18a0260]
add edx, 0x64
push edx
call fcn.004b6e08
add esp, 0xc
jmp 0x4482bf
cmp dword [ebp - 0x1444], 1
jne 0x4481e5
mov eax, dword [ebp - 0x1408]
mov ecx, dword [eax*4 + 0x18a0260]
add ecx, 0xc8
push ecx
mov edx, dword [ebp - 0x1408]
mov eax, dword [edx*4 + 0x18a0260]
add eax, 0x1c7
push eax
lea ecx, [ebp - 0x204]
push ecx
push str._____s___s____s
mov edx, dword [ebp - 0x1408]
mov eax, dword [edx*4 + 0x18a0260]
add eax, 0x64
push eax
call fcn.004b6e08
add esp, 0x14
jmp 0x44820a
lea ecx, [ebp - 0x204]
push ecx
push str._____s
mov edx, dword [ebp - 0x1408]
mov eax, dword [edx*4 + 0x18a0260]
add eax, 0x64
push eax
call fcn.004b6e08
add esp, 0xc
push str.videodrv
mov ecx, dword [ebp - 0x1408]
mov edx, dword [ecx*4 + 0x18a0260]
push edx
call fcn.004b5ff0
add esp, 8
test eax, eax
jne 0x448248
push str.2_ver
mov eax, dword [ebp - 0x1408]
mov ecx, dword [eax*4 + 0x18a0260]
push ecx
call fcn.004b5ff0
add esp, 8
test eax, eax
je 0x4482bf
mov dword [ebp - 0x1420], 0
mov dword [ebp - 0x1420], 0
jmp 0x44826d
mov edx, dword [ebp - 0x1420]
add edx, 1
mov dword [ebp - 0x1420], edx
mov eax, dword [ebp - 0x1420]
cmp eax, dword [ebp - 0x1408]
jge 0x4482bf
push str._DynEd_Applications
mov ecx, dword [ebp - 0x1420]
mov edx, dword [ecx*4 + 0x18a0260]
add edx, 0x64
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x4482bd
push str._____DynEd_Applications
mov eax, dword [ebp - 0x1420]
mov ecx, dword [eax*4 + 0x18a0260]
add ecx, 0x64
push ecx
call fcn.004b5e60
add esp, 8
jmp 0x4482bf
jmp 0x44825e
mov edx, dword [ebp - 0x1408]
mov eax, dword [edx*4 + 0x18a0260]
add eax, 0xc8
push eax
mov ecx, dword [ebp - 0x1408]
mov edx, dword [ecx*4 + 0x18a0260]
add edx, 0x1c7
push edx
mov eax, dword [ebp - 0x1408]
mov ecx, dword [eax*4 + 0x18a0260]
push ecx
push str.Out_of_date:__s_installed_s_latest_s
push 1
call fcn.004417b0
add esp, 0x14
cmp dword [ebp - 0x1428], 1
je 0x448316
mov dword [ebp - 0x141c], 1
jmp 0x448363
lea edx, [ebp - 0x204]
push edx
push 0x4e3fb8
mov eax, dword [ebp - 0x1408]
mov ecx, dword [eax*4 + 0x18a0260]
add ecx, 0x64
push ecx
call fcn.004b6e08
add esp, 0xc
cmp dword [ebp - 0x1428], 1
jne 0x448363
mov edx, dword [ebp - 0x1408]
mov eax, dword [edx*4 + 0x18a0260]
mov ecx, 1
imul ecx, ecx, 0
mov byte [eax + ecx + 0xc8], 0
jmp 0x44836a
jmp 0x4476f0
mov edx, dword [ebp - 0x1414]
push edx
call fcn.004b6ca3
add esp, 4
test eax, eax
je 0x44730f
mov eax, dword [ebp - 0x1414]
push eax
call fcn.00419ca0
add esp, 4
mov dword [ebp - 0x1414], 0
mov eax, dword [ebp - 0x141c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b6253
mov esp, ebp
pop ebp
ret