Function at 0x408ba0
Capabilities:
Read .ini file

Disassembly:
push ebp
push esi
mov esi, dword [esp + 0xc]
push edi
xor edi, edi
cmp dword [0x42bc98], edi
mov ebp, 0x19
jne 0x408c1c
cmp word [0x43837c], di
je 0x408c1c
add word [0x43837c], 0xffff
jne 0x408c1c
movzx eax, word [0x433f50]
cmp eax, 0xd
ja case.0x408be1.1
movzx eax, byte [eax + 0x409574]
jmp dword [eax*4 + 0x40955c]
push esi
call fcn.00404cf0
test eax, eax
jle 0x408ce6
push str.ATBRSP
push esi
call fcn.00402100
push 0x42a33c
push esi
call fcn.00402100
mov word [0x433f50], 0xb
mov word [0x43837c], bp
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea esp, [esp]
push esi
call fcn.004020e0
test eax, eax
jle case.0x408cdf.9
push esi
call fcn.00402140
test byte [0x42a170], 2
je 0x408c80
push str.RING
call edi
mov cl, byte [0x42bc6f]
movzx edx, cl
cmp edx, eax
jne 0x408c86
push str.RING
call edi
push eax
push str.RING
push 0x42bc14
call fcn.00402390
test eax, eax
jne 0x409523
mov cl, byte [0x42bc6f]
test byte [0x42a170], 1
je 0x408cc8
push str.RING_A
call edi
mov cl, byte [0x42bc6f]
movzx edx, cl
cmp edx, eax
jne 0x408cc8
push str.RING_A
call edi
push eax
push str.RING_A
push 0x42bc14
call fcn.00402390
test eax, eax
jne 0x409523
mov cl, byte [0x42bc6f]
movzx eax, word [0x433f50]
cmp eax, 0x1e
ja case.0x408cdf.9
movzx eax, byte [eax + 0x4095c8]
jmp dword [eax*4 + 0x409584]
push esi
call fcn.004089a0
pop edi
pop esi
xor eax, eax
pop ebp
ret 4
push str.ATBRSP
push esi
call fcn.00402100
push 0x449b20
push esi
mov byte [0x449b20], 0x35
mov byte [0x449b21], 0
call fcn.00402100
push 0x42a374
push esi
call fcn.00402100
mov word [0x433f50], 0xa
jmp 0x408c15
push str.ATBRSP
push esi
call fcn.00402100
push 0x449b20
push esi
mov byte [0x449b20], 0x34
mov byte [0x449b21], 0
call fcn.00402100
push 0x42a374
push esi
call fcn.00402100
mov word [0x433f50], 3
jmp 0x408c15
cmp word [0x437a8c], di
jne 0x408d9a
cmp word [0x43759c], 4
mov word [0x43837c], di
jne 0x408d8f
mov word [0x43759c], di
pop edi
pop esi
mov eax, 2
pop ebp
ret 4
push esi
call fcn.00404c20
test eax, eax
jle 0x408ce6
push str.ATFMFR__r
push esi
mov word [0x433f50], di
call fcn.00402100
jmp 0x408c15
push esi
call fcn.00408960
cmp eax, 1
je 0x408c1c
cmp word [0x437598], di
jne 0x408de5
push esi
call fcn.00408a30
pop edi
pop esi
xor eax, eax
pop ebp
ret 4
cmp word [0x437a8c], di
je 0x408d8f
push esi
call fcn.00408b50
sub eax, 1
neg eax
pop edi
sbb eax, eax
pop esi
add eax, 1
pop ebp
ret 4
cmp word [0x437598], di
mov word [0x433f50], di
jne 0x408e24
mov ecx, esi
push ecx
call fcn.00408a30
pop edi
pop esi
xor eax, eax
pop ebp
ret 4
cmp word [0x437a8c], di
je 0x408d8f
mov edx, esi
push edx
call fcn.00408b50
sub eax, 1
neg eax
pop edi
sbb eax, eax
pop esi
add eax, 1
pop ebp
ret 4
push str.BROTHER
call edi
movzx ecx, byte [0x42bc6f]
cmp ecx, eax
jne 0x409086
push str.BROTHER
call edi
push eax
push str.BROTHER
push 0x42bc14
call fcn.00402390
test eax, eax
je 0x409086
push str.BrmfXCh1.ini
push 0x423618
push str.DeviceSettingForget
push 0x423e58
call ebx
cmp dword [0x449b30], 0
jne 0x408ea7
mov dword [0x449d58], 1
mov word [0x43837c], bp
mov word [0x433f50], 1
jmp case.0x408cdf.9
push 0x42a458
call edi
movzx edx, byte [0x42bc6f]
cmp edx, eax
jne 0x409086
push 0x42a458
call edi
push eax
push 0x42a458
push 0x42bc14
call fcn.00402390
test eax, eax
je 0x409086
push str.ATFBOR1_r
push esi
call fcn.00402100
mov word [0x43837c], bp
mov word [0x433f50], 0x1e
jmp case.0x408cdf.9
push 0x42a458
call edi
movzx ecx, byte [0x42bc6f]
cmp ecx, eax
jl case.0x408cdf.9
push 0x42a458
call edi
push eax
push 0x42a458
push 0x42bc14
call fcn.00402390
test eax, eax
je case.0x408cdf.9
push str.ATFMDL__r
push esi
call fcn.00402100
mov word [0x43837c], bp
mov word [0x433f50], 4
jmp case.0x408cdf.9
cmp cl, 0xb
jne 0x409055
push str.BRSP:
call edi
push eax
push str.BRSP:
push 0x42bc14
call fcn.00402390
test eax, eax
je 0x409055
mov eax, dword [0x42bc1c]
cmp ah, 0x35
mov dl, byte [0x42bc1b]
mov byte [0x433cc7], dl
mov byte [0x42bc92], ah
jb 0x409011
push str.Brfaxrx.ini
push 1
push str.RsSpeed
push 0x42a30c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp eax, 0x2580
je 0x409011
cmp eax, 1
je 0x409011
push str.ATBRSP
push esi
call fcn.00402100
push 0x449b20
push esi
mov byte [0x449b20], 0x35
mov byte [0x449b21], 0
call fcn.00402100
push 0x42a374
push esi
call fcn.00402100
mov word [0x433f50], 8
mov word [0x43837c], bp
jmp case.0x408cdf.9
push str.ATBRSP
push esi
call fcn.00402100
push 0x449b20
push esi
mov byte [0x449b20], 0x34
mov byte [0x449b21], 0
call fcn.00402100
push 0x42a374
push esi
call fcn.00402100
mov word [0x433f50], 3
mov word [0x43837c], bp
jmp case.0x408cdf.9
push str.ERROR
call edi
movzx ecx, byte [0x42bc6f]
cmp ecx, eax
jne 0x409086
push str.ERROR
call edi
push eax
push str.ERROR
push 0x42bc14
call fcn.00402390
test eax, eax
jne 0x408f46
cmp word [0x437598], 0
jne 0x40952f
push esi
call fcn.00408a30
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
ret 4
push 0x42a458
call edi
movzx edx, byte [0x42bc6f]
cmp edx, eax
jne 0x409086
push 0x42a458
call edi
push eax
push 0x42a458
jmp 0x409074
cmp cl, 7
jb 0x409086
mov eax, dword [0x42bc14]
mov cx, word [0x42bc18]
mov dl, byte [0x42bc1a]
mov dword [0x4375b4], eax
cmp byte [0x4375b6], 0x31
mov word [0x4375b8], cx
mov byte [0x4375ba], dl
mov byte [0x4375bb], 0
je 0x409106
mov word [0x433cc4], 1
call fcn.00408860
push str.Brfaxrx.ini
push 0x4375b4
push str.ModelCode
push 0x42a390
call ebx
mov word [0x43837c], bp
mov word [0x433f50], 5
jmp case.0x408cdf.9
push 0x42a458
call edi
movzx ecx, byte [0x42bc6f]
cmp ecx, eax
jne 0x409086
push 0x42a458
call edi
push eax
push 0x42a458
push 0x42bc14
call fcn.00402390
test eax, eax
je 0x409086
push str.ATFREV__r
push esi
call fcn.00402100
mov word [0x43837c], bp
mov word [0x433f50], 6
jmp case.0x408cdf.9
cmp cl, 0xe
jb 0x409086
mov edx, dword [0x42bc14]
mov eax, dword [0x42bc18]
mov ecx, dword [0x42bc1c]
mov dword [0x433f08], edx
mov dx, word [0x42bc20]
mov dword [0x4375c8], eax
mov dword [0x4375cc], ecx
mov word [0x4375d0], dx
mov word [0x43837c], bp
mov word [0x433f50], 7
jmp case.0x408cdf.9
push 0x42a458
call edi
movzx ecx, byte [0x42bc6f]
cmp ecx, eax
jne 0x409086
push 0x42a458
call edi
push eax
push 0x42a458
push 0x42bc14
call fcn.00402390
test eax, eax
je 0x409086
push str.ATFCR__r
push esi
call fcn.00402100
mov word [0x43837c], bp
mov word [0x433f50], 0x12
jmp case.0x408cdf.9
cmp byte [0x42bc14], 0x30
push str.Brfaxrx.ini
jne 0x409267
push 0x42a3ec
push str.RXCapability
push 0x42a390
call ebx
call fcn.004088c0
mov word [0x43837c], bp
mov word [0x433f50], 0x13
jmp case.0x408cdf.9
cmp cl, 1
push 0x42a4f4
push str.RXCapability
push 0x42a390
je 0x40924b
call ebx
call fcn.004088c0
push esi
call fcn.00408ac0
mov word [0x43837c], 0
jmp case.0x408cdf.9
push 0x42a458
call edi
movzx edx, byte [0x42bc6f]
cmp edx, eax
jne 0x409086
push 0x42a458
call edi
push eax
push 0x42a458
push 0x42bc14
call fcn.00402390
test eax, eax
je 0x409086
push esi
call fcn.00408ac0
mov word [0x43837c], 0
jmp case.0x408cdf.9
push 0x42a458
call edi
movzx ecx, byte [0x42bc6f]
cmp ecx, eax
jmp 0x4092a6
push 0x42a458
call edi
movzx edx, byte [0x42bc6f]
cmp edx, eax
jne 0x409086
push 0x42a458
call edi
push eax
push 0x42a458
push 0x42bc14
call fcn.00402390
test eax, eax
je 0x409086
push esi
mov word [0x43837c], 0xa
call fcn.00404cf0
test eax, eax
jle 0x409086
mov word [0x433f50], 9
jmp case.0x408cdf.9
push 0x42a458
call edi
movzx ecx, byte [0x42bc6f]
cmp ecx, eax
jne 0x40937c
push 0x42a458
call edi
push eax
push 0x42a458
push 0x42bc14
call fcn.00402390
test eax, eax
jne 0x408f46
push str.ERROR
call edi
movzx edx, byte [0x42bc6f]
cmp edx, eax
jmp 0x4094e1
cmp cl, 0xb
jne 0x4094d1
push str.BRSP:
call edi
push eax
push str.BRSP:
push 0x42bc14
call fcn.00402390
test eax, eax
je 0x4094d1
mov al, byte [0x42bc1b]
mov byte [0x433cc7], al
mov eax, dword [0x42bc1c]
cmp ah, 0x35
mov byte [0x42bc92], ah
jb 0x409086
push str.Brfaxrx.ini
push 1
push str.RsSpeed
push 0x42a30c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp eax, 0x4b00
je 0x40943e
cmp eax, 1
je 0x40943e
push str.ATBRSP
push esi
call fcn.00402100
push 0x449b20
push esi
mov byte [0x449b20], 0x34
mov byte [0x449b21], 0
call fcn.00402100
push 0x42a374
push esi
call fcn.00402100
mov word [0x433f50], 0xc
mov word [0x43837c], bp
jmp case.0x408cdf.9
push str.ATBRSP
push esi
call fcn.00402100
push 0x449b20
push esi
mov byte [0x449b20], 0x35
mov byte [0x449b21], 0
call fcn.00402100
push 0x42a374
push esi
call fcn.00402100
mov word [0x433f50], 0xa
mov word [0x43837c], bp
jmp case.0x408cdf.9
push 0x42a458
call edi
movzx edx, byte [0x42bc6f]
cmp edx, eax
jne 0x4094d1
push 0x42a458
call edi
push eax
push 0x42a458
push 0x42bc14
call fcn.00402390
test eax, eax
je 0x4094d1
push esi
mov word [0x43837c], 0xa
call fcn.00404cb0
test eax, eax
jle 0x409086
mov word [0x433f50], 0xd
jmp case.0x408cdf.9
push str.ERROR
call edi
movzx ecx, byte [0x42bc6f]
cmp ecx, eax
jne 0x409086
push str.ERROR
call edi
push eax
push str.ERROR
push 0x42bc14
call fcn.00402390
test eax, eax
je 0x409086
push esi
call fcn.00408960
cmp eax, 1
jne 0x409086
push esi
call fcn.004020e0
test eax, eax
jg 0x408c30
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
ret 4
cmp word [0x437a8c], 0
jne 0x409545
pop ebx
pop edi
pop esi
mov eax, 2
pop ebp
ret 4
push esi
call fcn.00408b50
sub eax, 1
pop ebx
neg eax
pop edi
sbb eax, eax
pop esi
add eax, 1
pop ebp
ret 4