Function at 0x40a520
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45283f
mov eax, dword fs:[0]
push eax
mov eax, 0x1f88
call fcn.00410910
mov eax, dword [0x4620e4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x1ebc], ebx
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x1f38], esi
mov dword [ebp - 0x1ed4], ecx
mov dword [ebp - 0x1eec], 0
mov dword [ebp - 0x1ee8], 0
mov dword [ebp - 0x1ee4], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x1f34], 0
mov dword [ebp - 0x1f30], 0
mov dword [ebp - 0x1f2c], 0
mov dword [ebp - 0x1f28], 0
mov dword [ebp - 0x1f24], 0
mov dword [ebp - 0x1f20], 0
mov dword [ebp - 0x1f04], 0
mov dword [ebp - 0x1f00], 0
mov dword [ebp - 0x1efc], 0
mov dword [ebp - 0x1ef8], 0
mov dword [ebp - 0x1ef4], 0
mov dword [ebp - 0x1ef0], 0
mov dword [ebp - 0x1f1c], 0
mov dword [ebp - 0x1f18], 0
mov dword [ebp - 0x1f14], 0
push 0x104
lea eax, [ebp - 0x418]
mov byte [ebp - 4], 5
push 0
push eax
call fcn.00413480
add esp, 0xc
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x104
lea ecx, [ebp - 0x418]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov eax, dword [0x4560ec]
movq xmm0, qword [str.TxImitator.ini]
mov dword [ebp - 0x30c], eax
mov ax, word [0x4560f0]
mov word [ebp - 0x308], ax
mov al, byte [0x4560f2]
push 0xf5
mov byte [ebp - 0x306], al
lea eax, [ebp - 0x305]
push 0
push eax
movq qword [ebp - 0x314], xmm0
call fcn.00413480
mov ecx, dword [ebx + 0x234]
add esp, 0xc
mov dword [ebp - 0x1f6c], 0x104
test ecx, ecx
jne 0x40a6c3
push 0x80004003
call fcn.0040ea30
mov eax, dword [ecx]
lea edx, [ebp - 0x1f6c]
push edx
lea edx, [ebp - 0x314]
push edx
push str.ImitatorIni
push ecx
call dword [eax + 0x20]
push 0x800
lea eax, [ebp - 0x1eb8]
push 0
push eax
call fcn.00413480
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0x1eb8]
push 0x800
push eax
call fcn.0043474b
lea ecx, [ebp - 0x1eb8]
add esp, 0x18
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a713
sub ecx, edx
je 0x40a77c
lea ecx, [ebp - 0x1eb8]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a727
sub ecx, edx
mov al, byte [ebp + ecx - 0x1eb9]
cmp al, 0x5c
je 0x40a73f
cmp al, 0x2f
jne 0x40a747
mov byte [ebp + ecx - 0x1eb9], 0
lea eax, [ebp - 0x1eb8]
push 0x5c
push eax
call fcn.00413d50
mov edi, eax
lea eax, [ebp - 0x1eb8]
push 0x2f
push eax
call fcn.00413d50
add esp, 0x10
test edi, edi
jne 0x40a770
test eax, eax
je 0x40a77c
cmp edi, eax
cmova eax, edi
test eax, eax
je 0x40a77c
mov byte [eax], 0
lea eax, [ebp - 0x314]
push eax
lea eax, [ebp - 0x1eb8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
cmp byte [ebp - 0x1eb8], 0
mov dword [ebp - 0x161c], 0xf
mov dword [ebp - 0x1620], 0
mov byte [ebp - 0x1630], 0
jne 0x40a7b8
xor ecx, ecx
jmp 0x40a7ca
lea ecx, [ebp - 0x1eb8]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a7c1
sub ecx, edx
push ecx
lea eax, [ebp - 0x1eb8]
push eax
lea ecx, [ebp - 0x1630]
call fcn.00407a60
cmp dword [ebp - 0x161c], 0x10
lea edi, [ebp - 0x1630]
mov byte [ebp - 4], 6
cmovae edi, dword [ebp - 0x1630]
push edi
push str.Path_to_INI_data:__s_n
push ebx
mov dword [ebp - 0x1f48], edi
call fcn.0040d150
push 0x48
lea eax, [ebp - 0x1678]
push 0
push eax
call fcn.00413480
mov eax, dword [ebx + 0x244]
add esp, 0x18
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp eax, 4
ja case.default.0x40a82b
jmp dword [eax*4 + 0x40bc98]
push str.Bridge_Master_E
push esi
call fcn.004347e0
add esp, 8
test eax, eax
jne 0x40a84b
mov eax, 1
jmp 0x40a874
push str.Pathfinder
push esi
call fcn.004347e0
add esp, 8
neg eax
sbb eax, eax
and eax, 0xfffffffe
add eax, 2
jmp 0x40a874
push edi
push 0
push str.Type
push esi
call ebx
jmp 0x40a874
xor eax, eax
push eax
push str.Type__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x1678], eax
call fcn.0040d150
add esp, 0xc
mov dword [ebp - 0x1658], 0
push edi
push 0
push str.AzimuthPPR
push esi
call ebx
push eax
push str.AzimuthPPR__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x1670], eax
call fcn.0040d150
add esp, 0xc
push edi
push 0
push str.MinimumAllowedPRF
push esi
call ebx
push eax
push str.MinimumAllowedPRF__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x166c], eax
call fcn.0040d150
add esp, 0xc
push edi
push 0
push str.TriggerWidth
push esi
call ebx
push eax
push str.TriggerWidth__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x1668], eax
call fcn.0040d150
add esp, 0xc
push edi
push 0
push str.HeadingDuration
push esi
call ebx
push eax
push str.HeadingDuration__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x1664], eax
call fcn.0040d150
add esp, 0xc
push edi
push 0
push str.VideoDelay
push esi
call ebx
push eax
push str.VideoDelay__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x165c], eax
call fcn.0040d150
push 0x200
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00413480
add esp, 0x18
lea eax, [ebp - 0x210]
push edi
push 0x200
push eax
push 0x4561f4
push str.Composite
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x210]
push str.pathfinder
push eax
call fcn.004347e0
add esp, 8
test eax, eax
jne 0x40a9a1
mov eax, 2
jmp 0x40a9ba
lea eax, [ebp - 0x210]
push str.atlas
push eax
call fcn.004347e0
add esp, 8
neg eax
sbb eax, eax
inc eax
push eax
mov dword [ebp - 0x1650], eax
lea eax, [ebp - 0x210]
push eax
push str.Composite__s__d_n
push dword [ebp - 0x1ebc]
call fcn.0040d150
add esp, 0x10
lea eax, [ebp - 0x210]
push edi
push 0x200
push eax
push 0x455a11
push str.VoltsMin
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x1ec8]
movsd xmm0, qword [ebp - 0x1ec8]
movsd qword [esp], xmm0
push str.VoltsMin__lf_n
push dword [ebp - 0x1ebc]
call fcn.0040d150
movsd xmm0, qword [ebp - 0x1ec8]
add esp, 0x10
mulsd xmm0, qword [0x4566f0]
call fcn.00410bb1
push edi
push 0x200
mov dword [ebp - 0x164c], eax
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.VoltsMax
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x1ec8]
movsd xmm0, qword [ebp - 0x1ec8]
movsd qword [esp], xmm0
push str.VoltsMax__lf_n
push dword [ebp - 0x1ebc]
call fcn.0040d150
movsd xmm0, qword [ebp - 0x1ec8]
add esp, 0x10
mulsd xmm0, qword [0x4566f0]
call fcn.00410bb1
push edi
push 0x200
mov dword [ebp - 0x1648], eax
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.LowVideoPreventLevel
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x1ec8]
movsd xmm0, qword [ebp - 0x1ec8]
movsd qword [esp], xmm0
push str.LowVideoPreventLevel__lf_n
push dword [ebp - 0x1ebc]
call fcn.0040d150
movsd xmm0, qword [ebp - 0x1ec8]
add esp, 0x10
mulsd xmm0, qword [0x4566f0]
call fcn.00410bb1
push edi
push 0
push str.LowVideoPreventDuration
mov dword [ebp - 0x1644], eax
push esi
call ebx
push eax
push str.LowVideoPreventDuration__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x1640], eax
call fcn.0040d150
add esp, 0xc
push edi
push 0x9c4
push str.RotateTime
push esi
call ebx
push eax
push str.RotateTime__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x1674], eax
call fcn.0040d150
add esp, 0xc
push edi
push 0x400
push str.NumberOfSectors
push esi
call ebx
push eax
push str.NumberOfSectors__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x1658], eax
call fcn.0040d150
add esp, 0xc
push edi
push 0x1000
push str.SectorSize
push esi
call ebx
push eax
push str.SectorSize__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x1654], eax
call fcn.0040d150
add esp, 0xc
push edi
push 5
push str.GyroPulseDuration
push esi
call ebx
push eax
push str.GyroPulseDuration__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x163c], eax
call fcn.0040d150
add esp, 0xc
push edi
push 0
push str.LogDuration
push esi
call ebx
push eax
push str.LogDuration__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x1660], eax
call fcn.0040d150
add esp, 0xc
push edi
push 0
push str.HeadingMarkerOff
push esi
call ebx
push eax
push str.HeadingMarkerOff__d_n
push dword [ebp - 0x1ebc]
mov dword [ebp - 0x1638], eax
call fcn.0040d150
add esp, 0xc
push edi
push 0
push str.NetworkRadar
push esi
call ebx
push eax
mov dword [ebp - 0x1634], eax
push str.NetworkRadar__d_n
push dword [ebp - 0x1ebc]
call fcn.0040d150
add esp, 0xc
mov byte [ebp - 0x210], 0
lea eax, [ebp - 0x210]
push edi
push 0x200
push eax
push 0x455a11
push 0x4563c0
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 0x1ed4]
test ecx, ecx
je 0x40acac
mov eax, dword [ecx]
lea edx, [ebp - 0x210]
push edx
lea edx, [ebp - 0x1678]
push edx
push ecx
call dword [eax + 0xc]
test eax, eax
jns 0x40acac
lea ecx, [ebp - 0x1630]
call fcn.004053d0
xor eax, eax
jmp 0x40bc79
push edi
push 0
push str.NumModes
push esi
call ebx
mov dword [ebp - 0x1ec0], eax
test eax, eax
jne 0x40ad1f
push str.Error_loading_ini_data__NumModes__n
push dword [ebp - 0x1ebc]
call fcn.0040d150
mov eax, dword [ebp - 0x161c]
add esp, 8
cmp eax, 0x10
jb 0x40acf2
inc eax
lea ecx, [ebp - 0x1630]
push eax
push dword [ebp - 0x1630]
call fcn.00407bd0
lea ecx, [ebp - 0x1eec]
mov dword [ebp - 0x161c], 0xf
mov dword [ebp - 0x1620], 0
mov byte [ebp - 0x1630], 0
call fcn.004093a0
xor eax, eax
jmp 0x40bc79
mov ecx, dword [ebp - 0x1ed4]
push ecx
lea ecx, [ebp - 0x1ed8]
mov dword [ebp - 0x1ed8], 0
call fcn.00408990
test eax, eax
jns 0x40ad4c
cmp eax, 0x80004002
je 0x40ad4c
push eax
call fcn.0040ea30
mov ebx, dword [ebp - 0x1ed8]
mov byte [ebp - 4], 7
test ebx, ebx
je 0x40b1ee
push 0x80
lea ecx, [ebp - 0x1f68]
call fcn.00408ba0
push edi
push 0x64
push str.SFNoiseFreq
push esi
mov byte [ebp - 4], 8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push edi
push 0
push str.SFExternalTrigger
push esi
mov dword [ebp - 0x1f94], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push edi
neg eax
push 0
sbb eax, eax
push str.SFModeDetectionWay
neg eax
push esi
mov dword [ebp - 0x1f90], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
call fcn.0040a490
add esp, 4
mov dword [ebp - 0x1f80], eax
push edi
push 0
push str.SFAzimuthOffset
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push edi
push 3
push str.SFTxNumber
push esi
mov dword [ebp - 0x1f8c], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push edi
push 1
push str.SFRadarBand
push esi
mov dword [ebp - 0x1f88], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push edi
push 0
push str.SFShortHM
push esi
mov dword [ebp - 0x1f84], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push edi
neg eax
push 0
sbb eax, eax
push str.SFHMLen
neg eax
push esi
mov dword [ebp - 0x1f74], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp dword [ebp - 0x1f90], 1
push dword [ebp - 0x1f80]
mov dword [ebp - 0x1f70], eax
sete al
movzx eax, al
push eax
call fcn.0040a500
mov ecx, dword [ebp - 0x1f68]
add esp, 8
mov byte [ebp - 0x1ec9], al
test al, al
je 0x40aef9
push dword [ebp - 0x1ec0]
lea eax, [ebp - 0x210]
push ecx
push 0x42e34a
push edi
push 0x200
push eax
push str.SFExternalTriggerPRF
push esi
call fcn.004087d0
add esp, 0x20
test eax, eax
jne 0x40aef3
lea ecx, [ebp - 0x1f68]
call fcn.004092b0
mov byte [ebp - 4], 6
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
lea ecx, [ebp - 0x1630]
call fcn.004053d0
lea ecx, [ebp - 0x1f1c]
call fcn.00409340
lea ecx, [ebp - 0x1ef8]
call fcn.004092b0
lea ecx, [ebp - 0x1f04]
call fcn.00409310
lea ecx, [ebp - 0x1f28]
call fcn.004093d0
lea ecx, [ebp - 0x1f34]
call fcn.00409370
lea ecx, [ebp - 0x1eec]
call fcn.004093a0
xor eax, eax
jmp 0x40bc79
mov ecx, dword [ebp - 0x1f68]
mov edx, dword [ebp - 0x1f64]
cmp ecx, edx
mov dword [ebp - 0x1edc], 0
sete al
test al, al
cmovne ecx, dword [ebp - 0x1edc]
cmp byte [ebp - 0x1ec9], 0
mov dword [ebp - 0x1f7c], ecx
je 0x40af2e
mov edx, dword [ebp - 0x1ec0]
jmp 0x40af37
sub edx, dword [ebp - 0x1f68]
sar edx, 2
mov dword [ebp - 0x1f78], edx
lea ecx, [ebp - 0x1f94]
mov eax, dword [ebx]
push ecx
push ebx
call dword [eax + 0xc]
push edi
push 0
push str.SFSTCOn
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
xor ecx, ecx
mov dword [ebp - 0x1ed0], eax
xor edx, edx
mov dword [ebp - 0x1edc], 0
mov dword [ebp - 0x1f54], ecx
mov dword [ebp - 0x1f50], edx
mov dword [ebp - 0x1f4c], ecx
mov byte [ebp - 4], 9
test eax, eax
je 0x40affe
push edi
push 1
push str.SFSTCRange
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push edi
push 0x1000
mov dword [ebp - 0x1edc], eax
lea eax, [ebp - 0x1418]
push eax
push 0x455a11
push str.SFSTCCurve
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x1418]
push 0x3b
push eax
call fcn.00413c20
add esp, 8
test eax, eax
je 0x40afd2
mov byte [eax], 0
push str.____t
push 0x408b90
lea eax, [ebp - 0x1f54]
push eax
lea eax, [ebp - 0x1418]
push eax
call fcn.00408390
mov edx, dword [ebp - 0x1f50]
add esp, 0x10
mov ecx, dword [ebp - 0x1f54]
cmp ecx, edx
sete al
test al, al
jne 0x40b03a
lea ecx, [ebp - 0x1ed8]
call fcn.004095e0
mov edx, dword [ebp - 0x1f50]
mov ecx, dword [ebp - 0x1f54]
sub edx, ecx
push ecx
mov esi, dword [eax]
push edx
push dword [ebp - 0x1edc]
push dword [ebp - 0x1ed0]
push eax
call dword [esi + 0x10]
mov esi, dword [ebp - 0x1f38]
push edi
push 0
push str.SFTuneOn
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x1ed0], eax
xorps xmm0, xmm0
movsd qword [ebp - 0x1f5c], xmm0
movsd qword [ebp - 0x1ee0], xmm0
movsd qword [ebp - 0x1ec8], xmm0
movsd qword [ebp - 0x1f0c], xmm0
test eax, eax
je 0x40b196
push edi
push 0x200
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.SFTuneControlVoltsMin
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40b0c3
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x1f5c]
movsd xmm0, qword [ebp - 0x1f5c]
add esp, 8
movsd qword [ebp - 0x1f5c], xmm0
push edi
push 0x200
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.SFTuneControlVoltsMax
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40b10c
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x1ee0]
movsd xmm0, qword [ebp - 0x1ee0]
add esp, 8
movsd qword [ebp - 0x1ee0], xmm0
push edi
push 0x200
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.SFTuneFeedbackVoltsMin
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40b155
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x1ec8]
movsd xmm0, qword [ebp - 0x1ec8]
add esp, 8
movsd qword [ebp - 0x1ec8], xmm0
push edi
push 0x200
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.SFTuneFeedbackVoltsMax
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40b18e
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x1f0c]
add esp, 8
movsd xmm0, qword [ebp - 0x1f0c]
mov eax, dword [ebx]
sub esp, 0x20
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [ebp - 0x1ec8]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [ebp - 0x1ee0]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x1f5c]
movsd qword [esp], xmm0
push dword [ebp - 0x1ed0]
push ebx
call dword [eax + 0x14]
lea ecx, [ebp - 0x1f54]
call fcn.0040d050
lea ecx, [ebp - 0x1f68]
mov byte [ebp - 4], 7
call fcn.004092b0
mov eax, dword [ebp - 0x1674]
movaps xmm0, xmmword [0x456720]
movups xmmword [ebp - 0x16b8], xmm0
push edi
movaps xmm0, xmmword [0x456740]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
push 0x200
movups xmmword [ebp - 0x16a8], xmm0
addsd xmm1, qword [eax*8 + 0x456750]
movsd xmm0, qword [0x456700]
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.Frequency
divsd xmm0, xmm1
push esi
movsd qword [ebp - 0x1698], xmm0
movaps xmm0, xmmword [0x456730]
movups xmmword [ebp - 0x1690], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x1680], xmm0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40b28a
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x16b8]
add esp, 8
push edi
push 0x200
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.PeakPower
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40b2c3
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x16b0]
add esp, 8
push edi
push 0x200
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.NoiseFactor
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40b2fc
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x16a8]
add esp, 8
push edi
push 0x200
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.Gain
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40b335
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x16a0]
add esp, 8
push edi
push 0x200
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.HorWitdh
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40b36e
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x1690]
add esp, 8
push edi
push 0x200
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.VerWitdh
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40b3a7
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00434667
fstp qword [ebp - 0x1688]
add esp, 8
mov ecx, dword [ebp - 0x1ed4]
test ecx, ecx
je 0x40b3be
mov eax, dword [ecx]
lea edx, [ebp - 0x16b8]
push edx
push ecx
call dword [eax + 0x10]
push 0x200
lea eax, [ebp - 0x1618]
push 0
push eax
call fcn.00413480
push dword [ebp - 0x1ec0]
lea eax, [ebp - 0x1618]
push eax
push fcn.0042e374
push edi
push 0x200
lea eax, [ebp - 0x210]
push eax
push str.RangesNM
push esi
call fcn.00408840
add esp, 0x2c
test eax, eax
je 0x40b57e
push dword [ebp - 0x1ec0]
lea ecx, [ebp - 0x1eec]
call fcn.0040da20
mov ecx, dword [ebp - 0x1ec0]
xor eax, eax
movsd xmm2, qword [0x4566f8]
xorps xmm1, xmm1
cmp ecx, 4
jb 0x40b4ca
lea edx, [ecx - 3]
mov dword [ebp - 0x1ed0], edx
mov edx, dword [ebp - 0x1eec]
add edx, 0x10
nop word [eax + eax]
movd xmm0, dword [ebp + eax*4 - 0x1618]
lea edx, [edx + 0x40]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm2
movsd qword [edx - 0x50], xmm0
movd xmm0, dword [ebp + eax*4 - 0x1614]
cvtdq2pd xmm0, xmm0
movsd qword [edx - 0x48], xmm1
mulsd xmm0, xmm2
movsd qword [edx - 0x40], xmm0
movd xmm0, dword [ebp + eax*4 - 0x1610]
cvtdq2pd xmm0, xmm0
movsd qword [edx - 0x38], xmm1
mulsd xmm0, xmm2
movsd qword [edx - 0x30], xmm0
movd xmm0, dword [ebp + eax*4 - 0x160c]
add eax, 4
cvtdq2pd xmm0, xmm0
movsd qword [edx - 0x28], xmm1
mulsd xmm0, xmm2
movsd qword [edx - 0x20], xmm0
movsd qword [edx - 0x18], xmm1
cmp eax, dword [ebp - 0x1ed0]
jb 0x40b450
cmp eax, ecx
jae 0x40b503
mov edx, eax
shl edx, 4
add edx, dword [ebp - 0x1eec]
nop dword [eax]
movd xmm0, dword [ebp + eax*4 - 0x1618]
lea edx, [edx + 0x10]
cvtdq2pd xmm0, xmm0
inc eax
mulsd xmm0, xmm2
movsd qword [edx - 0x10], xmm0
movsd qword [edx - 8], xmm1
cmp eax, ecx
jb 0x40b4e0
push ecx
lea ecx, [ebp - 0x1f10]
call fcn.00408c10
push dword [ebp - 0x1ec0]
lea eax, [ebp - 0x210]
mov byte [ebp - 4], 0xa
push dword [ebp - 0x1f10]
push 0x40d540
push edi
push 0x200
push eax
push str.PulseLength
push esi
call fcn.004088b0
add esp, 0x20
test eax, eax
jne 0x40b58f
push dword [ebp - 0x1ec0]
lea eax, [ebp - 0x210]
push dword [ebp - 0x1f10]
push 0x40d540
push edi
push 0x200
push eax
push str.PulseLegth
push esi
call fcn.004088b0
add esp, 0x20
test eax, eax
jne 0x40b58f
lea ecx, [ebp - 0x1f10]
call fcn.00409310
mov byte [ebp - 4], 6
test ebx, ebx
je 0x40ae9f
jmp 0x40ae99
push dword [ebp - 0x1ec0]
lea ecx, [ebp - 0x1f04]
call fcn.0040d870
push dword [ebp - 0x1ec0]
lea eax, [ebp - 0x210]
push dword [ebp - 0x1f04]
push 0x40d540
push edi
push 0x200
push eax
push str.Corrections
push esi
call fcn.004088b0
add esp, 0x20
test eax, eax
mov eax, dword [ebp - 0x1ec0]
jne 0x40b609
test eax, eax
je 0x40b609
mov edx, dword [ebp - 0x1f04]
lea ecx, [eax*8 - 8]
movsd xmm0, qword [0x4566e8]
mov esi, edx
shr ecx, 2
lea edi, [edx + 8]
movsd qword [edx], xmm0
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x1f48]
mov esi, dword [ebp - 0x1f38]
push eax
lea ecx, [ebp - 0x1ef8]
call fcn.0040d800
push dword [ebp - 0x1ec0]
lea eax, [ebp - 0x210]
push dword [ebp - 0x1ef8]
push 0x42e34a
push edi
push 0x200
push eax
push 0x456584
push esi
call fcn.004087d0
mov ecx, dword [ebp - 0x1ec0]
add esp, 0x20
test eax, eax
jne 0x40b674
xor edx, edx
test ecx, ecx
je 0x40b674
mov ebx, dword [ebp - 0x1ef8]
nop word [eax + eax]
mov eax, dword [ebp - 0x166c]
mov dword [ebx + edx*4], eax
inc edx
cmp edx, ecx
jb 0x40b660
mov ebx, dword [ebp - 0x1ed8]
push ecx
lea ecx, [ebp - 0x1f34]
call fcn.0040d950
push dword [ebp - 0x1ec0]
lea ecx, [ebp - 0x1f28]
call fcn.0040daf0
mov eax, dword [ebp - 0x1ec0]
test eax, eax
je 0x40b743
mov edi, dword [ebp - 0x1f28]
mov esi, dword [ebp - 0x1f34]
mov ecx, dword [ebp - 0x1f10]
sub esi, edi
movsd xmm1, qword [0x4566f0]
mov ebx, dword [ebp - 0x1ef8]
lea edx, [edi + 8]
mov edi, dword [ebp - 0x1f34]
mov dword [ebp - 0x1edc], esi
mov esi, dword [ebp - 0x1f04]
sub esi, ecx
mov dword [ebp - 0x1ec4], esi
xor esi, esi
movsd xmm0, qword [ecx]
lea ecx, [ecx + 8]
mov eax, dword [ebp - 0x1edc]
lea edi, [edi + 0x10]
mulsd xmm0, xmm1
lea edx, [edx + 0x10]
movsd qword [edi - 0x10], xmm0
movd xmm0, dword [ebx + esi*4]
inc esi
cvtdq2pd xmm0, xmm0
movsd qword [eax + edx - 0x10], xmm0
movsd xmm0, qword [ecx - 8]
mov eax, dword [ebp - 0x1ec4]
movsd qword [edx - 0x18], xmm0
movsd xmm0, qword [eax + ecx - 8]
mov eax, dword [ebp - 0x1ec0]
movsd qword [edx - 0x10], xmm0
cmp esi, eax
jb 0x40b6e0
mov ebx, dword [ebp - 0x1ed8]
mov edi, dword [ebp - 0x1f48]
mov esi, dword [ebp - 0x1f38]
push eax
lea ecx, [ebp - 0x1f1c]
call fcn.0040d8e0
push dword [ebp - 0x1ec0]
lea eax, [ebp - 0x210]
push dword [ebp - 0x1f1c]
push 0x40d530
push edi
push 0x200
push eax
push str.Names
push esi
call fcn.00408920
add esp, 0x20
test eax, eax
jne 0x40b8c3
mov ecx, dword [ebp - 0x1f10]
test ecx, ecx
je 0x40b7a5
mov eax, dword [ebp - 0x1f08]
sub eax, ecx
sar eax, 3
push eax
push ecx
lea ecx, [ebp - 0x1f10]
call fcn.0040d620
mov byte [ebp - 4], 6
test ebx, ebx
je 0x40b7b3
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov eax, dword [ebp - 0x161c]
cmp eax, 0x10
jb 0x40b7d1
inc eax
lea ecx, [ebp - 0x1630]
push eax
push dword [ebp - 0x1630]
call fcn.00407bd0
mov edx, dword [ebp - 0x1f1c]
mov dword [ebp - 0x161c], 0xf
mov dword [ebp - 0x1620], 0
mov byte [ebp - 0x1630], 0
test edx, edx
je 0x40b80e
mov eax, dword [ebp - 0x1f14]
lea ecx, [ebp - 0x1f1c]
sub eax, edx
sar eax, 2
push eax
push edx
call fcn.0040d680
mov ecx, dword [ebp - 0x1ef8]
test ecx, ecx
je 0x40b830
mov eax, dword [ebp - 0x1ef0]
sub eax, ecx
sar eax, 2
push eax
push ecx
lea ecx, [ebp - 0x1ef8]
call fcn.0040d560
mov ecx, dword [ebp - 0x1f04]
test ecx, ecx
je 0x40b852
mov eax, dword [ebp - 0x1efc]
sub eax, ecx
sar eax, 3
push eax
push ecx
lea ecx, [ebp - 0x1f04]
call fcn.0040d620
mov ecx, dword [ebp - 0x1f28]
test ecx, ecx
je 0x40b874
mov eax, dword [ebp - 0x1f20]
sub eax, ecx
sar eax, 4
push eax
push ecx
lea ecx, [ebp - 0x1f28]
call fcn.0040d7a0
mov ecx, dword [ebp - 0x1f34]
test ecx, ecx
je 0x40b896
mov eax, dword [ebp - 0x1f2c]
sub eax, ecx
sar eax, 4
push eax
push ecx
lea ecx, [ebp - 0x1f34]
call fcn.0040d6e0
mov ecx, dword [ebp - 0x1eec]
test ecx, ecx
je 0x40aeec
mov eax, dword [ebp - 0x1ee4]
sub eax, ecx
sar eax, 4
push eax
push ecx
lea ecx, [ebp - 0x1eec]
call fcn.0040d740
xor eax, eax
jmp 0x40bc79
mov ecx, dword [ebp - 0x1ed4]
test ecx, ecx
je 0x40b8f2
mov edx, dword [ebp - 0x1f1c]
mov eax, dword [ecx]
push edx
push dword [ebp - 0x1f28]
push dword [ebp - 0x1eec]
push dword [ebp - 0x1f34]
push dword [ebp - 0x1ec0]
push ecx
call dword [eax + 0x14]
push edi
push 0x200
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.ExternalStateSource
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40ba3d
lea eax, [ebp - 0x210]
push eax
push str.ExternalStateSource__s_n
push dword [ebp - 0x1ebc]
call fcn.0040d150
add esp, 0xc
mov dword [ebp - 0x1ec0], 0
push 0x17
push 0
lea eax, [ebp - 0x210]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x1ec0]
call fcn.00409f50
test eax, eax
js 0x40ba0e
mov eax, dword [ebp - 0x1ebc]
mov byte [ebp - 0x210], 0
mov dword [ebp - 0x1ec4], 0x200
mov ecx, dword [eax + 0x234]
test ecx, ecx
jne 0x40b989
push 0x80004003
call fcn.0040ea30
mov eax, dword [ecx]
lea edx, [ebp - 0x1ec4]
push edx
lea edx, [ebp - 0x210]
push edx
push str._ExternalStateInitString
push ecx
call dword [eax + 0x20]
test eax, eax
jne 0x40b9f9
mov eax, dword [ebp - 0x1ec0]
test eax, eax
jne 0x40b9ba
push 0x80004003
call fcn.0040ea30
mov ecx, dword [eax]
lea edx, [ebp - 0x210]
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
jns 0x40b9e5
lea eax, [ebp - 0x210]
push eax
push str.ExternalStateSource_SetInitString_failed__string:__s_n
push dword [ebp - 0x1ebc]
call fcn.0040d150
add esp, 0xc
mov ecx, dword [ebp - 0x1ed4]
push dword [ebp - 0x1ec0]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x20]
jmp 0x40ba29
push str.Failed_to_get_task_param__ExternalStateInitString_n
push dword [ebp - 0x1ebc]
call fcn.0040d150
add esp, 8
jmp 0x40ba29
push eax
lea eax, [ebp - 0x210]
push eax
push str.Failed_to_create_external_state_source__progId:__s__hr:__0x_n
push dword [ebp - 0x1ebc]
call fcn.0040d150
add esp, 0x10
mov eax, dword [ebp - 0x1ec0]
mov byte [ebp - 4], 0xa
test eax, eax
je 0x40ba3d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push edi
push 0x200
lea eax, [ebp - 0x210]
push eax
push 0x455a11
push str.PinsMap
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x1f44], 0
mov dword [ebp - 0x1f40], 0
mov dword [ebp - 0x1f3c], 0
push str.____t
push fcn.0042e374
lea eax, [ebp - 0x1f44]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.004085a0
mov edx, dword [ebp - 0x1ed4]
add esp, 0x10
test edx, edx
je 0x40bac4
test eax, eax
je 0x40baba
push dword [ebp - 0x1f44]
mov ecx, dword [edx]
push eax
push edx
call dword [ecx + 0x18]
jmp 0x40bac4
mov eax, dword [edx]
push 0
push 0
push edx
call dword [eax + 0x18]
push edi
push 5
push str.ClutterFactor
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edi, dword [ebp - 0x1ebc]
mov esi, eax
push esi
push str.ClutterFactor__d_n
push edi
call fcn.0040d150
movsd xmm0, qword [0x4566e0]
add esp, 4
mov ecx, edi
movsd qword [esp], xmm0
push esi
call fcn.0040c5a0
mov ecx, dword [ebp - 0x1f44]
test ecx, ecx
je 0x40bb3f
mov eax, dword [ebp - 0x1f3c]
sub eax, ecx
sar eax, 2
push eax
push ecx
lea ecx, [ebp - 0x1f44]
call fcn.0040d5c0
mov dword [ebp - 0x1f44], 0
mov dword [ebp - 0x1f40], 0
mov dword [ebp - 0x1f3c], 0
mov ecx, dword [ebp - 0x1f10]
test ecx, ecx
je 0x40bb61
mov eax, dword [ebp - 0x1f08]
sub eax, ecx
sar eax, 3
push eax
push ecx
lea ecx, [ebp - 0x1f10]
call fcn.0040d620
mov byte [ebp - 4], 6
test ebx, ebx
je 0x40bb6f
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov eax, dword [ebp - 0x161c]
cmp eax, 0x10
jb 0x40bb8d
inc eax
lea ecx, [ebp - 0x1630]
push eax
push dword [ebp - 0x1630]
call fcn.00407bd0
mov ecx, dword [ebp - 0x1f1c]
mov dword [ebp - 0x161c], 0xf
mov dword [ebp - 0x1620], 0
mov byte [ebp - 0x1630], 0
test ecx, ecx
je 0x40bbca
mov eax, dword [ebp - 0x1f14]
sub eax, ecx
sar eax, 2
push eax
push ecx
lea ecx, [ebp - 0x1f1c]
call fcn.0040d680
mov ecx, dword [ebp - 0x1ef8]
test ecx, ecx
je 0x40bbec
mov eax, dword [ebp - 0x1ef0]
sub eax, ecx
sar eax, 2
push eax
push ecx
lea ecx, [ebp - 0x1ef8]
call fcn.0040d560
mov ecx, dword [ebp - 0x1f04]
test ecx, ecx
je 0x40bc0e
mov eax, dword [ebp - 0x1efc]
sub eax, ecx
sar eax, 3
push eax
push ecx
lea ecx, [ebp - 0x1f04]
call fcn.0040d620
mov ecx, dword [ebp - 0x1f28]
test ecx, ecx
je 0x40bc30
mov eax, dword [ebp - 0x1f20]
sub eax, ecx
sar eax, 4
push eax
push ecx
lea ecx, [ebp - 0x1f28]
call fcn.0040d7a0
mov ecx, dword [ebp - 0x1f34]
test ecx, ecx
je 0x40bc52
mov eax, dword [ebp - 0x1f2c]
sub eax, ecx
sar eax, 4
push eax
push ecx
lea ecx, [ebp - 0x1f34]
call fcn.0040d6e0
mov ecx, dword [ebp - 0x1eec]
test ecx, ecx
je 0x40bc74
mov eax, dword [ebp - 0x1ee4]
sub eax, ecx
sar eax, 4
push eax
push ecx
lea ecx, [ebp - 0x1eec]
call fcn.0040d740
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004108c8
mov esp, ebp
pop ebp
ret 8