Function at 0x4a66b0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a1ea6
mov eax, dword fs:[0]
push eax
mov eax, 0x21278
call fcn.005965e0
mov eax, dword [0x601018]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov esi, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x21274], esi
mov dword [ebp - 0x21270], eax
mov dword [ebp - 0x21280], ecx
mov dword [ebp - 0x21278], edx
test edi, edi
jne 0x4a6712
call dword [sym.imp.MSVCR100.dll_abort]
lea eax, [ebp - 0x214]
mov edx, edi
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [edx + eax]
test cl, cl
je 0x4a6731
mov byte [eax], cl
inc eax
lea ecx, [ebp - 0x15]
cmp eax, ecx
jb 0x4a6720
mov edi, str..FNT
lea ebx, [ebp - 0x214]
mov byte [eax], 0
call fcn.004015d0
test eax, eax
jne 0x4a675d
push 0x200
mov ebx, edi
lea eax, [ebp - 0x214]
call fcn.00401570
add esp, 4
mov ebx, dword [esi + 0x10]
mov edx, dword [ebp + 0x18]
xor edi, edi
mov dword [esi + 0x28], edx
cmp ebx, edi
je 0x4a67c0
mov ecx, ebx
lea eax, [ebp - 0x214]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4a6794
test dl, dl
je 0x4a6790
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4a6794
add eax, 2
add ecx, 2
test dl, dl
jne 0x4a6774
xor eax, eax
jmp 0x4a6799
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x4a6da4
push ebx
mov ebx, dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
call ebx
mov eax, dword [esi + 0x14]
add esp, 4
cmp eax, edi
je 0x4a67ba
push eax
call ebx
add esp, 4
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
mov ebx, vtable.MemoryFile.0
mov dword [ebp - 0x21268], edi
mov dword [ebp - 0x2126c], ebx
mov dword [ebp - 0x1264], edi
cmp dword [0x60dc40], edi
je 0x4a67f3
lea eax, [ebp - 0x21264]
push eax
mov ecx, 0x20000
call fcn.00505a50
add esp, 4
lea esi, [ebp - 0x2126c]
call fcn.00507d30
mov edx, dword [ebp - 0x21270]
push edi
mov ecx, esi
mov esi, dword [ebp - 0x21280]
push ecx
lea eax, [ebp - 0x214]
add edx, 0x286f7c
push eax
mov ecx, esi
mov dword [ebp - 4], edi
call fcn.004524a0
cmp eax, edi
jne 0x4a6de6
push edi
push edi
lea ecx, [ebp - 0x2126c]
call fcn.005069f0
cmp dword [ebp - 0x1260], edi
jne 0x4a6dae
lea eax, [ebp - 0x214]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a6850
sub eax, edx
inc eax
push eax
call fcn.00596073
mov ebx, dword [ebp - 0x21274]
lea ecx, [ebp - 0x214]
mov edx, eax
mov dword [ebx + 0x10], eax
mov eax, ecx
add esp, 4
sub edx, eax
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x4a6878
cmp dword [ebp - 0x1264], edi
jne 0x4a689e
mov dword [ebp - 0x1260], 0x125ca
xor esi, esi
mov dword [ebp - 0x21278], edi
jmp 0x4a68b3
mov eax, dword [ebp - 0x1258]
cdq
mov dword [ebp - 0x1260], edi
mov esi, eax
mov dword [ebp - 0x21278], edx
push esi
call fcn.00596073
add esp, 4
push esi
push eax
lea ecx, [ebp - 0x2126c]
mov dword [ebx + 0x14], eax
call fcn.005080c0
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0x24], eax
cmp byte [eax + 0x7f], 0x2a
jne 0x4a68f4
cmp byte [eax + 0x80], 0
lea ecx, [eax + 0x80]
je 0x4a68ec
mov dword [ebx + 0x24], ecx
jmp 0x4a68f4
add eax, 0x200
mov dword [ebx + 0x24], eax
add dword [ebx + 0x24], 0x100
mov eax, dword [ebx + 0x24]
movzx ecx, byte [eax - 0xf0]
mov dword [ebx + 0x30], ecx
movzx edx, byte [eax - 0xfb]
movzx esi, byte [eax - 0xfc]
shl dx, 8
movzx edx, dx
or edx, esi
mov dword [ebx + 0x18], edx
movzx edx, byte [eax - 0xfb]
movzx esi, byte [eax - 0xfc]
shl dx, 8
movzx edx, dx
or edx, esi
mov dword [ebx + 0x23c], edx
movzx edx, byte [eax - 0xf7]
movzx esi, byte [eax - 0xf8]
shl dx, 8
movzx edx, dx
or edx, esi
mov dword [ebx + 0x248], edx
movzx edx, byte [eax - 0xf5]
movzx esi, byte [eax - 0xf6]
shl dx, 8
movzx edx, dx
or edx, esi
mov dword [ebx + 0x244], edx
movzx edx, byte [eax - 0xf3]
movzx esi, byte [eax - 0xf4]
shl dx, 8
movzx edx, dx
or edx, esi
mov dword [ebx + 0x240], edx
mov dl, byte [eax - 0x100]
mov byte [ebx + 0x24c], dl
mov edx, dword [ebx + 0x18]
mov dword [ebx + 0x1c], edx
test ecx, ecx
jne 0x4a69b3
mov dword [ebx + 0x30], 0x100
mov ecx, dword [ebx + 0x30]
mov edx, ecx
and edx, 0x8000003f
jns 0x4a69c5
dec edx
or edx, 0xffffffc0
inc edx
je 0x4a69d9
inc ecx
mov edx, ecx
and edx, 0x8000003f
jns 0x4a69d7
dec edx
or edx, 0xffffffc0
inc edx
jne 0x4a69c7
mov dword [ebx + 0x2c], eax
add eax, 0x100
mov dword [ebx + 0x24], eax
lea eax, [eax + ecx*8]
lea esi, [ebp - 0x2126c]
mov dword [ebx + 0x20], eax
call fcn.00507d30
lea edx, [ebx + 0x38]
lea esi, [ebx + 0x138]
xor eax, eax
sub edx, esi
lea ecx, [esi + eax]
mov byte [ecx], al
inc eax
mov byte [ecx + edx], 0
cmp eax, 0xff
jle 0x4a6a02
xor eax, eax
mov dword [ebp - 0x1248], eax
mov dword [ebp - method.WindowsFile.virtual_0], vtable.WindowsFile.0
mov dword [ebp - 0x1244], 0xffffffff
mov dword [ebp - 0x1240], eax
mov byte [ebp - 0x1238], al
mov byte [ebp - 0xe38], al
lea ecx, [ebp - 0xa14]
push 0x400
push ecx
mov byte [ebp - 4], 1
call dword [sym.imp.MSVCR100.dll__getcwd]
lea edi, [ebp - 0xa14]
add esp, 8
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4a6a61
mov eax, dword [ebp - 0x21270]
mov dx, word [0x5cc7f4]
add eax, 0x286f7c
mov word [edi], dx
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a6a80
lea edi, [ebp - 0xa14]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4a6a90
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xa14]
dec edi
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4a6ab0
lea eax, [ebp - 0xa14]
mov word [edi], dx
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4a6ac2
mov edx, dword [str.fontsub.ini]
mov ecx, dword [0x5e3164]
mov dword [eax], edx
mov edx, dword [0x5e3168]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
lea eax, [ebp - 0xa14]
push eax
push 0x400
lea ecx, [ebp - 0xe14]
push ecx
push 0x5bc564
push str.Allow
lea edx, [ebp - 0x214]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0xe14], 0
je 0x4a6bfb
lea eax, [ebp - 0x614]
push 0x400
push eax
call dword [sym.imp.MSVCR100.dll__getcwd]
lea edi, [ebp - 0x614]
add esp, 8
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4a6b37
mov eax, dword [ebp - 0x21270]
mov dx, word [0x5cc7f4]
add eax, 0x286f7c
mov word [edi], dx
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a6b56
lea edi, [ebp - 0x614]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4a6b66
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x614]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4a6b83
lea eax, [ebp - 0xe14]
mov word [edi], dx
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a6b96
lea edi, [ebp - 0x614]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4a6ba6
mov ecx, eax
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 - 0x614]
push ecx
push 0x5c7d4c
push 0x5cc214
lea edi, [ebp - 0x124c]
call fcn.00508fc0
add esp, 0xc
cmp dword [ebp - 0x123c], 0
jne 0x4a6bfb
push 0x100
lea eax, [ebx + 0x38]
push eax
mov ecx, edi
call fcn.005097e0
mov ecx, edi
call fcn.005096c0
lea edx, [ebp - 0xa14]
push edx
push 0x400
lea eax, [ebp - 0xe14]
push eax
push 0x5bc564
push str.Trans
lea ecx, [ebp - 0x214]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0xe14], 0
je 0x4a6d1b
lea edx, [ebp - 0x614]
push 0x400
push edx
call dword [sym.imp.MSVCR100.dll__getcwd]
lea edi, [ebp - 0x614]
add esp, 8
dec edi
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4a6c50
mov eax, dword [ebp - 0x21270]
mov dx, word [0x5cc7f4]
add eax, 0x286f7c
mov word [edi], dx
mov esi, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a6c70
lea edi, [ebp - 0x614]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4a6c80
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x614]
dec edi
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4a6ca0
lea eax, [ebp - 0xe14]
mov word [edi], dx
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a6cb3
lea edi, [ebp - 0x614]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4a6cc3
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 0x614]
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5c7d4c
push 0x5cc214
lea edi, [ebp - 0x124c]
call fcn.00508fc0
add esp, 0xc
cmp dword [ebp - 0x123c], 0
jne 0x4a6d1b
push 0x100
lea eax, [ebx + 0x138]
push eax
mov ecx, edi
call fcn.005097e0
mov ecx, edi
call fcn.005096c0
lea ecx, [ebp - 0xa14]
push ecx
push closesocket
push str.Underscore
lea edx, [ebp - 0x214]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x21270]
lea ecx, [ebp - 0x214]
mov dword [ebx + 0x238], eax
call fcn.0047c570
lea ecx, [ebp - 0x124c]
mov dword [ebx + 0x34], eax
mov dword [ebp - method.WindowsFile.virtual_0], vtable.WindowsFile.0
call fcn.005096c0
lea esi, [ebp - 0x2126c]
mov dword [ebp - method.BaseFile.virtual_0], vtable.BaseFile.0
mov dword [ebp - method.MemoryFile.virtual_0], vtable.MemoryFile.0
call fcn.00507d30
cmp dword [0x60dc44], 0
je 0x4a6da4
lea eax, [ebp - 0x21264]
push eax
mov ecx, 0x20000
call fcn.00505a50
add esp, 4
mov eax, 1
jmp 0x4a6eaa
lea esi, [ebp - 0x2126c]
mov dword [ebp - 0x2126c], ebx
call fcn.00507d30
cmp dword [0x60dc44], edi
je 0x4a6e55
lea ecx, [ebp - 0x21264]
push ecx
mov ecx, 0x20000
call fcn.00505a50
add esp, 4
xor eax, eax
jmp 0x4a6eaa
mov ebx, dword [ebp - 0x21270]
push eax
lea eax, [ebx + 0x286f7c]
push eax
lea edx, [ebp - 0x214]
push edx
push str.unable_to_open_font___s__from_resource_set___s__code___d_
mov edi, 0x139ad
call fcn.004526c0
lea eax, [ebp - 0x214]
push str.P06BOB.FNT
push eax
call dword [sym.imp.MSVCR100.dll__stricmp]
add esp, 0x18
test eax, eax
jne 0x4a6e59
lea esi, [ebp - 0x2126c]
mov dword [ebp - method.MemoryFile.virtual_0], vtable.MemoryFile.0
call fcn.00507d30
cmp dword [0x60dc44], 0
je 0x4a6e55
lea ecx, [ebp - 0x21264]
push ecx
mov ecx, 0x20000
call fcn.00505a50
add esp, 4
xor eax, eax
jmp 0x4a6eaa
mov edx, dword [ebp - 0x21278]
mov ecx, dword [ebp - 0x21274]
push 0
push str.P06BOB.FNT
push edx
push esi
push ebx
call fcn.004a66b0
lea esi, [ebp - 0x2126c]
mov edi, eax
mov dword [ebp - method.MemoryFile.virtual_0], vtable.MemoryFile.0
call fcn.00507d30
cmp dword [0x60dc44], 0
je 0x4a6ea8
lea eax, [ebp - 0x21264]
push eax
mov ecx, 0x20000
call fcn.00505a50
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00596083
mov esp, ebp
pop ebp
ret 0x14