Function at 0x405bf0
Capabilities:
Check os version
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x42184b
mov eax, dword fs:[0]
push eax
sub esp, 0x408
mov eax, dword [0x42a930]
xor eax, esp
mov dword [esp + 0x404], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x42a930]
xor eax, esp
push eax
lea eax, [esp + 0x41c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x42c]
mov ebx, dword [esp + 0x430]
push 0x1f3
lea eax, [esp + 0x229]
push 0
push eax
mov dword [esp + 0x20], 0
mov byte [esp + 0x230], 0
call int.00413370
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
add esp, 0xc
push str.Brfaxrx.ini
push 1
push str.MiniRing
push str.Setup
mov dword [esp + 0x2c], 0x94
call esi
push str.Brfaxrx.ini
push 9
movzx ecx, ax
push str.MaxRing
push str.Setup
mov dword [0x438360], ecx
call esi
push str.Brfaxrx.ini
push 1
movzx edx, ax
push str.DefaultRing
push str.Setup
mov dword [0x42bc48], edx
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str.Brfaxrx.ini
push 0x200
push 0x433f58
push 0x423e94
movzx eax, ax
push str.ImagePath
push str.Setup
mov dword [0x437658], eax
call edi
push str.Brfaxrx.ini
push 0
push str.LogEnable
push str.Debug
call esi
push str.Brfaxrx.ini
push 0
movzx ecx, ax
push str.Sfine
push str.Setup
mov dword [0x449d64], ecx
call esi
push str.Brfaxrx.ini
push 1
movzx edx, ax
push str.100to200
push str.Setup
mov dword [0x449b40], edx
call esi
movzx eax, ax
push 0x423e94
push 0x433f58
mov dword [0x42a0e0], eax
call fcn.00419ea8
add esp, 8
test eax, eax
je 0x405d59
cmp byte [0x433f58], 0
jne 0x405d61
mov dword [esp + 0x14], 1
lea ecx, [esp + 0x18]
call fcn.0040a0f0
push 0x433f58
lea ecx, [esp + 0x1c]
mov dword [esp + 0x428], 0
call fcn.0040a5c0
test eax, eax
je 0x405dcd
call fcn.00403200
lea ecx, [esp + 0x224]
push ecx
call fcn.004011e0
lea edx, [esp + 0x228]
push edx
push 0x200
push 0x433f58
call fcn.00413ba9
add esp, 0x10
push str.Brfaxrx.ini
push 0x433f58
push str.ImagePath
push str.Setup
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea ecx, [esp + 0x18]
mov dword [esp + 0x424], 0xffffffff
call fcn.0040a100
push str.Brfaxrx.ini
push 0
push str.bRingWave
push str.Setup
call esi
push str.Brfaxrx.ini
push 0x200
push 0x449b48
push 0x423e26
movzx eax, ax
push str.RingWaveFile
push str.Setup
mov dword [0x449b44], eax
call edi
push 0
push 0
call dword [sym.imp.WINMM.dll_sndPlaySoundA]
push str.Brfaxrx.ini
neg eax
push 1
sbb eax, eax
push str.FileFormat
neg eax
push str.Setup
mov dword [0x449d48], eax
call esi
push str.Brfaxrx.ini
push 3
movzx ecx, ax
push str.ReplyCode
push str.Setup
mov dword [0x42a158], ecx
call esi
mov ecx, dword [0x437648]
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
movzx edx, ax
push 0xa
lea eax, [esp + 0xb4]
push eax
push 0x347
push ecx
mov dword [0x42a170], edx
call edi
test eax, eax
jne 0x405e9e
push 0x423618
lea edx, [esp + 0xb4]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0xb0]
push eax
call fcn.004148bc
add esp, 4
mov dword [0x449d68], eax
call fcn.0040cb40
lea ecx, [esp + 0x1c]
push ecx
mov dword [0x449d90], eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [esp + 0x2c], 2
jne 0x405ee0
cmp dword [esp + 0x20], 5
jb 0x405ee0
mov dword [0x449b30], 1
mov edx, dword [0x437634]
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x1f4
push 0x44a008
push edx
call esi
mov eax, 0x44a008
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x405f01
sub eax, edx
js 0x405f27
mov edi, edi
cmp byte [eax + 0x44a008], 0x5c
je 0x405f20
sub eax, 1
jns 0x405f10
jmp 0x405f27
mov byte [eax + 0x44a008], 0
push str._Net
push ebx
call fcn.00413570
add esp, 8
test eax, eax
je 0x405f4c
push 0x44a008
push ebx
call fcn.00405a10
add esp, 8
jmp 0x40606b
mov eax, dword [0x437634]
push 0x1f4
push 0x44a200
push eax
call esi
mov eax, 0x44a200
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x405f66
sub eax, edx
js 0x405f8a
cmp byte [eax + 0x44a200], 0x5c
je 0x405f83
sub eax, 1
jns 0x405f73
jmp 0x405f8a
mov byte [eax + 0x44a200], 0
push 0x423e88
push ebx
call fcn.00413570
add esp, 8
test eax, eax
je 0x405faa
push 0x44a200
push ebx
call fcn.00405b20
add esp, 8
cmp word [0x449ffc], 0
jne 0x405fbd
push ebp
call fcn.00404670
add esp, 4
push 0x63
xor esi, esi
lea ecx, [esp + 0xc1]
push esi
push ecx
mov byte [esp + 0xc8], 0
call int.00413370
push 0x423e84
push ebx
call fcn.00413570
add esp, 0x14
test eax, eax
je 0x406039
mov cl, byte [eax + 3]
add eax, 3
test cl, cl
je 0x406010
cmp cl, 0x3a
je 0x406010
cmp cl, 0x20
je 0x406010
add eax, 1
mov byte [esp + esi + 0xbc], cl
mov cl, byte [eax]
add esi, 1
test cl, cl
jne 0x405ff3
mov byte [esp + esi + 0xbc], 0
movsx eax, byte [esp + 0xbc]
sub eax, 0x30
cmp eax, 1
mov dword [0x449d54], eax
je 0x406042
mov dword [0x449d54], 0
jmp 0x40606b
cmp dword [0x449d54], 1
jne 0x40606b
call fcn.00402930
push str.BrmfXCh1.ini
push 0x423618
push str.DeviceSettingForget
push 0x423e58
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov dword [0x449d58], 1
push str._RNG
push ebx
call fcn.00413570
add esp, 8
neg eax
sbb eax, eax
add eax, 1
cmp dword [0x42a2ac], 0x10
mov dword [0x42a0d4], eax
mov eax, dword [0x42a298]
jae 0x406098
mov eax, 0x42a298
push eax
call fcn.004116e0
mov esi, 1
add esp, 4
cmp eax, esi
mov dword [0x44d6b0], eax
jne 0x4060ee
lea edx, [esp + 0x120]
push 0
push edx
call fcn.00409a70
add esp, 8
test eax, eax
je 0x4060cb
mov dword [0x449d5c], esi
cmp dword [esp + 0x14], 0
je 0x40614e
call fcn.00403200
lea eax, [esp + 0x224]
push eax
call fcn.004011e0
lea ecx, [esp + 0x228]
push ecx
jmp 0x406122
call fcn.00409c20
test eax, eax
je 0x40619f
cmp dword [esp + 0x14], 0
mov dword [0x449d5c], esi
je 0x40614e
call fcn.00403200
lea ecx, [esp + 0x224]
push ecx
call fcn.004011e0
lea edx, [esp + 0x228]
push edx
push 0x200
push 0x433f58
call fcn.00413ba9
add esp, 0x10
push str.Brfaxrx.ini
push 0x433f58
push str.ImagePath
push str.Setup
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [0x44a000]
test eax, eax
je 0x406164
push eax
push 0x1d
push 0
call fcn.0040d360
add esp, 0xc
push 0x44a000
push 0x1c
push 0
call fcn.0040d360
add esp, 0xc
mov eax, esi
mov ecx, dword [esp + 0x41c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x404]
xor ecx, esp
call fcn.0041355c
add esp, 0x414
ret
lea edx, [esp + 0x120]
push 0
push edx
call fcn.00409ba0
add esp, 8
test eax, eax
je 0x4061be
mov eax, esi
mov dword [0x449d5c], eax
jmp 0x4061d1
mov eax, dword [0x449d5c]
test eax, eax
jne 0x4061d1
cmp dword [esp + 0x14], esi
je 0x406108
cmp dword [esp + 0x14], 0
je 0x40614e
test eax, eax
je 0x40614e
mov ecx, dword [0x437648]
push 0x64
lea eax, [esp + 0xc0]
push eax
push 0x346
push ecx
call edi
test eax, eax
jne 0x406217
push str.Fax_Received
lea edx, [esp + 0xc0]
push 0x64
push edx
call fcn.00413ba9
add esp, 0xc
lea eax, [esp + 0x120]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x406221
sub eax, edx
cmp byte [esp + eax + 0x11f], 0x5c
jne 0x406255
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0x124]
push 0x104
push ecx
call fcn.00413b38
add esp, 0xc
jmp 0x406289
push 0x423e3c
lea edx, [esp + 0x124]
push 0x104
push edx
call fcn.00413b38
lea eax, [esp + 0xc8]
push eax
lea ecx, [esp + 0x130]
push 0x104
push ecx
call fcn.00413b38
add esp, 0x18
push 0
lea edx, [esp + 0x124]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x4062ae
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40614e
lea eax, [esp + 0x120]
push eax
push 0x200
push 0x433f58
call fcn.00413ba9
add esp, 0xc
jmp 0x406134