Function at 0x45dcd0
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x2d4
mov eax, dword [esp + 0x2d8]
push ebx
push ebp
push esi
push edi
push eax
mov dword [esp + 0x1c], ecx
call fcn.0045dbb0
mov ebp, eax
mov byte [esp + 0xe4], 0
xor eax, eax
mov ecx, 0x7f
lea edi, [esp + 0xe5]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0xe4]
push 0x200
push ecx
stosb byte es:[edi], al
call fcn.004ab591
lea edi, [esp + 0xec]
add esp, 8
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x45dd25
mov edx, dword [str._ini.ini]
mov eax, dword [0x4bbc80]
mov cl, byte [0x4bbc84]
mov dword [edi], edx
mov dword [edi + 4], eax
push 0xe1000
mov byte [edi + 8], cl
call fcn.004a99f8
mov ebx, eax
xor eax, eax
mov ecx, 0x12c00
mov edi, ebx
rep stosd dword es:[edi], eax
mov byte [esp + 0x68], 0
add esp, 4
mov ecx, 0x1f
lea edi, [esp + 0x65]
rep stosd dword es:[edi], eax
lea edx, [esp + 0xe4]
push edx
xor esi, esi
push esi
stosw word es:[edi], ax
push str.screen
push str.Screen
mov dword [esp + 0x2c], ebx
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x68]
push 0x4bb3f8
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea edi, [esp + 0x70]
add esp, 0xc
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x45ddb0
mov ecx, dword [0x4bc76c]
mov dl, byte [0x4bc770]
mov dword [edi], ecx
push 0
mov byte [edi + 4], dl
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
test edi, edi
mov dword [esp + 0x14], 0x10
je 0x45de0b
mov ebx, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0xe
push edi
call ebx
push 0xc
push edi
mov dword [esp + 0x18], eax
call ebx
mov ecx, dword [esp + 0x10]
imul ecx, eax
push edi
push 0
mov dword [esp + 0x1c], ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ebx, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x10], 0x1e0
lea eax, [ebx + ecx*2]
add eax, ecx
mov edi, 0x280
nop
cmp dword [esp + 0x14], 0x10
jne 0x45de81
cmp dword [esp + 0x2ec], 0x235
jne 0x45de58
mov dl, byte [esi + ebp + 1]
and dl, 0xf8
mov byte [eax + 2], dl
xor edx, edx
mov dx, word [esi + ebp]
shr edx, 3
and dl, 0xfc
mov byte [eax + 1], dl
mov dl, byte [esi + ebp]
shl dl, 3
add esi, 2
jmp 0x45de9c
xor edx, edx
mov dx, word [esi + ebp]
shr edx, 7
and dl, 0xf8
mov byte [eax + 2], dl
xor edx, edx
mov dx, word [esi + ebp]
shr edx, 2
and dl, 0xf8
mov byte [eax + 1], dl
mov dl, byte [esi + ebp]
shl dl, 3
add esi, 2
jmp 0x45de9c
cmp dword [esp + 0x14], 0x20
jne 0x45dea2
mov dl, byte [esi + ebp + 2]
mov byte [eax + 2], dl
mov dl, byte [esi + ebp + 1]
mov byte [eax + 1], dl
mov dl, byte [esi + ebp]
add esi, 4
mov byte [eax], dl
inc ecx
add eax, 3
dec edi
jne 0x45de20
dec dword [esp + 0x10]
jne 0x45de15
mov ecx, dword [esp + 0x18]
push ebx
push 0x1e0
push 0x280
lea eax, [esp + 0x70]
push eax
call fcn.0045dc10
xor eax, eax
mov byte [esp + 0x24], 0
mov ecx, 0xf
lea edi, [esp + 0x25]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x20]
inc ecx
push ecx
stosw word es:[edi], ax
lea edx, [esp + 0x28]
push 0x4bb3f8
push edx
stosb byte es:[edi], al
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [esp + 0xe4]
push eax
lea ecx, [esp + 0x28]
push ecx
push str.screen
push str.Screen
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2d4
ret 8