Function at 0x40b640
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x20
push ebx
push esi
mov esi, dword [esp + 0x30]
push edi
push 0x4208a0
push esi
call fcn.0041140e
xor ebx, ebx
add esp, 8
cmp eax, ebx
mov dword [esp + 0x34], eax
jne 0x40b9ff
mov esi, dword [esp + 0x30]
push 0x504
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edi, eax
push edi
call fcn.00405740
add esp, 4
mov byte [0x1855cee], 2
push ebx
push ebx
push 0x14e
push edi
call dword [sym.imp.USER32.dll_SendMessageA]
xor eax, eax
mov byte [0x1855cf8], bl
mov al, byte [0x1855cee]
mov byte [0x1855cf9], bl
mov byte [0x1855cfa], bl
mov byte [0x1855cfb], bl
mov byte [0x1855cfc], bl
mov byte [0x1855cfd], bl
mov byte [0x1855d00], bl
mov byte [0x1855d01], bl
mov byte [0x1855d02], bl
mov byte [0x1855d03], bl
mov byte [0x1855d04], bl
mov byte [0x1855d05], bl
mov byte [0x1855d08], bl
mov byte [0x1855d09], bl
mov byte [0x1855d0a], bl
mov byte [0x1855d0b], bl
mov byte [0x1855d0c], bl
mov byte [0x1855d0d], bl
mov byte [0x1855d10], bl
mov byte [0x1855d11], bl
mov byte [0x1855d12], bl
mov byte [0x1855d13], bl
mov byte [0x1855d14], bl
mov byte [0x1855d15], bl
mov byte [0x1855d48], bl
mov byte [0x1855d49], bl
mov byte [0x1855d4a], bl
mov byte [0x1855d4b], bl
mov byte [0x1855d4c], bl
mov byte [0x1855d4d], bl
mov byte [0x1855d50], bl
mov byte [0x1855d51], bl
mov byte [0x1855d52], bl
mov byte [0x1855d53], bl
mov byte [0x1855d54], bl
mov byte [0x1855d55], bl
mov byte [0x1855d58], bl
mov byte [0x1855d59], bl
mov byte [0x1855d5a], bl
mov byte [0x1855d5b], bl
mov byte [0x1855d5c], bl
mov byte [0x1855d5d], bl
mov byte [0x1855d60], bl
mov byte [0x1855d61], bl
mov byte [0x1855d62], bl
mov byte [0x1855d63], bl
mov byte [0x1855d64], bl
mov byte [0x1855d65], bl
movsx ecx, byte [eax*8 + 0x1855cf8]
push ecx
lea edx, [esp + 0x10]
push 0x4205d0
push edx
call fcn.00411421
mov edi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push 0x4ba
push esi
call edi
xor ecx, ecx
mov cl, byte [0x1855cee]
movsx edx, byte [ecx*8 + 0x1855cf9]
push edx
lea eax, [esp + 0x10]
push 0x4205d0
push eax
call fcn.00411421
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
push 0x4b3
push esi
call edi
xor edx, edx
lea ecx, [esp + 0xc]
mov dl, byte [0x1855cee]
movsx eax, byte [edx*8 + 0x1855cfa]
push eax
push 0x4205d0
push ecx
call fcn.00411421
add esp, 0xc
lea edx, [esp + 0xc]
push edx
push 0x4b4
push esi
call edi
xor eax, eax
lea edx, [esp + 0xc]
mov al, byte [0x1855cee]
movsx ecx, byte [eax*8 + 0x1855cfb]
push ecx
push 0x4205d0
push edx
call fcn.00411421
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push 0x4b5
push esi
call edi
xor ecx, ecx
lea eax, [esp + 0xc]
mov cl, byte [0x1855cee]
movsx edx, byte [ecx*8 + 0x1855cfc]
push edx
push 0x4205d0
push eax
call fcn.00411421
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
push 0x4b6
push esi
call edi
xor edx, edx
lea ecx, [esp + 0xc]
mov dl, byte [0x1855cee]
movsx eax, byte [edx*8 + 0x1855cfd]
push eax
push 0x4205d0
push ecx
call fcn.00411421
add esp, 0xc
lea edx, [esp + 0xc]
push edx
push 0x4b7
push esi
call edi
xor eax, eax
lea edx, [esp + 0xc]
mov al, byte [0x1855cee]
movsx ecx, byte [eax*8 + 0x1855d48]
push ecx
push 0x4205d0
push edx
call fcn.00411421
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push 0x4c7
push esi
call edi
xor ecx, ecx
mov cl, byte [0x1855cee]
lea eax, [esp + 0xc]
movsx edx, byte [ecx*8 + 0x1855d49]
push edx
push 0x4205d0
push eax
call fcn.00411421
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
push 0x4c8
push esi
call edi
xor edx, edx
lea ecx, [esp + 0xc]
mov dl, byte [0x1855cee]
movsx eax, byte [edx*8 + 0x1855d4a]
push eax
push 0x4205d0
push ecx
call fcn.00411421
add esp, 0xc
lea edx, [esp + 0xc]
push edx
push 0x4c9
push esi
call edi
xor eax, eax
lea edx, [esp + 0xc]
mov al, byte [0x1855cee]
movsx ecx, byte [eax*8 + 0x1855d4b]
push ecx
push 0x4205d0
push edx
call fcn.00411421
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push 0x4ca
push esi
call edi
xor ecx, ecx
lea eax, [esp + 0xc]
mov cl, byte [0x1855cee]
movsx edx, byte [ecx*8 + 0x1855d4c]
push edx
push 0x4205d0
push eax
call fcn.00411421
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
push 0x4cb
push esi
call edi
xor edx, edx
lea ecx, [esp + 0xc]
mov dl, byte [0x1855cee]
movsx eax, byte [edx*8 + 0x1855d4d]
push eax
push 0x4205d0
push ecx
call fcn.00411421
add esp, 0xc
lea edx, [esp + 0xc]
push edx
push 0x4cc
push esi
call edi
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push esi
push ebx
push str.Mode
push str.PrinterAdjust
call edi
cmp al, 2
mov byte [0x1855cee], al
jae 0x40ba23
add al, 2
mov byte [0x1855cee], al
push ebp
mov ebp, dword [esp + 0x34]
push 0x504
push ebp
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
mov dword [esp + 0x38], eax
call fcn.00405740
mov ecx, dword [esp + 0x38]
xor eax, eax
mov al, byte [0x1855cee]
add esp, 4
sub eax, 2
push ebx
push eax
push 0x14e
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push esi
push ebx
push str.LR00_1
push str.PrinterAdjust
call edi
push esi
push ebx
push str.LR01_1
push str.PrinterAdjust
mov byte [0x1855cf8], al
call edi
push esi
push ebx
push str.LR02_1
push str.PrinterAdjust
mov byte [0x1855cf9], al
call edi
push esi
push ebx
push str.LR03_1
push str.PrinterAdjust
mov byte [0x1855cfa], al
call edi
push esi
push ebx
push str.LR04_1
push str.PrinterAdjust
mov byte [0x1855cfb], al
call edi
push esi
push ebx
push str.LR05_1
push str.PrinterAdjust
mov byte [0x1855cfc], al
call edi
push esi
push ebx
push str.LR10_1
push str.PrinterAdjust
mov byte [0x1855cfd], al
call edi
push esi
push ebx
push str.LR11_1
push str.PrinterAdjust
mov byte [0x1855d00], al
call edi
push esi
push ebx
push str.LR12_1
push str.PrinterAdjust
mov byte [0x1855d01], al
call edi
push esi
push ebx
push str.LR13_1
push str.PrinterAdjust
mov byte [0x1855d02], al
call edi
push esi
push ebx
mov byte [0x1855d03], al
push str.LR14_1
push str.PrinterAdjust
call edi
push esi
push ebx
push str.LR15_1
push str.PrinterAdjust
mov byte [0x1855d04], al
call edi
push esi
push ebx
push str.LR20_1
push str.PrinterAdjust
mov byte [0x1855d05], al
call edi
push esi
push ebx
push str.LR30_1
push str.PrinterAdjust
mov byte [0x1855d08], al
call edi
push esi
push ebx
push str.LR31_1
push str.PrinterAdjust
mov byte [0x1855d10], al
call edi
push esi
push ebx
push str.LR32_1
push str.PrinterAdjust
mov byte [0x1855d11], al
call edi
push esi
push ebx
push str.LR33_1
push str.PrinterAdjust
mov byte [0x1855d12], al
call edi
push esi
push ebx
push str.LR34_1
push str.PrinterAdjust
mov byte [0x1855d13], al
call edi
push esi
push ebx
push str.LR35_1
push str.PrinterAdjust
mov byte [0x1855d14], al
call edi
push esi
push ebx
push str.RL00_1
push str.PrinterAdjust
mov byte [0x1855d15], al
call edi
push esi
push ebx
push str.RL01_1
push str.PrinterAdjust
mov byte [0x1855d48], al
call edi
push esi
push ebx
push str.RL02_1
push str.PrinterAdjust
mov byte [0x1855d49], al
call edi
push esi
push ebx
push str.RL03_1
push str.PrinterAdjust
mov byte [0x1855d4a], al
call edi
push esi
push ebx
push str.RL04_1
push str.PrinterAdjust
mov byte [0x1855d4b], al
call edi
mov byte [0x1855d4c], al
push esi
push ebx
push str.RL05_1
push str.PrinterAdjust
call edi
push esi
push ebx
push str.RL10_1
push str.PrinterAdjust
mov byte [0x1855d4d], al
call edi
push esi
push ebx
push str.RL11_1
push str.PrinterAdjust
mov byte [0x1855d50], al
call edi
push esi
push ebx
push str.RL12_1
push str.PrinterAdjust
mov byte [0x1855d51], al
call edi
push esi
push ebx
push str.RL13_1
push str.PrinterAdjust
mov byte [0x1855d52], al
call edi
push esi
push ebx
push str.RL14_1
push str.PrinterAdjust
mov byte [0x1855d53], al
call edi
push esi
push ebx
push str.RL15_1
push str.PrinterAdjust
mov byte [0x1855d54], al
call edi
push esi
push ebx
push str.RL20_1
push str.PrinterAdjust
mov byte [0x1855d55], al
call edi
push esi
push ebx
push str.RL30_1
push str.PrinterAdjust
mov byte [0x1855d58], al
call edi
push esi
push ebx
push str.RL31_1
push str.PrinterAdjust
mov byte [0x1855d60], al
call edi
push esi
push ebx
push str.RL32_1
push str.PrinterAdjust
mov byte [0x1855d61], al
call edi
push esi
push ebx
push str.RL33_1
push str.PrinterAdjust
mov byte [0x1855d62], al
call edi
push esi
push ebx
push str.RL34_1
push str.PrinterAdjust
mov byte [0x1855d63], al
call edi
push esi
push ebx
mov byte [0x1855d64], al
push str.RL35_1
push str.PrinterAdjust
call edi
xor edx, edx
mov byte [0x1855d65], al
mov dl, byte [0x1855cee]
lea ecx, [esp + 0x10]
movsx eax, byte [edx*8 + 0x1855cf8]
push eax
push 0x4205d0
push ecx
call fcn.00411421
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
add esp, 0xc
lea edx, [esp + 0x10]
push edx
push 0x4ba
push ebp
call esi
xor eax, eax
lea edx, [esp + 0x10]
mov al, byte [0x1855cee]
movsx ecx, byte [eax*8 + 0x1855cf9]
push ecx
push 0x4205d0
push edx
call fcn.00411421
add esp, 0xc
lea eax, [esp + 0x10]
push eax
push 0x4b3
push ebp
call esi
xor ecx, ecx
lea eax, [esp + 0x10]
mov cl, byte [0x1855cee]
movsx edx, byte [ecx*8 + 0x1855cfa]
push edx
push 0x4205d0
push eax
call fcn.00411421
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
push 0x4b4
push ebp
call esi
xor edx, edx
lea ecx, [esp + 0x10]
mov dl, byte [0x1855cee]
movsx eax, byte [edx*8 + 0x1855cfb]
push eax
push 0x4205d0
push ecx
call fcn.00411421
add esp, 0xc
lea edx, [esp + 0x10]
push edx
push 0x4b5
push ebp
call esi
xor eax, eax
lea edx, [esp + 0x10]
mov al, byte [0x1855cee]
movsx ecx, byte [eax*8 + 0x1855cfc]
push ecx
push 0x4205d0
push edx
call fcn.00411421
add esp, 0xc
lea eax, [esp + 0x10]
push eax
push 0x4b6
push ebp
call esi
xor ecx, ecx
lea eax, [esp + 0x10]
mov cl, byte [0x1855cee]
movsx edx, byte [ecx*8 + 0x1855cfd]
push edx
push 0x4205d0
push eax
call fcn.00411421
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
push 0x4b7
push ebp
call esi
xor edx, edx
lea ecx, [esp + 0x10]
mov dl, byte [0x1855cee]
movsx eax, byte [edx*8 + 0x1855d48]
push eax
push 0x4205d0
push ecx
call fcn.00411421
add esp, 0xc
lea edx, [esp + 0x10]
push edx
push 0x4c7
push ebp
call esi
xor eax, eax
lea edx, [esp + 0x10]
mov al, byte [0x1855cee]
movsx ecx, byte [eax*8 + 0x1855d49]
push ecx
push 0x4205d0
push edx
call fcn.00411421
add esp, 0xc
lea eax, [esp + 0x10]
push eax
push 0x4c8
push ebp
call esi
xor ecx, ecx
lea eax, [esp + 0x10]
mov cl, byte [0x1855cee]
movsx edx, byte [ecx*8 + 0x1855d4a]
push edx
push 0x4205d0
push eax
call fcn.00411421
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
push 0x4c9
push ebp
call esi
xor edx, edx
lea ecx, [esp + 0x10]
mov dl, byte [0x1855cee]
movsx eax, byte [edx*8 + 0x1855d4b]
push eax
push 0x4205d0
push ecx
call fcn.00411421
add esp, 0xc
lea edx, [esp + 0x10]
push edx
push 0x4ca
push ebp
call esi
xor eax, eax
lea edx, [esp + 0x10]
mov al, byte [0x1855cee]
movsx ecx, byte [eax*8 + 0x1855d4c]
push ecx
push 0x4205d0
push edx
call fcn.00411421
add esp, 0xc
lea eax, [esp + 0x10]
push eax
push 0x4cb
push ebp
call esi
xor ecx, ecx
mov cl, byte [0x1855cee]
movsx edx, byte [ecx*8 + 0x1855d4d]
push edx
lea eax, [esp + 0x14]
push 0x4205d0
push eax
call fcn.00411421
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
push 0x4cc
push ebp
call esi
mov edx, dword [esp + 0x38]
push edx
call fcn.00411360
add esp, 4
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret