Function at 0x10001650
Capabilities:
Link many functions at runtime
Read .ini file

Disassembly:
sub esp, 0x540
mov eax, dword [0x10019270]
xor eax, esp
mov dword [esp + 0x53c], eax
push ebx
push ebp
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push edi
push 0x1001a680
push 0x104
lea eax, [esp + 0x450]
push eax
push str.brif03a.dll
push str.BaseDllName9x
xor ebx, ebx
push str.Wraper
mov ebp, 1
mov dword [0x1001a994], ebx
mov dword [esp + 0x28], ebx
call esi
push 0x1001a680
push 0x104
lea ecx, [esp + 0x40]
push ecx
push str.brlm03a.dll
push str.BaseDllName2k
push str.Wraper
call esi
push 0x1001a680
push 0x104
lea edx, [esp + 0x34c]
push edx
push str.brlm03a.dll
push str.BaseDllNameAMD64
push str.Wraper
call esi
push 0x1001a680
push 0x104
lea eax, [esp + 0x144]
push eax
push str.BrmfBiPP.dll
push str.OptionDllName32
push str.Wraper
call esi
push 0x1001a680
push 0x104
lea ecx, [esp + 0x248]
push ecx
push str.BrmfBiPW.dll
push str.OptionDllName64
push str.Wraper
call esi
push 0x1001a680
push 0x104
push 0x1001aaa0
push str.BRMFC:
push str.OptionPortName
push str.Wraper
call esi
lea edx, [esp + 0x448]
push edx
push str.szBaseDllName9x_______s_
push 3
call fcn.100026c0
lea eax, [esp + 0x44]
push eax
push str.szBaseDllName2k_______s_
push 3
call fcn.100026c0
lea ecx, [esp + 0x35c]
push ecx
push str.szBaseDllNameAMD64____s_
push 3
call fcn.100026c0
lea edx, [esp + 0x160]
push edx
push str.szOptionDllName32_____s_
push 3
call fcn.100026c0
lea eax, [esp + 0x270]
push eax
push str.szOptionDllName64_____s_
push 3
call fcn.100026c0
push 0x1001aaa0
push str.g_szOptionPortName____s_
push 3
call fcn.100026c0
add esp, 0x48
push ebx
call section..text
lea ecx, [esp + 0x18]
push ecx
mov edi, eax
call fcn.10001540
movzx esi, word [esp + 0x1c]
push esi
push str.TRUE_wArchitecture___d
push 3
call fcn.100026c0
add esp, 0x14
push 0x1001a680
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push str.ArchitectureCamouflage
push str.Debug
call esi
movzx eax, ax
movzx edx, ax
push edx
push str.USE__wArchitecture___d
push 3
call fcn.100026c0
add esp, 0xc
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call fcn.100015d0
add esp, 8
test eax, eax
jne 0x10001831
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x10]
push ecx
push str.TRUE_bWow64Process___d
push 3
call fcn.100026c0
mov edx, dword [esp + 0x1c]
add esp, 0xc
push 0x1001a680
push edx
push str.Wow64ProcessCamouflage
push str.Debug
call esi
push eax
push str.USE__bWow64Process___d
push 3
mov dword [esp + 0x1c], eax
call fcn.100026c0
lea eax, [esp + 0x148]
push eax
push 0x104
push 0x1001a998
call fcn.10005f00
add esp, 0x18
test edi, 0x11100000
je 0x10001962
push str.____Windows_2000_XP_or_NT_series_NewOS____
push 3
call fcn.100026c0
lea ecx, [esp + 0x40]
push ecx
push 0x104
push 0x1001a890
call fcn.10005f00
mov eax, dword [esp + 0x24]
add esp, 0x14
cmp eax, ebx
je 0x100018fd
push eax
push str.bWow64Process___d___TRUE
push 3
call fcn.100026c0
lea edx, [esp + 0x350]
push edx
push 0x104
push 0x1001a890
call fcn.10005f00
lea eax, [esp + 0x258]
push eax
push 0x104
push 0x1001a998
call fcn.10005f00
add esp, 0x24
jmp 0x1000190d
push ebx
push str.bWow64Process___d___FALSE
push 3
call fcn.100026c0
add esp, 0xc
push str.Global_brother___brlmw03a___StatMonStartPermitMutex__
push 0x104
push 0x1001baa0
call fcn.10005f00
push str.Global_brother___brlmw03a___StatMonStayingMutex__
push 0x104
push 0x1001bce0
call fcn.10005f00
push str.Global_brother___brlmw03a___StatMonTermReqMutex__
push 0x104
push 0x1001bbc0
call fcn.10005f00
push str.Global_brother___brlmw03a___StatMonSusReqMutex__
push 0x104
push 0x1001be00
call fcn.10005f00
add esp, 0x30
jmp 0x100019e1
test edi, 0x10000
je 0x10001a7c
push str.____Windows_NT____
push 3
call fcn.100026c0
lea ecx, [esp + 0x40]
push ecx
push 0x104
push 0x1001a890
call fcn.10005f00
push str.brother___brlmw03a___StatMonStartPermitMutex__
push 0x104
push 0x1001baa0
call fcn.10005f00
push str.brother___brlmw03a___StatMonStayingMutex__
push 0x104
push 0x1001bce0
call fcn.10005f00
push str.brother___brlmw03a___StatMonTermReqMutex__
push 0x104
push 0x1001bbc0
call fcn.10005f00
push str.brother___brlmw03a___StatMonSusReqMutex__
push 0x104
push 0x1001be00
call fcn.10005f00
add esp, 0x44
push 0x1001baa0
push str.M2_NameBase____s_
push 3
call fcn.100026c0
push 0x1001bce0
push str.M3_NameBase____s_
push 3
call fcn.100026c0
push 0x1001bbc0
push str.M4_NameBase____s_
push 3
call fcn.100026c0
push 0x1001be00
push str.M5_NameBase____s_
push 3
call fcn.100026c0
add esp, 0x30
cmp byte [0x1001a890], bl
push 0x1001a890
je 0x10001ab3
push str.call_LoadLibrary____s___
push 3
call fcn.100026c0
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
add esp, 0xc
push 0x1001a890
call edi
push eax
push str.g_hBaseDll__0x_08X
push 3
mov dword [0x1001a344], eax
call fcn.100026c0
mov eax, dword [0x1001a344]
add esp, 0xc
cmp eax, ebx
jne 0x10001ad5
xor ebp, ebp
mov dword [0x1001a564], ebx
jmp 0x10001dc6
test edi, 0x1111
je 0x10001a9d
push str.____Windows_95_98_ME_or_9x_series_NewOS____
push 3
call fcn.100026c0
lea edx, [esp + 0x450]
push edx
jmp 0x1000197f
push str.____OldOS____
push 3
call fcn.100026c0
add esp, 8
xor eax, eax
jmp 0x10001dc8
push str.g_szBaseDllName____s____LoadLibrary___cant_call__
push 3
call fcn.100026c0
add esp, 0xc
mov dword [0x1001a344], ebx
xor ebp, ebp
mov dword [0x1001a564], ebx
jmp 0x10001dc6
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.brOpenLMPrinter
push eax
call esi
mov dword [0x1001a44c], eax
mov eax, dword [0x1001a344]
push str.brCloseLMPrinter
push eax
call esi
mov ecx, dword [0x1001a344]
push str.brGetLMPort
push ecx
mov dword [0x1001a450], eax
call esi
mov edx, dword [0x1001a344]
push str.brReleaseLMPort
push edx
mov dword [0x1001a454], eax
call esi
mov dword [0x1001a458], eax
mov eax, dword [0x1001a344]
push str.brReadLMPortData
push eax
call esi
mov ecx, dword [0x1001a44c]
push ecx
push str.g_fpBaseDll.brOpenLMPrinter___0x_08X
push 3
mov dword [0x1001a45c], eax
call fcn.100026c0
mov edx, dword [0x1001a450]
push edx
push str.g_fpBaseDll.brCloseLMPrinter__0x_08X
push 3
call fcn.100026c0
mov eax, dword [0x1001a454]
push eax
push str.g_fpBaseDll.brGetLMPort_______0x_08X
push 3
call fcn.100026c0
mov ecx, dword [0x1001a458]
push ecx
push str.g_fpBaseDll.brReleaseLMPort___0x_08X
push 3
call fcn.100026c0
mov edx, dword [0x1001a45c]
push edx
push str.g_fpBaseDll.brReadLMPortData__0x_08X
push 3
call fcn.100026c0
add esp, 0x3c
cmp dword [0x1001a44c], ebx
jne 0x10001b9d
xor ebp, ebp
cmp dword [0x1001a450], ebx
jne 0x10001ba7
xor ebp, ebp
cmp dword [0x1001a454], ebx
jne 0x10001bb1
xor ebp, ebp
cmp dword [0x1001a458], ebx
jne 0x10001bbb
xor ebp, ebp
cmp dword [0x1001a45c], ebx
jne 0x10001bc7
xor ebp, ebp
jmp 0x10001bcb
cmp ebp, ebx
jne 0x10001c1c
mov eax, dword [0x1001a344]
push eax
push str.call_FreeLibrary__0x_08X__
push 3
call fcn.100026c0
mov ecx, dword [0x1001a344]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x1001a344], ebx
mov dword [0x1001a44c], ebx
mov dword [0x1001a450], ebx
mov dword [0x1001a454], ebx
mov dword [0x1001a458], ebx
mov dword [0x1001a45c], ebx
mov dword [0x1001a564], ebx
jmp 0x10001dc6
cmp byte [0x1001a998], bl
push 0x1001a998
je 0x10001de1
push str.call_LoadLibrary____s___
push 3
call fcn.100026c0
add esp, 0xc
push 0x1001a998
call edi
push eax
push str.g_hOptionDll__0x_08X
push 3
mov dword [0x1001a564], eax
call fcn.100026c0
mov eax, dword [0x1001a564]
add esp, 0xc
cmp eax, ebx
je 0x10001d9c
push str.brOpenLMPrinter
push eax
mov edi, 1
call esi
mov edx, dword [0x1001a564]
push str.brCloseLMPrinter
push edx
mov dword [0x1001a66c], eax
call esi
mov dword [0x1001a670], eax
mov eax, dword [0x1001a564]
push str.brGetLMPort
push eax
call esi
mov ecx, dword [0x1001a564]
push str.brReleaseLMPort
push ecx
mov dword [0x1001a674], eax
call esi
mov edx, dword [0x1001a564]
push str.brReadLMPortData
push edx
mov dword [0x1001a678], eax
call esi
mov dword [0x1001a67c], eax
mov eax, dword [0x1001a66c]
push eax
push str.g_fpOptionDll.brOpenLMPrinter___0x_08X
push 3
call fcn.100026c0
mov ecx, dword [0x1001a670]
push ecx
push str.g_fpOptionDll.brCloseLMPrinter__0x_08X
push 3
call fcn.100026c0
mov edx, dword [0x1001a674]
push edx
push str.g_fpOptionDll.brGetLMPort_______0x_08X
push 3
call fcn.100026c0
mov eax, dword [0x1001a678]
push eax
push str.g_fpOptionDll.brReleaseLMPort___0x_08X
push 3
call fcn.100026c0
mov ecx, dword [0x1001a67c]
push ecx
push str.g_fpOptionDll.brReadLMPortData__0x_08X
push 3
call fcn.100026c0
add esp, 0x3c
cmp dword [0x1001a66c], ebx
jne 0x10001d2c
xor edi, edi
cmp dword [0x1001a670], ebx
jne 0x10001d36
xor edi, edi
cmp dword [0x1001a674], ebx
jne 0x10001d40
xor edi, edi
cmp dword [0x1001a678], ebx
jne 0x10001d4a
xor edi, edi
cmp dword [0x1001a67c], ebx
je 0x10001d56
cmp edi, ebx
jne 0x10001d9c
mov edx, dword [0x1001a564]
push edx
push str.call_FreeLibrary__0x_08X__
push 3
call fcn.100026c0
mov eax, dword [0x1001a564]
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x1001a66c], ebx
mov dword [0x1001a670], ebx
mov dword [0x1001a674], ebx
mov dword [0x1001a678], ebx
mov dword [0x1001a67c], ebx
mov dword [0x1001a564], ebx
push ebx
push ebx
xor eax, eax
mov ecx, 0x100
mov edi, 0x1001aba8
push ebx
rep stosd dword es:[edi], eax
mov dword [0x1001a784], ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp eax, ebx
mov dword [0x1001a88c], eax
je 0x10001aac
mov eax, ebp
mov ecx, dword [esp + 0x54c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10005f65
add esp, 0x540
ret
push str.g_szOptionDllName____s____LoadLibrary___cant_call__
push 3
call fcn.100026c0
add esp, 0xc
jmp 0x10001d96